热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

laravel2层foreach_3分钟短文|Laravel注册全局助手函数的2种方式

引言Laravel框架内提供了Str,Arr等帮助类,用于字符串操作,数组操作,将PHP内置的str开头的函数,

引言

Laravel框架内提供了 Str,Arr 等帮助类,用于字符串操作,数组操作,将PHP内置的 str 开头的函数,和 array 开头的函数,使用面向对象的方式进行操作。

ba092a7a06df058abb5dd44204a65ada.png

如果我们要写一些全局使用的助手函数,应该如何加载到 Laravel 框架内呢?本文就来说一说。

学习时间

首先我们创建一个文件,比如路径地址就在 app/lib/helper.php 内。然后声明一个函数:

if (! function_exists('checkWorking')) {function checkWorking(){return "Hey, it's working!";}
}

然后打开 composer.json 文件,在文件加载的配置部分,添加如下信息:

"autoload": {...."files": ["app/lib/helpers.php"]
},

这样写框架还不会自动加载,我们需要使用 composer 指令更新系统的自动加载文件。在根目录,命令行内执行:

composer dump-autoload

之后在框架内的任何地方,就可以直接访问 helper 文件内声明的函数了。

Laravel 的方式

我们也可以使用laravel加载类库,注册类库的办法,进行助手函数文件的动态加载。首先创建一个 ServiceProvider,命令行内执行:

php artisan make:provider HelperServiceProvider

这会创建 HelperServiceProvider 文件,在 registe 方法内实现加载文件的逻辑:

public function register()
{foreach (glob(app_path().'/lib/*.php') as $filename){require_once($filename);}
}

