自动加载助手文件夹 Laravel 5

Autoload Helper folder Laravel 5

我想调用助手文件夹中的静态方法。

我试过很多教程,但总是只有一个文件。

我的配置 /app/Helpers/Languages.php -> 我的静态 class

composer.json

"autoload": {
    "classmap": [
        "database",
        "app/Helpers/" <- I understand, L5 add in own autoload

app.php

'aliases' => [ ...., 'Languages'      => 'App\Helpers\Languages',

我尝试了什么:

对于所有方法,我需要使用 'app/Helpers/Languages' 但我想只调用 Languages::myFunction() 而不调用 'use' 。可能吗 ?

我已经在 psr-4 中创建了 'app/' 文件夹,所以它将是加载文件夹和我的文件,不是吗?

如果在没有我的情况下加载页面时有帮助:

FatalErrorException Class 'App\Http\Controllers\Languages' 未找到

我更新composer.json的时候没有忘记composer dump-autoload

我不认为你遇到的问题是因为 class 没有被自动加载,而是因为你试图以错误的方式使用它。即使使用您添加的别名,在命名空间 (如 App\Http\Controllers)中使用来自 的 class 时,您也必须添加导入语句:

use App\Helpers\Languages;
// or with the alias
use Languages;

或在使用时指定FQN:

\App\Helpers\Languages::myFunction();
// or with the alias
\Languages::myFunction();

你真的无法避免这一点。你可以做什么,这样你就不必担心命名空间:使用没有 class 的辅助函数。就像 Laravel 的辅助函数一样。 (route(), 'trans()', 等)