了解 Laravel 的 Macroable 特性

Lenix at 
Laravel 在其代码库中大量使用了 Macroabletrait,但官方文档只是顺便提及它。没有解释它的用途,或者你应该(和不应该)使用它的时间。让我们深入挖掘。Macroable 特性的目的是什么?该特征的唯一目的 Macroable 是允许您扩展(某些)内置的 Laravel 类的功能。我喜欢将“可宏化”类视为支持临时 [traits][php-traits]。也就是说,您可以将“特征”添加到您不拥有的类中,而不必扩展它。这有两个优点:使用宏添加一些功能比扩展和覆盖 Laravel 类要简单得多。它保持 Laravel 代码库的清洁,而不限制开发人员的自由。拼命想 tail 给类加一个……