如何在Laravel上创buildHelper方法而不是Facade
我已经阅读了很多关于如何在Laravel 5.1上创build一个辅助方法的问题。 但是我不想在Facade中实现这个function
HelperClass::methodName();
我想要像这样的方法Laravel助手方法,如:
myCustomMethod();
我不想让它成为一个门面。 这可能吗? 怎么样? 谢谢。
如果你想使用'Laravel'的方式,你可以使用自定义助手来创buildhelpers.php
文件:
if (! function_exists('myCustomHelper')) { function myCustomHelper() { return 'Hey, it\'s working!'; } }
然后把这个文件放在某个目录下,把这个目录添加到应用程序的composer.json
autoload部分:
"autoload": { .... "files": [ "app/someFolder/helpers.php" ] },
运行composer dumpauto
命令,你的助手将通过所有的应用程序,如Laravel的。
如果你想要更多的例子,可以在/vendor/laravel/framework/Illuminate/Support/helpers.php看看原始的Laravel助手
首先,我在我的app目录中创build了一个名为Helpers
的文件夹。 然后,在Helpers文件夹中,我添加了我想要添加的函数的文件。 拥有一个包含多个文件的文件夹可以避免一个大文件变得太长而难以pipe理。
接下来我通过运行artisan命令创build了一个HelperServiceProvider.php
:
artisan make:provider HelperServiceProvider
在注册方法中,我添加了这个片段
public function register() { foreach (glob(app_path().'/Helpers/*.php') as $filename){ require_once($filename); } }
最后在provider数组中的config/app.php
中注册服务提供者
'providers' => [ 'App\Providers\HelperServiceProvider', ]
之后,您需要运行composer dump-autoload
,您的更改将在Laravel中可见。
现在你的Helpers
目录中的任何文件都被加载,并可以使用。
希望这个作品!