这一段加载很直观,就是使用 glob 函数扫描目录 app/lib/*.php 规则匹配的所有文件,并使用 require_once 方法加载进来。

当然了,写完这些,还是需要更新自动加载的代码,命令行执行

composer dump-autoload

效果与上一节相同。可是更方便在程序内处理,因为我们把加载逻辑,植入到了框架加载流程内,比较容易控制。

写在最后

本文通过2种方式动态加载助手函数到全局,一种是修改 composer 配置文件,一种是在 laravel 内使用“服务提供者”进行注册。

我们更倾向于于第二种方式,因为维护程序较为方便,也更直观,沿袭了框架开发的统一原则。

Happy coding :-)

我是 @程序员小助手 ,持续分享编程知识,欢迎关注。



推荐阅读
  • 篇首语:本文由编程笔记#小编为大家整理,主要介绍了未找到类'MaddHatterLaravelFullcalendarServiceProvider'相关的知识,希望对你 ... [详细]
  • 如何提高PHP编程技能及推荐高级教程
    本文介绍了如何提高PHP编程技能的方法,推荐了一些高级教程。学习任何一种编程语言都需要长期的坚持和不懈的努力,本文提醒读者要有足够的耐心和时间投入。通过实践操作学习,可以更好地理解和掌握PHP语言的特异性,特别是单引号和双引号的用法。同时,本文也指出了只走马观花看整体而不深入学习的学习方式无法真正掌握这门语言,建议读者要从整体来考虑局部,培养大局观。最后,本文提醒读者完成一个像模像样的网站需要付出更多的努力和实践。 ... [详细]
  • 如何查询zone下的表的信息
    本文介绍了如何通过TcaplusDB知识库查询zone下的表的信息。包括请求地址、GET请求参数说明、返回参数说明等内容。通过curl方法发起请求,并提供了请求示例。 ... [详细]
  • 本文介绍了如何使用JSONObiect和Gson相关方法实现json数据与kotlin对象的相互转换。首先解释了JSON的概念和数据格式,然后详细介绍了相关API,包括JSONObject和Gson的使用方法。接着讲解了如何将json格式的字符串转换为kotlin对象或List,以及如何将kotlin对象转换为json字符串。最后提到了使用Map封装json对象的特殊情况。文章还对JSON和XML进行了比较,指出了JSON的优势和缺点。 ... [详细]
  • MySQL中的MVVC多版本并发控制机制的应用及实现
    本文介绍了MySQL中MVCC的应用及实现机制。MVCC是一种提高并发性能的技术,通过对事务内读取的内存进行处理,避免写操作堵塞读操作的并发问题。与其他数据库系统的MVCC实现机制不尽相同,MySQL的MVCC是在undolog中实现的。通过undolog可以找回数据的历史版本,提供给用户读取或在回滚时覆盖数据页上的数据。MySQL的大多数事务型存储引擎都实现了MVCC,但各自的实现机制有所不同。 ... [详细]
  • 本文介绍了如何使用jQuery和AJAX来实现动态更新两个div的方法。通过调用PHP文件并返回JSON字符串,可以将不同的文本分别插入到两个div中,从而实现页面的动态更新。 ... [详细]
  • 支持composer的php,composer配置
    本文目录一览:1、PHP与composer结合-使用命名空间实现文件自动加载 ... [详细]
  • 本文介绍了lua语言中闭包的特性及其在模式匹配、日期处理、编译和模块化等方面的应用。lua中的闭包是严格遵循词法定界的第一类值,函数可以作为变量自由传递,也可以作为参数传递给其他函数。这些特性使得lua语言具有极大的灵活性,为程序开发带来了便利。 ... [详细]
  • 本文介绍了使用Java实现大数乘法的分治算法,包括输入数据的处理、普通大数乘法的结果和Karatsuba大数乘法的结果。通过改变long类型可以适应不同范围的大数乘法计算。 ... [详细]
  • Java序列化对象传给PHP的方法及原理解析
    本文介绍了Java序列化对象传给PHP的方法及原理,包括Java对象传递的方式、序列化的方式、PHP中的序列化用法介绍、Java是否能反序列化PHP的数据、Java序列化的原理以及解决Java序列化中的问题。同时还解释了序列化的概念和作用,以及代码执行序列化所需要的权限。最后指出,序列化会将对象实例的所有字段都进行序列化,使得数据能够被表示为实例的序列化数据,但只有能够解释该格式的代码才能够确定数据的内容。 ... [详细]
  • Android中高级面试必知必会,积累总结
    本文介绍了Android中高级面试的必知必会内容,并总结了相关经验。文章指出,如今的Android市场对开发人员的要求更高,需要更专业的人才。同时,文章还给出了针对Android岗位的职责和要求,并提供了简历突出的建议。 ... [详细]
  • 如何使用Java获取服务器硬件信息和磁盘负载率
    本文介绍了使用Java编程语言获取服务器硬件信息和磁盘负载率的方法。首先在远程服务器上搭建一个支持服务端语言的HTTP服务,并获取服务器的磁盘信息,并将结果输出。然后在本地使用JS编写一个AJAX脚本,远程请求服务端的程序,得到结果并展示给用户。其中还介绍了如何提取硬盘序列号的方法。 ... [详细]
  • 从零学Java(10)之方法详解,喷打野你真的没我6!
    本文介绍了从零学Java系列中的第10篇文章,详解了Java中的方法。同时讨论了打野过程中喷打野的影响,以及金色打野刀对经济的增加和线上队友经济的影响。指出喷打野会导致线上经济的消减和影响队伍的团结。 ... [详细]
  • 本文介绍了前端人员必须知道的三个问题,即前端都做哪些事、前端都需要哪些技术,以及前端的发展阶段。初级阶段包括HTML、CSS、JavaScript和jQuery的基础知识。进阶阶段涵盖了面向对象编程、响应式设计、Ajax、HTML5等新兴技术。高级阶段包括架构基础、模块化开发、预编译和前沿规范等内容。此外,还介绍了一些后端服务,如Node.js。 ... [详细]
  • Composer是PHP的一个依赖管理工具。它允许你申明项目所依赖的代码库,它会在你的项目中为你安装他们。下载Composer的可执行文件局部安装要真正获取Composer ... [详细]
author-avatar
撩人的醉了
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有