1

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

我尝试了很多 tutos,但它总是只针对一个文件。

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

作曲家.json

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

应用程序.php

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

我尝试了什么:

  • 添加自动加载类映射、HelpersServiceProviders 类、命名空间(仅在刀片模板中工作,而不是在控制器中)
  • 添加带和不带类映射、命名空间的自动加载 psr-4

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

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

如果在没有我的情况下加载页面时它可以提供帮助:

找不到 FatalErrorException 类“App\Http\Controllers\Languages”

当我更新 composer.json 时,我没有忘记 composer dump-autoload

4

1 回答 1

0

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

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

或者使用时指定FQN:

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

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

于 2015-07-08T20:20:35.250 回答