找不到 laravel 个软件包中的 Class 个
Class of laravel package not found
我用这个composer.json
制作了一个laravel包:
{
"name": "calcanotica/file-storage",
"type": "library",
"description": "A file storage module for laravel.",
"homepage": "<<gitlab url>>",
"authors": [
{
<<authors>>
}
],
"autoload": {
"psr-4": { "Calcanotica": "src" }
},
"require": {
"php": "^5.5.9 || ^7.0",
"illuminate/contracts": "5.1.* || 5.2.* || 5.3.* || 5.4.*",
"illuminate/support": "5.1.* || 5.2.* || 5.3.* || 5.4.*",
"league/flysystem-aws-s3-v3": "~1.0",
"nesbot/carbon": "^1.0"
}
}
包的结构是:
-src
-Storage
-S3FileStorage.php
在 S3FileStorage.php
文件中我有以下 class:
namespace Calcanotica\Storage;
class S3FileStorage { ... }
但是,当我尝试在另一个应用程序中将 class 用作 \Calcanotica\Storage\S3FileStorage
时,出现 Class \Calcanotica\Storage\S3FileStorage not found
错误。
我已经执行了composer dump-autoload
.
有什么问题?
在您的 composer.json
文件中添加以下行:
"autoload": {
"psr-4": {
"Calcanotica\": "src/"
},
},
您需要在命名空间后添加 \
并在 src
后添加 /
。如需更多信息,请在此处查看:https://getcomposer.org/doc/04-schema.md#psr-4
您的 autoload
部分不正确。命名空间必须以 \
(docs) 结尾,因此它应该是:
"autoload": {
"psr-4": { "Calcanotica\": "src" }
},
但是我会更换整个
"autoload": {
"psr-4": { "Calcanotica": "src" }
},
和
"autoload": {
"classmap": [ "src/" ]
},
并让 composer 弄清楚什么是哪里 (docs),这在一般情况下更好,比手动设置名称空间映射更不容易出错,并且如果您添加新的,则以后不需要任何关注命名空间到你的包。
我用这个composer.json
制作了一个laravel包:
{
"name": "calcanotica/file-storage",
"type": "library",
"description": "A file storage module for laravel.",
"homepage": "<<gitlab url>>",
"authors": [
{
<<authors>>
}
],
"autoload": {
"psr-4": { "Calcanotica": "src" }
},
"require": {
"php": "^5.5.9 || ^7.0",
"illuminate/contracts": "5.1.* || 5.2.* || 5.3.* || 5.4.*",
"illuminate/support": "5.1.* || 5.2.* || 5.3.* || 5.4.*",
"league/flysystem-aws-s3-v3": "~1.0",
"nesbot/carbon": "^1.0"
}
}
包的结构是:
-src
-Storage
-S3FileStorage.php
在 S3FileStorage.php
文件中我有以下 class:
namespace Calcanotica\Storage;
class S3FileStorage { ... }
但是,当我尝试在另一个应用程序中将 class 用作 \Calcanotica\Storage\S3FileStorage
时,出现 Class \Calcanotica\Storage\S3FileStorage not found
错误。
我已经执行了composer dump-autoload
.
有什么问题?
在您的 composer.json
文件中添加以下行:
"autoload": {
"psr-4": {
"Calcanotica\": "src/"
},
},
您需要在命名空间后添加 \
并在 src
后添加 /
。如需更多信息,请在此处查看:https://getcomposer.org/doc/04-schema.md#psr-4
您的 autoload
部分不正确。命名空间必须以 \
(docs) 结尾,因此它应该是:
"autoload": {
"psr-4": { "Calcanotica\": "src" }
},
但是我会更换整个
"autoload": {
"psr-4": { "Calcanotica": "src" }
},
和
"autoload": {
"classmap": [ "src/" ]
},
并让 composer 弄清楚什么是哪里 (docs),这在一般情况下更好,比手动设置名称空间映射更不容易出错,并且如果您添加新的,则以后不需要任何关注命名空间到你的包。