【问题标题】:Where can I use Laravel Facade aliases?我在哪里可以使用 Laravel Facade 别名?
【发布时间】:2018-01-22 20:58:15
【问题描述】:

我已经构建了一个带有自定义外观的 Laravel 5.4 应用程序,App\Facades\Repo。 Repo 外观代理到 RepositoryFactory 类。在我的应用程序配置中,我有一个别名 Repo,它指向 Repo 门面。我用它来获取带有诸如Repo::get('User')之类的调用的存储库。

如果我在控制器或路由文件中,这可以正常工作。然而,在应用程序的其他部分,我不能使用 Repo 别名。解释器在当前命名空间中寻找一个 Repo 类,然后出错。这提出了两个问题:

  • 哪些类知道外观别名?是什么定义了它们?
  • 在不知道外观别名的类中,我应该继续导入外观类本身吗?还是这是代码异味?

例如,不识别别名的类包括我的存储库本身。我为它们创建了一个超类型,但它们不继承自任何 Laravel 类。有时我的仓库需要调用其他仓库来完成它们的工作。

【问题讨论】:

    标签: laravel facade laravel-facade


    【解决方案1】:

    到目前为止(使用 Laravel 5.2)我注意到的是,当您在命名空间上下文中时,您需要有 use Repo; 或在外观前面加上斜线,例如 \Repo::get("User")

    在命名空间上下文之外,例如在routes.php、配置文件或视图中,外观直接起作用。

    但这更多地与 PHP 的工作方式有关,而不是与 Laravel 本身有关。

    【讨论】:

      猜你喜欢
      • 2015-12-18
      • 2023-03-10
      • 2015-04-28
      • 2018-12-11
      • 2013-07-07
      • 1970-01-01
      • 2011-06-29
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多