Laravel 自动加载 class 和特征之间的差异
Laravel differents between autoload class & trait
我是 Laravel 的新手,我接到了一个关于 helper (psr4 autoload class) & trait
的任务
我创建一个自动加载 class,连接到 api 并做各种事情。
我的问题是这和 trait 有什么不同?
我可以使用 trait 来做同样的事情
特征是一组特定的 re-usable 功能,您可以附加任何实体,但限制条件是它不需要依赖于您正在使用的特征的 class .
帮助文件通常包含可以在任何地方使用的全局函数,例如比较函数,甚至只是注入 IoC 的快捷方式 classes.
if (! function_exists('clock'))
{
function clock()
{
if (class_exists(Clock::class)) {
return app()['clock'];
} else {
return false;
}
}
}
特征用于创建可在多个 class 之间共享的 re-usable 代码的小项目。它们的存在通常是因为您一次只能在 PHP 中扩展一个 class。您使用了一个特征,例如,如果您有一个函数或一组函数,这些函数将在多个 class.
中有用
Laravel 使用 Composer,它使用自动加载的 PSR-4 标准(以及其他),这仅仅意味着您不必担心使用 require
、include
或其他任何使文件内容可用的东西。
我是 Laravel 的新手,我接到了一个关于 helper (psr4 autoload class) & trait
的任务我创建一个自动加载 class,连接到 api 并做各种事情。
我的问题是这和 trait 有什么不同?
我可以使用 trait 来做同样的事情
特征是一组特定的 re-usable 功能,您可以附加任何实体,但限制条件是它不需要依赖于您正在使用的特征的 class .
帮助文件通常包含可以在任何地方使用的全局函数,例如比较函数,甚至只是注入 IoC 的快捷方式 classes.
if (! function_exists('clock'))
{
function clock()
{
if (class_exists(Clock::class)) {
return app()['clock'];
} else {
return false;
}
}
}
特征用于创建可在多个 class 之间共享的 re-usable 代码的小项目。它们的存在通常是因为您一次只能在 PHP 中扩展一个 class。您使用了一个特征,例如,如果您有一个函数或一组函数,这些函数将在多个 class.
中有用Laravel 使用 Composer,它使用自动加载的 PSR-4 标准(以及其他),这仅仅意味着您不必担心使用 require
、include
或其他任何使文件内容可用的东西。