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等等, 刚刚注册的账号的个人信息的默认图标都是一些看上去像七巧板拼凑的图案,对称又变化多端. 本人也是因为好奇才在网上搜了这个算法,主要是哈希算法,把邮箱或
随机推荐
- JQuery实现列表中复选框全选反选功能封装(推荐)
- Flex Event总结
- 用jmSlip编写移动端顶部日历选择控件
- Java多线程并发编程(互斥锁Reentrant Lock)
- EsLint入门学习教程
- js面向对象编程总结
- 浏览器兼容性问题大汇总
- vc提示unexpected end of file found的原因分析
- mysql登录报错提示:ERROR 1045 (28000)的解决方法
- 基于android中权限的集合汇总
- Android中创建多线程管理器实例
- js中将多个语句写成一个语句的两种方法小结
- 整体刷新和局部刷新frameset窗口问题深入探讨
- Linux下日志按日分割的shell
- Sql学习第三天——SQL 关于with ties介绍
- 利用jquery操作select下拉列表框的代码
- 用JavaScript判断CSS浏览器类型前缀的两种方法
- 怎样在UNIX系统下安装MySQL
- 在.NET中利用委托实现窗体间通信
- php4的彩蛋