laravel 方法 vs trait vs facade 之间有什么区别

What is the difference between laravel method vs trait vs facade

简而言之,比较这三者的最简单方法是什么?

方法 vs 特征 vs 外观

干杯!

他们并没有真正的比较,因为他们是完全不同的东西。

方法是属于class的函数。

class MyClass
{
     public function this_is_a_method() { }
}

特征是 class 之间共享代码的一种方式。特征无法实例化,而是包含在另一个 class 中。 classes 和 traits 都可以定义方法。

trait MyTrait
{
     public function this_is_a_method() { }
}

现在我有了这个特征,我可以更新 MyClass 来使用这个特征。

class MyClass
{
     use MyTrait;
}

您可以将特征视为复制和粘贴。现在 MyClass 复制 MyTrait 中定义的方法,这样你就可以这样做了。

$class = new MyClass();
$class->this_is_a_method();

方法和特征都是PHP的特征。 Facades 是 Laravel 的一个特征。 Facades 只是语法糖,可以帮助从容器中获取服务。