Ger*_*awn 9 php autoload laravel composer-php
我在library文件夹中创建了一个文件app夹来添加我自己的类.
这是文件的内容app/library/helper.php:
<?php
namespace Library;
class MyHelper
{
public function v($arr)
{
var_dump($arr);
}
}
Run Code Online (Sandbox Code Playgroud)
我将命名空间添加到composer.json:
然后我跑了
$ composer dump-autoload
Run Code Online (Sandbox Code Playgroud)
但它似乎没有任何影响.
文件
vendor/composer/autoload_psr4.phpvendor/composer/autoload_classmap.php没改变.
如果我尝试创建一个实例MyHelper,Laravel会报告以下错误:
我不确定我做错了什么.
使用files指令composer.json:https : //getcomposer.org/doc/04-schema.md#files
{
"autoload": {
"files": ["app/library/helper.php"]
}
}
Run Code Online (Sandbox Code Playgroud)
你的自动加载配置几乎是好的,但你有
要解决此问题,请调整自动加载配置:
{
"autoload": {
"classmap": [
"database"
],
"psr-4": {
"App\\": "app/"
}
}
}
Run Code Online (Sandbox Code Playgroud)
然后将目录重命名/library为/Library(注意案例).
然后将文件重命名/app/Library/helper.php为/app/Library/MyHelper.php(注意类名称应如何与文件名匹配).
然后调整提供的类的名称空间/app/Library/MyHelper以匹配PSR-4前缀(以及项目的结构),以及类的用法:
namespace App\Library;
class MyHelper
{
public function v($arr)
{
var_dump($arr);
}
}
Run Code Online (Sandbox Code Playgroud)
供参考,请参阅:
| 归档时间: |
|
| 查看次数: |
23868 次 |
| 最近记录: |