我正在开发一些包,其中很多都是基于主应用程序中的代码,或者来自基于在应用程序而不是包中编写代码的示例。我一直忘记在各种文件中添加Use View;
或Use Controller;
,我不得不手动检查并将它们添加到包中的每个 PHP 脚本(需要它们)中。
有没有一种自动化的方法,这样我只需要在一个包中声明一次,或者更好地让它们传递到主应用程序的外观?
恐怕没有。
这是因为你的包代码有自己的命名空间,Illuminate 核心也是如此。PHP 的使用语句仅基于每个文件。当您的脚本使用来自另一个命名空间的类时,您有 2 个选项。
引用完整命名空间的示例:
<?php
namespace My\Package;
class SomeClass
{
public function doSomething()
{
// reference full namespace
$view = \Illuminate\Support\Facades\View::make('someview');
// or
$view = \View::make
}
}
?>
这似乎是一种不必使用 use 语句的方法,但在我看来,情况更糟。所以我建议你习惯于添加这些使用语句。
您应该将其视为最佳实践:这些使用语句清楚地说明了您的类(或文件)的依赖关系。尝试减少这些数量总是更好的。