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

时间:2017-04-11 23:35:33

标签: laravel laravel-5.3

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

方法与特质vs门面

干杯!

1 个答案:

答案 0 :(得分:5)

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

方法是属于类的函数。

class MyClass
{
     public function this_is_a_method() { }
}

特征是一种在类之间共享代码的方法。特征不能被实例化,而是包含在另一个类中。类和特征都可以定义方法。

trait MyTrait
{
     public function this_is_a_method() { }
}

既然我有这个特性,我可以更新MyClass来使用这个特性。

class MyClass
{
     use MyTrait;
}

您可以将特征视为复制和粘贴。现在MyClass复制MyTrait中定义的方法,以便您可以执行此操作。

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

方法和特征都是PHP的特性。外墙是Laravel的特色。外墙只是语法糖,有助于将服务从集装箱中取出。