首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何在Laravel中创建自定义助手函数

如何在Laravel中创建自定义助手函数
EN

Stack Overflow用户
提问于 2015-02-03 02:25:12
回答 22查看 339.1K关注 0票数 581

我希望创建帮助函数,以避免在Laravel中的视图之间重复代码。例如:

view.blade.php

代码语言:javascript
复制
<p>Foo Formated text: {{ fooFormatText($text) }}</p>

它们基本上是文本格式函数。如何定义全局可用的助手函数(如fooFormatText() )

EN

Stack Overflow用户

发布于 2017-11-06 12:11:59

创建自定义助手目录:首先在app目录中创建Helpers目录。创建hlper类定义:,让我们现在创建一个简单的帮助函数,它将连接两个字符串。在/app/Helpers/MyFuncs.php中创建一个新文件MyFuncs.php,添加以下代码

代码语言:javascript
复制
<?php

namespace App\Helpers;

class MyFuncs {

    public static function full_name($first_name,$last_name) {
        return $first_name . ', '. $last_name;   
    }
}

名称空间App\ Helpers;在App命名空间下定义Helpers名称空间。类MyFuncs {…}定义助手类MyFuncs。公共静态函数full_name($first_name,$last_name) {…}定义一个接受两个字符串参数并返回连接字符串的静态函数。

助理员服务提供课程

服务提供程序用于自动加载类。我们需要定义一个服务提供者,它将在/app/Helpers目录中加载我们所有的助手类。

运行以下artisan命令:

php make:provider HelperServiceProvider

该文件将在/app/Providers/HelperServiceProvider.php中创建

代码语言:javascript
复制
Open /app/Providers/HelperServiceProvider.php

添加以下代码:

代码语言:javascript
复制
<?php 

namespace App\Providers;

use Illuminate\Support\ServiceProvider;

class HelperServiceProvider extends ServiceProvider {

   /**
    * Bootstrap the application services.
    *
    * @return void
    */
   public function boot()
   {
      //
   }

   /**
    * Register the application services.
    *
    * @return void
    */
   public function register()
   {
        foreach (glob(app_path().'/Helpers/*.php') as $filename){
            require_once($filename);
        }
   }
}

这里,

代码语言:javascript
复制
namespace App\Providers; defines the namespace provider
use Illuminate\Support\ServiceProvider; imports the ServiceProvider class namespace
class HelperServiceProvider extends ServiceProvider {…} defines a class HelperServiceProvider that extends the ServiceProvider class
public function boot(){…} bootstraps the application service
public function register(){…} is the function that loads the helpers
foreach (glob(app_path().'/Helpers/*.php') as $filename){…} loops through all the files in /app/Helpers directory and loads them.

现在我们需要注册HelperServiceProvider并为我们的助手创建一个别名。

打开/config/app.php文件

定位提供者数组变量

添加以下行

代码语言:javascript
复制
App\Providers\HelperServiceProvider::class,

定位别名数组变量

添加以下行

代码语言:javascript
复制
'MyFuncs' => App\Helpers\MyFuncs::class,

使用自定义助手保存更改

我们将创建一个路由,该路由将调用我们的自定义助手函数Open /app/Broades.php

添加以下路由定义

代码语言:javascript
复制
Route::get('/func', function () {
    return MyFuncs::full_name("John","Doe");
});

这里,

代码语言:javascript
复制
return MyFuncs::full_name("John","Doe"); calls the static function full_name in MyFuncs class
票数 8
EN
查看全部 22 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/28290332

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档