我有一个 p 函数是用来打印数据的;
以符合人类阅读的方式打印 php 数组
不管走到哪个项目我都会带上她;
虽然框架一般也都自带打印函数;
但是并不一定符合我们的习惯或要求;
这时候就需要自定义函数了;
开发中定义一些常用的函数可以大大的提升我们的效率;
避免重复代码;
thinkphp 的公共函数是放在 Application/Common/Common/function.php 目录下的;
然鹅 laravel 默认并没有为我们定义一个写函数的文件;
于是我就搜了下全球最大的工单系统 stackoverflow ;
以及从其他地方搜刮了一些方案整理如下;
首先是最简单粗暴的方式;
手动创建 app/Libraries/Functions/helpers.php
文件 ;
把函数写在 helpers.php 中;
在入口文件中 public/index.php
的顶部直接引入即可;
require __DIR__.'/../app/Libraries/Functions/helpers.php';
然后就可以愉快的使用自定义的函数了;
上面这种方式简单是简单了但是过于粗暴;
直接把 laravel 引以为傲的优雅拉到城乡结合部发廊的水平;
不可取;不可取;
那咱来个优雅的方式;
先用命令行创建一个服务提供者;
php artisan make:provider HelperServiceProvider
执行命令会生成 app/Providers/HelperServiceProvider.php
文件;
然后我们在 register
中引入函数文件;
/**
* Register the application services.
*
* @return void
*/
public function register()
{
require app_path().'/Libraries/Functions/helpers.php';
}
最后在 config/app.php
文件中的 providers
数组中注册提供者;
'providers' => [
// 此处省略无数 ServiceProvider ...
App\Providers\HelperServiceProvider::class,
],
上面这种方法优雅是优雅了但是略微繁琐;
那可不可以有种方式既简单又不粗暴呢?
这就要靠我们根目录下的 composer.json
文件了;
在 autoload
中加上 files
;
"autoload": {
"classmap": [
"database",
"app/Libraries/Org"
],
"psr-4": {
"App\\": "app/"
},
"files": [
"app/Libraries/Functions/helpers.php"
]
},
然后运行下面的命令更新一下;
composer dump-autoload
ok;就这么完了;
除了自定义的函数;
咱还会用到自定义的类;
thinkphp 是放在 ThinkPHP/Library/Org
目录下的;
laravel 是推崇模块化开发的;
第三方的包都是通过 composer 引入的;
但是如果因为历史的原因或者其他情况;
实在是需要引入自定义的类的;
我上面其实已经讲过了;
讲过了?没错;
其实还是上面那段写在 composer.json
中的内容;autoload
下的 classmap
增加一条 app/Libraries/Org
就搞定了;;
自定义的类放在 app/Libraries/Org 目录下;
写好命名空间;
使用的时候直接 use 就可以了;
本文为白俊遥原创文章,转载无需和我联系,但请注明来自白俊遥博客https://baijunyao.com 欢迎捐赠赞赏加入组织创建QQ群及捐赠渠道
那天的你 :厉害
2020-03-22 19:21:08 回复
一杯のお茶 :
2019-03-21 15:48:34 回复
承接网站定制|seo优化 :
2018-11-19 16:48:34 回复
花舞千魂殇 :composer 这就很洋气了
2018-07-27 09:58:43 回复
月之门 :写的真鸡儿通俗易懂...赞
2018-06-29 10:19:08 回复
旅途 :请问一下大神 , 您博客里面的title上的 "白" 怎么去除 ,还有有您的这个开源博客的一些别的说明吗 , 除了您现有的一篇文章
2017-11-05 19:27:19 回复
云淡风晴 :后台有配置项可以直接改;新系统完成我会写更详细的文档;
2017-11-07 23:59:41 回复
Echo :编辑器添加图片之后,不能移动光标,也不能继续添加文本内容,没有报错
2017-10-08 06:32:41 回复
Echo :知道原因了,因为默认的广告禁用插件里面禁用了js。蠢哭,哈哈
2017-10-08 06:36:59 回复
淡远如风 :好样的!好久没来了更新这么多了
2017-09-23 17:21:43 回复
土豪 :111
2017-09-27 00:22:30 回复
土豪 :22
2017-09-27 00:22:34 回复
AuroraLZDF :333
2017-10-13 11:02:14 回复
阿根廷大大华人网 :好样的 点赞
2017-09-22 16:29:12 回复
醉是清瀮 :紧抱大神腿毛
2017-09-21 21:40:28 回复
Small~parcel :哈喽哈喽,请问你的随言碎语中的时间轴是用的上面插件?
2017-09-19 17:56:11 回复
云淡风晴 :没插件;手写的;
2017-09-20 22:47:10 回复
若只初见 :65y56
2017-11-09 09:17:57 回复
若只初见 :44444
2017-11-09 09:19:18 回复
PHP部门 :
2017-09-18 11:33:40 回复
萧逸 :laravel也可以优雅的打印 使用的dd() 我们公司开发使用的函数库 都是定义的一个函数类 里边都定义了很多静态方法 每次还得className::function 哎呦吗呀
2017-09-16 11:58:23 回复
云淡风晴 :恩恩;这篇文章就是为下一篇讲打印数据做铺垫的;
2017-09-17 15:07:47 回复
急速野驴 :大神文章必看!
2017-09-15 13:55:16 回复
云淡风晴 :多谢支持;
2017-09-17 15:08:34 回复
诗意林 :紧跟大神步伐
2017-09-15 10:44:32 回复
缺氧 :一直紧跟大神的步伐
2017-09-14 22:49:21 回复
:朋友 你的博客源码 我装了 一直失败...是我的人品问题吗?????还请你看看...能回复我下吗?
2017-09-14 22:27:57 回复
云淡风晴 :有什么错误提示?
2017-09-17 15:08:11 回复
正在连接中...... :
2017-09-14 11:06:01 回复
V :你github上的composer.json files helper.php 少了个S
2017-09-12 18:23:06 回复
云淡风晴 :多谢提醒;已同步;
2017-09-17 15:08:23 回复
灵魂摆渡 :
2017-09-12 11:14:10 回复
最新评论