如何在laravel 5中添加Libraries文件夹


How to add Libraries folder in laravel 5?

我正在尝试在laravel 5.0中添加libraries文件夹。我尝试遵循以下步骤链接但我犯了一个错误。

Class 'Libraries'Myclass' not found

这是我的composer.json

{
"autoload": {
        "classmap": [
            "database"            
        ],
        "psr-4": {
            "App''": "app/"
        }
    },
    "autoload-dev": {
        "classmap": [
            "tests/TestCase.php",
            "app/Libraries"
        ]
    },
    "scripts": {
        "post-root-package-install": [
            "php -r '"copy('.env.example', '.env');'""
        ],
        "post-create-project-cmd": [
            "php artisan key:generate"
        ],
        "post-install-cmd": [
            "Illuminate''Foundation''ComposerScripts::postInstall",
            "php artisan optimize"
        ],
        "post-update-cmd": [
            "Illuminate''Foundation''ComposerScripts::postUpdate",
            "php artisan optimize"
        ]
    },
    "config": {
        "preferred-install": "dist"
    }
}

请参阅自动加载dev。我添加了我的库(应用程序/库(文件夹,然后运行此命令composer dump autoload这是Libraries/Myclass.php 中我的类代码

namespace Libraries'Myclass;
class Myclass{
    public function hello(){
        echo "hello world";
    }
}

我不知道我的代码是否足够好。如果我弄错了,请纠正我。我正在尝试在laravel 5中探索更多内容。

    {
     "autoload": {
        "classmap": [
            "database"            
        ],
        "files": [
            "app/Libraries"
        ],
        "psr-4": {
            "App''": "app/"
        }
    },
    "autoload-dev": {
        "classmap": [
            "tests/TestCase.php",
        ]
    },
    "scripts": {
        "post-root-package-install": [
            "php -r '"copy('.env.example', '.env');'""
        ],
        "post-create-project-cmd": [
            "php artisan key:generate"
        ],
        "post-install-cmd": [
            "Illuminate''Foundation''ComposerScripts::postInstall",
            "php artisan optimize"
        ],
        "post-update-cmd": [
            "Illuminate''Foundation''ComposerScripts::postUpdate",
            "php artisan optimize"
        ]
    },
    "config": {
        "preferred-install": "dist"
    }
}

运行composer dump-autoload命令并使用库。

我也遇到过类似的情况,并想出了一个干净的方法(在我看来(。我正在使用Laravel 5.4。我的班级被命名为"Ldap",以下是我的做法。

  1. 在应用程序下创建了Libraries目录,并添加了我的类文件:

    app/Ldap.php(具有Libraries''Ldap命名空间(

  2. 在composer.json文件中,

    "autoload": {
        ...
        "classmap": [
            "database",
            "app/Libraries" <------------ Added libraries directory
        ], 
        ...
     }
    
  3. 去了终端并运行了这个命令:composer dump autoload

  4. 打开了aap/config/app.php文件,并在"别名"下添加了以下代码:

    'aliases' => [
        ...
        'Ldap' => 'Libraries'Ldap'Ldap::class <--- Added this line
    ],
    
  5. 现在在我的控制器中,我只是实例化我的类:

    // Ldap class object
    $ldapObj = new Ldap();
    

它就像一个符咒!拉拉韦林快乐!

对于laravel 8,以下方法有效:

composer.json:中

"autoload": {
        "psr-4": {
            "App''": "app/",
            "Database''Factories''": "database/factories/",
            "Database''Seeders''": "database/seeders/",
            "Lib''": "lib/" <------- Add this
        }
    },

然后运行composer dump-autoload