我希望创建帮助函数,以避免在Laravel中的视图之间重复代码。例如:
view.blade.php
<p>Foo Formated text: {{ fooFormatText($text) }}</p>它们基本上是文本格式函数。如何定义全局可用的助手函数(如fooFormatText() )
发布于 2015-02-03 02:27:52
在应用程序文件夹中创建一个helpers.php文件,并使用composer加载它:
"autoload": {
"classmap": [
...
],
"psr-4": {
"App\\": "app/"
},
"files": [
"app/helpers.php" // <---- ADD THIS
]
},将其添加到composer.json文件后,运行以下命令:
composer dump-autoload如果您不喜欢将helpers.php文件保存在app目录中(因为它不是PSR-4命名空间类文件),那么您可以做laravel.com网站所做的事情:存储helpers.php 在引导目录中。记住在您的composer.json文件中设置它:
"files": [
"bootstrap/helpers.php"
]发布于 2015-09-24 23:46:52
Laravel 5中的自定义类,简单的方法
此答案适用于Laravel中的一般自定义类。要获得更多特定于叶片的答案,请参见Laravel 5中的自定义叶片指令。
步骤1:创建您的助手(或其他自定义类)文件,并为其提供一个匹配的命名空间。写出你的课程和方法:
<?php // Code within app\Helpers\Helper.php
namespace App\Helpers;
class Helper
{
public static function shout(string $string)
{
return strtoupper($string);
}
}步骤2:创建别名:
<?php // Code within config/app.php
'aliases' => [
...
'Helper' => App\Helpers\Helper::class,
...步骤3:在项目根目录中运行composer dump-autoload
步骤4:在叶片模板中使用它:
<!-- Code within resources/views/template.blade.php -->
{!! Helper::shout('this is how to use autoloading correctly!!') !!}额外学分:在您的Laravel应用程序中的任何地方使用这个类:
<?php // Code within app/Http/Controllers/SomeController.php
namespace App\Http\Controllers;
use Helper;
class SomeController extends Controller
{
public function __construct()
{
Helper::shout('now i\'m using my helper class in a controller!!');
}
...来源:http://www.php-fig.org/psr/psr-4/
工作原理:https://github.com/laravel/framework/blob/master/src/Illuminate/Support/ClassLoader.php
自动着色起源于:http://php.net/manual/en/language.oop5.autoload.php
发布于 2015-02-06 06:55:51
我最初的想法也是作曲家自编,但对我来说,这并不是很好的拉拉维尔风格。L5大量使用服务提供者,它们是引导您的应用程序的工具。
首先,我在我的app目录中创建了一个名为Helpers的文件夹。然后,在Helpers文件夹中添加了要添加的函数的文件。有了一个包含多个文件的文件夹,我们就可以避免太长和无法管理的一个大文件。
接下来,通过运行artisan命令创建了一个HelperServiceProvider.php:
artisan make:provider HelperServiceProvider在register方法中,我添加了以下片段
public function register()
{
foreach (glob(app_path().'/Helpers/*.php') as $filename){
require_once($filename);
}
}最后,在providers数组中的config/app.php中注册服务提供程序。
'providers' => [
'App\Providers\HelperServiceProvider',
]现在,您的Helpers目录中的任何文件都已加载,可供使用。
更新2016-02-22
这里有很多很好的选择,但如果我的答案对你有用的话,我就这样做了一个包括助理员在内的一揽子计划。您可以使用该软件包作为灵感,也可以随心所欲地与作曲家一起下载。它有一些内置的帮助程序,我经常使用(但在默认情况下都是不活动的),并允许您使用简单的Artisan生成器制作自己的自定义帮助程序。它还解决了响应者使用映射程序的建议,并允许您显式定义要加载的自定义帮助程序,或者默认情况下自动加载助手目录中的所有PHP文件。反馈和PRs非常感谢!
composer require browner12/helpersGithub:browner12 12/帮手
https://stackoverflow.com/questions/28290332
复制相似问题