Laravel宏指令宏观的用法

  介绍

这篇文章给大家分享的是有关Laravel宏指令宏观的用法的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。

宏指令允许你添加自定义功能到Laravel的内部组件里去。

让我们以一个简单的请求门面方法为例。

要求::宏(& # 39;介绍# 39;,,function (名字),{   ,,,echo  & # 39; Hello  & # 39;,只name 美元;只& # 39;! & # 39;;   });   要求::介绍(& # 39;迦勒# 39;);,//,outputs “Hello 迦勒!“

一个更加实用的请求宏指令是用于检测当前的TLD(顶级域:. com, . net, .org,等…)。

要求::宏(& # 39;tldIs& # 39;,, function  (TLD), {   ,,,return  Str::是(& # 39;* # 39;公司,只tld美元,美元这→根());   });   要求::tldIs (& # 39; com # 39;),//, returns  true  for  app.com   请求::tldIs (& # 39; dev # 39;),//, returns  false  for  app.com

你会注意到Laravel自动绑定这个到请求的美元上线文中,而不是在一个已经定义宏的类里。比如:

class  AppServiceProvider   {   ,,,public  function 引导()   ,,,{   ,,,,,,,请求::宏(& # 39;上下文# 39;,,function  (), {   ,,,,,,,,,,,return  get_class ($);   ,,,,,,,}   ,,,}   …   要求::上下文(),,//,returns  & # 39;阐明\ Http \请求# 39;//,instead  of  & # 39;应用\ AppServiceProvider& # 39;

让我们看一个更高级的示例。此宏有条件地基于当前TLD在模型上添加一个地方语句。

建设者::宏(& # 39;whenTldMatches& # 39;,,函数(TLD美元,,回调),{   ,,,if (要求::tldIs (tld)美元),{   ,,,,,,,call_user_func(回调→美元bindTo ($));   ,,,}   ,,,return 美元;   });   SomeModel:: whenTldMatches (& # 39; org # 39;,, function  (), {   ,,,这个→美元,(& # 39;id # 39;,, & # 39;祝辞& # 39;,,5);   })→get ();//,applies →()的地方,在,app.org 上应用,而不在,app.com 上应用

<强>我们应该在哪里定义它们?

服务提供者为为您的应用程序定义宏的好地方。<代码>应用\ \供应商AppServiceProvider引导()是<代码>我>

下一步是创建一个<代码>应用\ \供应商MacrosServiceProvider> 配置/应用程序。php代码里。如果某宏与之相关,我可能会创建一个<代码>应用\ \供应商TldAwareServiceProvider> TLD>

<强>哪些组件是Macroable ?

宏可以再任何具有Macroable特性的类上定义。下面是一个Macroable的门面和类的列表

<强>门面

●●缓存文件

●朗

●●请求响应

●●路线URL

<强>照亮类

●照亮\缓存\库

●照亮\控制台\调度\事件

●照亮\雄辩的\ \数据库建设者

●照亮\雄辩的\ \数据库关系

●照亮\ \数据库查询\ Builder

●照亮、文件系统、文件系统

●照亮\ \测试基础\ TestResponse

●照亮\ Http \ RedirectResponse

●照亮\ Http请求\

●照亮\ Http \ UploadedFile

●照亮\路由\ ResponseFactory

●照亮\路由\路由器

●照亮\路由\ UrlGenerator

●照亮Arr \支持\

●照亮\ \支持收集

●照亮\支持\ Str

●照亮\ \翻译翻译

●照亮\ \验证规则

感谢各位的阅读!关于“Laravel宏指令宏观的用法”这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,让大家可以学到更多知识,如果觉得文章不错,可以把它分享出去让更多的人看到吧!

Laravel宏指令宏观的用法