在Laravel的许多文件中,也许在其他框架中,你必须指定一个类名。
您可以使用" :: class"
编写它SID_LIST_LISTENER =
(SID_LIST =
(SID_DESC =
(SID_NAME = PLSExtProc)
(ORACLE_HOME = /u01/app/oracle/product/11.2.0/xe)
(PROGRAM = extproc)
)
)
LISTENER =
(DESCRIPTION_LIST =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC_FOR_XE))
(ADDRESS = (PROTOCOL = TCP)(HOST = 0.0.0.0)(PORT = 1521))
)
)
DEFAULT_SERVICE_LISTENER = (XE)
或作为字符串:
App\Models\User::class
嗯,使用第一个变体,类会在发生时立即加载。对于第二个变体,我猜它会在它被使用时加载。
哪一个更好还是推荐?在Laravel默认配置文件中始终是" :: class"使用变体。
答案 0 :(得分:2)
不,实际上App\Models\User::class
是更好的方法,因为::class
返回类的完全限定名称。这样更方便,更不容易出错。例如:
namespace Some\Name\Space;
use vendor\package\Foo;
use vendor\package\Bar;
class Foo {
public function someMethod()
{
// You can't use app('Bar'), You need the FQN
// So it's possible using the following approach
$bar = app(Bar::CLASS); // vendor\package\Bar
$foo = new Foo($bar);
}
}
只需使用Bar::CLASS
即可轻松使用完全限定名称,因此,app(Bar::CLASS)
将成为app('vendor\package\Bar')
。