首页 文章

Autoload Helper文件夹Laravel 5

提问于
浏览
1

我想在帮助器文件夹中调用静态方法 .

我尝试了很多tutos,但它总是只有一个文件 .

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

composer.json

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

app.php

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

我尝试了什么:

  • 添加自动加载类图,HelpersServiceProviders类,命名空间(仅在刀片模板中工作,不在Controller中)

  • 使用和不使用classmap,命名空间添加自动加载psr-4

对于所有方法,我需要使用'app / Helpers / Languages',但我想在没有'use'的情况下调用Speages :: myFunction() . 可能吗 ?

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

如果它在加载页面时可以帮助我没有:

FatalErrorException Class 'App\Http\Controllers\Languages' not found

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

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()'等)

相关问题