当前位置: 首页 > 知识库问答 >
问题:

创建自定义助手类?

吕向阳
2023-03-14

我已经遵循了在PHP Laravel 5中创建自定义助手函数的最佳实践是什么?

这个问题的两个答案帮助我在laravel 5.1中创建自定义静态类。因为它是一个静态类。提前谢谢你。

共有3个答案

华宇
2023-03-14

您可以按照下面的简单步骤在Laravel 5中创建助手。x

>

  • 第一步

    创建新的helper\u名称。php文件位于app/Helpers目录中。例如,我已经创建了DemoHelper。php以这种方式app/Helpers/DemoHelper。php

    步骤2

    将创建的Helper(DemoHelper.php)条目添加到composer。自动加载部分中的json文件

    "autoload": {
     "files": [
         "app/Helpers/Helper.php",
         "app/Helpers/DemoHelper.php"
     ]
    },
    

    步骤3

    最后,composer dump autoload在终端中点击该命令。

  • 漆雕嘉平
    2023-03-14

    我想你可以按规定做。这种方法没有错。我正在用它来解决这个问题,没有问题。

    阮炯
    2023-03-14

    在助手类中使用静态方法与保护应用程序无关。

    问题是为什么我们甚至使用帮助类/方法,什么是帮助类/方法:

    Laravel有许多帮助器方法,可帮助您最大限度地减少编写常见任务的大量代码:

    此帮助器类文件位于此处:

    供应商\laravel\框架\src\照明\基金会\helpers.php

    以下是Laravel开箱即用的一些辅助方法:

    中止-使用给定数据引发HttpException。

    if (!function_exists('abort')) {
        /**
         * Throw an HttpException with the given data.
         *
         * @param  int     $code
         * @param  string  $message
         * @param  array   $headers
         * @return void
         *
         * @throws \Symfony\Component\HttpKernel\Exception\HttpException
         * @throws \Symfony\Component\HttpKernel\Exception\NotFoundHttpException
         */
        function abort($code, $message = '', array $headers = [])
        {
            return app()->abort($code, $message, $headers);
        }
    }
    

    资产-为应用程序生成资产路径。

    if (!function_exists('asset')) {
        /**
         * Generate an asset path for the application.
         *
         * @param  string  $path
         * @param  bool    $secure
         * @return string
         */
        function asset($path, $secure = null)
        {
            return app('url')->asset($path, $secure);
        }
    }
    

    还有更多。。。

    因此,您希望拥有自己的Helper方法,可能是因为它目前在Laravel Helper中不可用。

    为了避免重写Laravel帮助器方法,最好将自己的帮助器方法放在类文件中:

    示例:我可以在应用程序中重用的日期助手类可能如下所示:

    namespace App\Helpers;
    
    class DateHelper {
    
        public static function dateFormat1($date) {
            if ($date) {
                $dt = new DateTime($date);
    
            return $dt->format("m/d/y"); // 10/27/2014
          }
       }
    }
    

    然后你可以这样使用它:

    {{dateHelper::dateFormat1($user)-

    如果我们不希望使用类,我们可以这样做:

    //helper method for date
    function dateFormat1($date) {
                if ($date) {
                    $dt = new DateTime($date);
    
                return $dt->format("m/d/y"); // 10/27/2014
              }
           }
    

    然后像这样使用它:

    {{dateFormat1($user)-

    但是,如果Laravel的后续版本决定使用同名的heplerdateFormat1,则会发生冲突或覆盖。

    因此,最好将助手方法放在类中。

     类似资料:
    • 到目前为止,我们的应用程序直接显示了我们的Ember Data模型中的用户数据。随着我们的应用程序的发展,我们将会在将数据提供给用户之前进一步操纵数据。为此,Ember提供Handlebars模板助手来装饰模板中的数据。让我们使用一个Handlebars助手来让用户快速看到一个属性是“独立”还是“社区”的一部分。 生成一个rental-property-type助手: $ ember g help

    • 我在中有一些助手类。如何使用

    • 本文向大家介绍asp.net-core 自定义标签助手,包括了asp.net-core 自定义标签助手的使用技巧和注意事项,需要的朋友参考一下 示例 您可以通过实现ITagHelper便捷类或从便捷类派生来创建自己的标记帮助器TagHelper。 默认约定是将与帮助程序名称匹配的html标签作为目标,而不带可选的TagHelper后缀。例如WidgetTagHelper将目标<widget>代码定

    • 我正在尝试在Laravel 5.6中创建一个自定义帮助器 我的助手路径是app\Helpers\ReadExcel。php 以下是我的助手文件: 我的助手的服务提供商如下 在: 我尝试在控制器方法中使用帮助器,如下所示: 我得到的错误如下: 找不到类“ReadExcel” 请帮我这个。我不确定错在哪里。

    • 我正在开发一个新的Eclipse插件,它需要使用Java项目向导中的自定义帮助,如下所示。 Java项目向导第1页 还有...

    • 我想创建帮助函数以避免在Laravel中的视图之间重复代码。例如: 看法刀身php 它们基本上是文本格式函数。我应该如何定义全局可用的助手函数,如fooFormatText()?