laravel创建类似ThinPHP中functions.php的全局函数
前言
一直觉得ThinPHP中的公共函数是一个很好的设计,因为我们只需要在functions.php中对共用的函数进行封装,然后就可以在全局直接进行调用了。其实Laravel中也有类似的功能的,比如说助手函数,类似于session()
等函数,这些助手函数也是全局可以调用的,非常的方便。
下面总结一下,两者之间的差别以及相同点。
TP3系列中functions.php文件默认其实是空文件,很好找。我们可以直接封装代码。
Laravel5系列中的path/vendor/laravel/framework/src/Illuminate/Foundation/helpers.php
。该文件中封装的函数就是全局函数,可以在任意区域进行调用。
但是,Laravel中的helper.php中已经封装好了很多的内置助手函数,一般不建议直接在该文件中进行自己函数的封装,而是采用新创建一个文件,里面放置需要封装的函数。
这里有一点需要说明:全局函数的实现是依靠在初始化的时候,将helps.php或者functions.php直接进行了加载。而Laravel中path/bootstrap/autoload.php
中可以定义在初始化的时候加载什么文件。
在默认的情况下,有以下一条加载配置:
require __DIR__.'/../vendor/autoload.php';
同样,我们也可以加载其他的文件,比如以下的加载操作:
require __DIR__.'/../app/Common/functions.php';
这样,我们就可以直接在这个加载的文件中直接封装需要的函数,这样也就实现了我们的需要。
另外,有人还推荐了另外一种方法,就是使用一个控制器,在控制器中的类中封装静态的方法,在需要的地方,引入所需的控制器,也可以实现我们的需求。
总结
以上就是这篇文章的全部内容了,希望本文的内容对大家学习或者使用laravel能有一定的帮助,如果有疑问大家可以留言交流。
相关推荐
-
Laravel中如何增加自定义全局函数详解
前言 在日常开发工作中,有时候我们需要给 Laravel 添加一些自定义全局函数.当然,我们可以直接修改 Laravel 的 Helpers.php 文件来实现(这是极其不推荐的). 接下来我们讨论以下两种实现方式: 无论是以下哪种方式,都必须创建包含自定义函数的 PHP 文件 方式一:修改 Laravel 根目录下 bootstrap/autoload.php 文件 方式二:修改 composer.json 的 autoload 配置,并更新 composer 的 autoload_files
-
laravel创建类似ThinPHP中functions.php的全局函数
前言 一直觉得ThinPHP中的公共函数是一个很好的设计,因为我们只需要在functions.php中对共用的函数进行封装,然后就可以在全局直接进行调用了.其实Laravel中也有类似的功能的,比如说助手函数,类似于session()等函数,这些助手函数也是全局可以调用的,非常的方便. 下面总结一下,两者之间的差别以及相同点. TP3系列中functions.php文件默认其实是空文件,很好找.我们可以直接封装代码. Laravel5系列中的path/vendor/laravel/framewo
-
ng-events类似ionic中Events的angular全局事件
介绍 ng-events 在 Angular 2 以上的版本中使用,类似于 ionic 中的 Events.可以使用 ng-events 注册一个全局事件,然后在需要的时候触发这个事件. GitHub地址 快速开始 npm install ng-events --save 在 Angular 6 以上的版本中使用,修改 angular.json 文件, 在Angular 6以下版本中使用,修改.angular-cli.json文件 "scripts": [ "node_mod
-
Android中创建类似Instagram的渐变背景效果
我在我最近的项目用到这个效果,给大家分享下 https://github.com/zhaoweihaoChina/hnuplus 1. 在drawable文件夹创建一些渐变颜色的资源 color1.xml <?xml version="1.0" encoding="utf-8"?> <shape xmlns:android="http://schemas.android.com/apk/res/android"> <
-
在matlab中创建类似字典的数据结构方式
目录 matlab中创建类似字典的数据结构 matlab基本数据结构说明 1.基本数据结构总览(仅含常用类型) 2.数值类型基本操作 3.字符和字符串 4.结构体 5 元胞数组 总结 matlab中创建类似字典的数据结构 Matlab中创建struct: d = struct('a','1','b','2') 在Matlab中通过字符串形式的fieldname来查找value(Using Dynamic FielNames): d.('a') d.('b') 在Matlab中修改已经存在的fie
-
Laravel创建数据库表结构的例子
1.简介 迁移就像数据库的版本控制,允许团队简单轻松的编辑并共享应用的数据库表结构,迁移通常和Laravel的schema构建器结对从而可以很容易地构建应用的数据库表结构.如果你曾经告知小组成员需要手动添加列到本地数据库结构,那么这正是数据库迁移所致力于解决的问题. Laravel 的Schema门面提供了与数据库系统无关的创建和操纵表的支持,在 Laravel 所支持的所有数据库系统中提供一致的.优雅的.平滑的API. 2.生成迁移 使用 Artisan 命令make:migration来创建
-
laravel 创建命令行命令的图文教程
1. 在命令行输入 php artisan make:command NiceWork(此处根据自己想要创建的命名) 2. 命令完成后,会在 目录中看到这个文件 3. 进入Console/Kernel.php , 注册该命令 4. 然后进入 NiceWork.php ,修改$signature 属性 为你想要的命令 比如 'NiceWork',然后 在handle()方法中编写你的逻辑,如下图 5. 到命令行输入 php artisan nice:work ,结果如下图 到此我们就完成了一个自定
-
原生js实现复制对象、扩展对象 类似jquery中的extend()方法
jq的extend()方法能很方便的实现扩展对象方法,语法如下:$.extend(obj1,boj2,obj3); 现在要实现的是:原生js实现复制对象,扩展对象,类似jq中的extend()方法,具体实例如下: 现有3个对象字面量: var o1={hello:1,old:555}, o2 = { abc: 55555555, hello: 2, fun: function() { alert(111); } }, o3={third:9999}; 实现目标: 复制o1对象,把 o2,o3的对
-
javascript实现类似java中getClass()得到对象类名的方法
本文实例讲述了javascript实现类似java中getClass()得到对象类名的方法.分享给大家供大家参考.具体如下: 在javascript中没有能够返回特定类型名的函数 如一个对象 console.log(obj); 得到的是[object HtmlTableCellElement]如果想要一个函数能够返回HtmlTableCellElement js中默认没有这样的函数 可以自己实现一个 var getObjectClass = function (obj) { if (obj &&a
-
Python基于identicon库创建类似Github上用的头像功能
本文实例讲述了Python基于identicon库创建类似Github上用的头像功能.分享给大家供大家参考,具体如下: Identicon在很多大型IT网站上可以见到,比如Github,Sourceforge,Stackoveflow等等, 刚刚注册的账号的个人信息的默认图标都是一些看上去像七巧板拼凑的图案,对称又变化多端. 本人也是因为好奇才在网上搜了这个算法,主要是哈希算法,把邮箱或
随机推荐
- OpenStack 中的Nova组件详解
- 关于html+ashx开发中几个问题的解决方法
- PHP 关于访问控制的和运算符优先级介绍
- destoon复制新模块的方法
- VBScript中变量作用域
- node.js文件上传处理示例
- shell脚本实现实时检测文件变更
- JS Ajax请求如何防止重复提交
- Linux更新Python版本及修改python默认版本的方法
- 详解CentOS 6.4下PXE+Kickstart无人值守安装操作系统
- you *might* want to use the less safe log_bin_trust_function_creators variable
- 完美解决spring websocket自动断开连接再创建引发的问题
- ASP采集入库生成本地文件的几个函数
- 基于JSONP原理解析(推荐)
- 详解Python中的内建函数,可迭代对象,迭代器
- python 批量解压压缩文件的实例代码
- python针对mysql数据库的连接、查询、更新、删除操作示例
- Java实现的数字签名算法RSA完整示例
- 对python的输出和输出格式详解
- maven解决包冲突方法详解