首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >未找到的laravel包装类别

未找到的laravel包装类别
EN

Stack Overflow用户
提问于 2017-04-20 06:45:46
回答 2查看 1.3K关注 0票数 0

我用这个composer.json做了一个拉拉包装

代码语言:javascript
复制
{
    "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"
    }
}

一揽子计划的结构如下:

代码语言:javascript
复制
-src
   -Storage
      -S3FileStorage.php

S3FileStorage.php文件中,我有以下类:

代码语言:javascript
复制
namespace Calcanotica\Storage;

class S3FileStorage { ... }

但是,当我试图将类作为\Calcanotica\Storage\S3FileStorage在另一个应用程序中使用时,我会得到一个Class \Calcanotica\Storage\S3FileStorage not found错误。

我已经执行了composer dump-autoload

有什么问题吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2017-04-20 06:51:14

您的autoload部分不正确。命名空间必须以\\ (文档)结尾,因此应该是:

代码语言:javascript
复制
"autoload": {
    "psr-4": { "Calcanotica\\": "src" }
},

不管怎么说,我都会把

代码语言:javascript
复制
"autoload": {
    "psr-4": { "Calcanotica": "src" }
},

使用

代码语言:javascript
复制
"autoload": {
    "classmap": [ "src/" ]
},

让composer找出何去何从(文档),它一般使用起来更好,比手工设置名称空间映射更容易出错,如果向包中添加新的命名空间,将不需要任何关注。

票数 2
EN

Stack Overflow用户

发布于 2017-04-20 06:51:11

composer.json文件中添加以下行:

代码语言:javascript
复制
"autoload": {
    "psr-4": {
        "Calcanotica\\": "src/"
    },

}, 

您需要在命名空间后面添加\\,在src之后添加/。有关更多信息,请在这里查看:https://getcomposer.org/doc/04-schema.md#psr-4

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/43512129

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档