我目前在我的app目录中为所有"库"添加了一个新文件夹.我一直收到一个错误,即找不到这个课程,这就是我的工作:
我已将其添加到autoload值中的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
]
},
Run Code Online (Sandbox Code Playgroud)
将它添加到类加载器中的global.php文件中:
ClassLoader::addDirectories(array(
app_path().'/commands',
app_path().'/controllers',
app_path().'/models',
app_path().'/database/seeds',
app_path().'/libraries', --> here
));
Run Code Online (Sandbox Code Playgroud)
在app.php中为它创建了一个别名:
'aliases' => array(
'App' => 'Illuminate\Support\Facades\App',
'Session' => 'Illuminate\Support\Facades\Session',
...
'SimpleImage' => 'App\Libraries\abeautifulsite\SimpleImage', --> here
),
Run Code Online (Sandbox Code Playgroud)
并在我的控制器中调用该类:
$img = new SimpleImage($file);
Run Code Online (Sandbox Code Playgroud)
我一直收到的错误是找不到类.我错过了什么?
ErrorException (E_UNKNOWN)
Class 'App\Libraries\abeautifulsite\SimpleImage' not found
Run Code Online (Sandbox Code Playgroud)
(PS.我在终端做了composer dump-autoload)
在Laravel项目中添加自定义文件夹的最佳方法是使用PSR-4.
首先在中创建自定义目录/app,例如:
/app/YourName/libraries
Run Code Online (Sandbox Code Playgroud)
现在打开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"
}
},
Run Code Online (Sandbox Code Playgroud)
请注意,我删除了您的/app/libraries行,然后运行:
composer dump-autoload
Run Code Online (Sandbox Code Playgroud)
这样,您将在YourName文件夹中添加的所有文件夹都将被加载.
例如:
app/ChristianGiupponi/libraries
Run Code Online (Sandbox Code Playgroud)
和
"psr-4": {
"ChristianGiupponi\\": "app/ChristianGiupponi"
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3738 次 |
| 最近记录: |