gpt4 book ai didi

laravel-4 - 拉拉维尔 : load custom class from new custom directory

转载 作者:行者123 更新时间:2023-12-02 09:12:21 24 4
gpt4 key购买 nike

我目前已在我的应用程序目录中为我的所有“库”添加了一个新文件夹。我不断收到找不到该类的错误,这就是我所做的:

我已将其添加到composer.json文件中的自动加载值中:

"autoload": {
"classmap": [
"app/commands",
"app/controllers",
"app/models",
"app/database/migrations",
"app/database/seeds",
"app/tests/TestCase.php",
"app/services",
"app/facades",
"app/libraries" --> here
]
},

将其添加到类加载器中的 global.php 文件中:

ClassLoader::addDirectories(array(

app_path().'/commands',
app_path().'/controllers',
app_path().'/models',
app_path().'/database/seeds',
app_path().'/libraries', --> here

));

在 app.php 中为其创建别名:

'aliases' => array(

'App' => 'Illuminate\Support\Facades\App',
'Session' => 'Illuminate\Support\Facades\Session',
...
'SimpleImage' => 'App\Libraries\abeautifulsite\SimpleImage', --> here

),

并在我的 Controller 中调用该类:

$img = new SimpleImage($file);

我不断收到的错误是找不到该类。我错过了什么?

ErrorException (E_UNKNOWN) 
Class 'App\Libraries\abeautifulsite\SimpleImage' not found

(PS。我在终端中做了composer dump-autoload)

最佳答案

在 Laravel 项目中添加自定义文件夹的最佳方法是使用 PSR-4

首先在 /app 中创建自定义目录,例如:

/app/YourName/libraries

现在打开 composer.json 并在 autoload -> classmap 之后添加 psr-4 结构:

"autoload": {
"classmap": [
"app/commands",
"app/controllers",
"app/models",
"app/database/migrations",
"app/database/seeds",
"app/tests/TestCase.php",
"app/services",
"app/facades"
],
"psr-4": {
"YourName\\": "app/YourName"
}
},

请注意,我删除了您的 /app/libraries 行,然后运行:

composer dump-autoload

这样,您将在 YourName 文件夹中添加的所有文件夹都将被加载。

例如:

app/ChristianGiupponi/libraries

"psr-4": {
"ChristianGiupponi\\": "app/ChristianGiupponi"
}

关于laravel-4 - 拉拉维尔 : load custom class from new custom directory,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27521690/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com