问题描述
我的包装中收到不赞成使用的警告,说某些文件不符合psr-4自动加载标准。
我有一个laravel 8项目,在其中加载我的包。当我在laravel目录中运行composer update时,会看到以下消息:
弃用声明:位于./vendor/my/name-space/src/database/seeders/RoleTableSeeder.PHP中的类My \ NameSpace \ Database \ Seeders \ RoleTableSeeder不符合psr-4自动加载标准。在Composer v2.0中将不再自动加载。在phar:///usr/local/bin/composer/src/Composer/Autoload/ClassMapGenerator.PHP:201
my/name-space/src/Database/Seeders/RoleTableSeeder.PHP
<?PHP
namespace My\NameSpace\Database\Seeders;
use Illuminate\Database\Seeder;
use Spatie\Permission\Models\Role;
class RoleTableSeeder extends Seeder
{
/**
* Run the database seeds.
*
* @return void
*/
public function run()
{
if ( ! Role::query()->where('name','=','Administrator')->exists()) {
\Artisan::call('permission:create-role Administrator web');
}
if ( ! Role::query()->where('name','User')->exists()) {
\Artisan::call('permission:create-role User web');
}
}
}
我已经读过autoloading standard,但我并没有真正发现问题所在。我还有许多其他文件未给出此错误,它们具有相同的目录结构和文件命名。
composer.lock
{
"name": "my/name-space","version": "dev-master","source": {
"type": "git","url": "git@url.git","reference": "039df11c86dc77e04830293982ba9415f688885b"
},"require": {
"barryvdh/laravel-ide-helper": "^2.5","ext-json": "*","guzzlehttp/guzzle": "^7.0.*","keboola/csv": "^2.0","laravel/jetstream": "^1.2","PHP": "^7.4","spatie/laravel-permission": "^3.17.0","wapmorgan/unified-archive": "^0.1.2"
},"require-dev": {
"illuminate/auth": "8.*","illuminate/bus": "8.*","illuminate/console": "8.*","illuminate/filesystem": "8.*","illuminate/routing": "8.*","illuminate/support": "8.*","illuminate/validation": "8.*","illuminate/view": "8.*","roave/security-advisories": "dev-master","symfony/finder": "5.*"
},"type": "library","extra": {
"laravel": {
"providers": [
"\\My\\NameSpace\\ServiceProvider"
]
}
},"autoload": {
"classmap": [
"src/Controllers"
],"psr-4": {
"My\\NameSpace "src/"
}
},"license": [
"MIT"
],"authors": [
{
"name": "name here","email": "e@mail.nl","homepage": "https://url.nl","role": "company"
}
],"description": "Default admin panel","time": "2020-09-22T12:22:57+00:00"
},
composer.json
"autoload": {
"psr-4": {
"App\\": "app/","Database\\Factories\\": "database/factories/","Database\\Seeders\\": "database/seeders/"
}
},"autoload-dev": {
"psr-4": {
"Tests\\": "tests/"
}
},
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)