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