Php Laravel 5中的自动加载助手功能目录

Php Laravel 5中的自动加载助手功能目录,php,laravel,laravel-5,laravel-5.1,Php,Laravel,Laravel 5,Laravel 5.1,我有一个类,里面有很多约会助手函数。我将其存储在app\Helpers\DateHelper.php 等级 然后,我运行composer安装 我得到 别名 然后,我像这样添加到alias数组 'DateHelper' => 'app\Helpers\DateHelper', 使用 然后,我用了它 {{ DateHelper::day_ago($n->created_at) }} 结果 如何正确添加它 如果您对此有任何提示/建议,我们将不胜感激 Laravel中助手文件的典

我有一个类,里面有很多约会助手函数。我将其存储在app\Helpers\DateHelper.php

等级 然后,我运行composer安装

我得到


别名 然后,我像这样添加到alias数组

'DateHelper'  => 'app\Helpers\DateHelper',

使用 然后,我用了它

{{ DateHelper::day_ago($n->created_at) }}

结果 如何正确添加它


如果您对此有任何提示/建议,我们将不胜感激

Laravel中助手文件的典型示例:

  • app
    目录中创建一个
    helper.php
    文件
  • 创建助手函数
  • 现在在
    composer.json
    文件中添加
    helper.php
    文件
  • 执行
    composer转储自动加载
  • 现在,您的助手功能将在整个项目中可用 如果要为helper文件创建目录,请为helper文件命名名称空间

    "autoload": {
      "classmap": [
         "database",
       ],
       "psr-4": {
          "App\\": "app/",
          "Helpers\\": "app/helpers/" //This is if you are using the directory
       },
       "files": ["helper.php"] //This is if it's just a php file.
    },
    
    i、 e:

    //app/helpers/helperClass.php
    <?php namespace Helpers;
    
    class helperClass{
      public function showDate()
      {
        //return
      }
    }
    

    如果它是一个视图,请像这样使用:
    {{\Helpers\helperClass::showDate()}

    您的别名错误。别名应该是具有命名空间的完全限定类名,而不是它所在的目录

    'DateHelper'  => 'App\DateHelper',
    
    我建议遵循PSR-4标准。这将节省时间,减少混乱

    此外,这样就不会再发生这种情况,最好使用如下语法

    'DateHelper'  => App\DateHelper::class,
    

    这样,您就可以完全确定该类是否存在。

    执行
    编写器转储自动加载操作。只需在一天前($n->created_at)调用
    让我试试,我想
    composer install
    已经包含了它。但是在本例中,您不必创建日期助手函数。你为什么不使用碳纤维呢?我还有其他的功能想利用它。最后,我需要学习如何在我的L5应用程序中集成helpers函数。当然,无论何时创建helper类,只要在
    composer.json
    中包含路径,并执行
    composer dump autoload
    。那么你就不必再引用这个类了。我知道这些步骤会奏效,因为我已经做到了。我的目标是自动加载整个目录,而不仅仅是一个文件helper.php。您可以在
    composer.json
    psr-4
    部分中包含
    “Helpers”:“app/Helpers”
    目录,并使用
    Helpers
    为您的helper文件命名名称空间。还做了一个
    composer dump autoload
    Ohh
    psr-4
    ,我以为是
    classmap
    部分。我将更改它并更新您。这里是我的自动加载部分,
    “autoload”:{“classmap”:[“database”],“psr-4”:{“App\\”:“App/”,“App/Helpers”},“files”:[“App/Helper.php”]},
    ,如果您在类中创建助手函数,在
    config
    文件中创建一个别名,并引用使用它的类。Ok。那么,我们如何使我们的目录中满是helpers类自动加载呢?在它们上设置正确的名称空间。例如,您的
    DateHelper
    应该具有名称空间
    App\Helpers
    。如果名称空间遵循目录结构,则PSR-4将自动加载它们,无需对
    composer.json
    进行任何更改,也无需
    composer转储自动加载。请记住,如果更改了名称空间,请确保更新别名以反映名称空间中的更改。
    
    "autoload": {
      "classmap": [
         "database",
       ],
       "psr-4": {
          "App\\": "app/",
          "Helpers\\": "app/helpers/" //This is if you are using the directory
       },
       "files": ["helper.php"] //This is if it's just a php file.
    },
    
    //app/helpers/helperClass.php
    <?php namespace Helpers;
    
    class helperClass{
      public function showDate()
      {
        //return
      }
    }
    
    use Helpers/helperClass;
    //If you've creates an alias for this, use it here. 
    use helperClass;   //(This is from the config/app.php file)
    
    'DateHelper'  => 'App\DateHelper',
    
    'DateHelper'  => App\DateHelper::class,