众所周知大家在垒砖时会遇到很多相同的方法,每次都要写一遍,这样是很糟心的,何不将这些相同的方法写入到一个公共的类函数中呢。
下面说一下laravel 如何编写自己的公共函数(仅供刚学的laravel小白参考,laravel大神有其他的方法可以告知我,在这里谢谢各位大神了)。
一、在app目录下创建文件夹Helper
二、在Helper中创建php类文件名字可以随便(eg:Helper.php)
三、打开项目根目录下的composer.json文件添加如下内容
composer.json文件添加的内容
"files": [
"app/Helper/Helper.php"
]
以上的内容添加完成后,到项目的根目录下执行 composer dump-auto将该文件添加到自动加载
加载成功的提示
Generating optimized autoload files
> Illuminate\Foundation\ComposerScripts::postAutoloadDump
> @php artisan package:discover --ansi
Discovered Package: beyondcode/laravel-dump-server
Discovered Package: fideloper/proxy
Discovered Package: laravel/nexmo-notification-channel
Discovered Package: laravel/slack-notification-channel
Discovered Package: laravel/tinker
Discovered Package: nesbot/carbon
Discovered Package: nunomaduro/collision
Package manifest generated successfully.
如果在执行该命令时提示失败,需要检查一下您是否添加了命名空间,如果没有赶紧添加上吧
还有一种提示失败 该文件不是一个类文件件,而是一个普通的php文件,此时也会报错,我刚开始就是这个问题,从网上找到的一篇文章这样说的,后来改成了php的类文件,加上命名空间然后就成功了,此处有使用普通的php文件成功的大神请留言告诉一声如何做的,小弟万分感谢。
Helper.php
<?php
use app\Helper;
/**
* Created by PhpStorm.
* User: zwx
* Date: 2019/3/14
* Time: 15:10
* 自定义的静态公共函数
*/
class Helper
{
public static function hello()
{
// 自己的逻辑代码
}
}
<?php
use app\Helper;
/**
* Created by PhpStorm.
* User: zwx
* Date: 2019/3/14
* Time: 15:10
* 自定义非静态公共函数
*/
class Helper
{
public function helper()
{
// 自己的逻辑
}
}
以上的两种方式都是可以的
使用方法
在使用自定义的公共函数时有 可以使用use Helper引入改文件或者是直接在逻辑中\Helper::helper()即可(静态方法) \Helper -> helper()(非静态函数)
ps:这样是helper()函数会当成是一个构造函数,此处只做例子说明,此处使用的laravel5.7,其他版本可能files是不同的,但是流程应该都是一样的