首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >未由composer更新自动加载的命名空间

未由composer更新自动加载的命名空间
EN

Stack Overflow用户
提问于 2017-02-02 14:14:19
回答 2查看 727关注 0票数 0

我有一个用普通PHP编写的外部存储库,我想在Symfony项目中使用它,“composer require”调用运行良好,所有文件都加载到供应商目录中。在运行时,我一直收到以下错误。

代码语言:javascript
复制
Attempted to load class "FM" from namespace "MyRepo1\Src\Vendors\FM".
Did you forget a "use" statement for another namespace?

我认为它可能是PHP存储库的composer.json,如下所示。

代码语言:javascript
复制
{
    "name" : "myUserName/MyRepo1",
    "minimum-stability" : "dev",
    "repositories" : [{
            "type" : "git",
            "url" : "https://github.com/myUserName/MyRepo2"
        }
    ],
    "require" : {
        "myUserName/MyRepo2" : "*",
        "php" : "^7.0"
    },
    "version" : "1.0.2",
    "require-dev" : {
        "phpunit/phpunit" : "5.5.*",
        "squizlabs/php_codesniffer" : "2.*",
        "mayflower/php-codebrowser" : "~1.1"
    }
}

下面是FM类,它位于目录vendor/myUserName/MyRepo1/src/vendors中,tracking.interface和tracking.class位于同一目录中

代码语言:javascript
复制
<?php
namespace MyRepo1\Src\Vendors\FM;
// : Includes
include_once (dirname(realpath(__FILE__)) . DIRECTORY_SEPARATOR .    'tracking.interface');
include_once (dirname(realpath(__FILE__)) . DIRECTORY_SEPARATOR . 'tracking.class');
// : End
use MyRepo1\Src\Vendors\Vendors as Vendors;
use MyRepo1\Src\Vendors\TrackingInterface as TrackingInterface;

class FM extends Vendors\Vendors implements TrackingInterface\TrackingInterface
{

}

是否需要对composer.json文件进行任何更改,以便使用composer update自动加载这些类。

EN

回答 2

Stack Overflow用户

发布于 2017-02-06 14:24:07

我们最终通过添加

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

设置为composer.json,并将类的名称空间更改为namespace Vendors;,以便与目录相同。

票数 1
EN

Stack Overflow用户

发布于 2017-02-02 15:54:35

根据名称空间的编写方式,您的文件应该位于

代码语言:javascript
复制
MyRepo1\Src\Vendors\FM\FM.php;
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/41995365

复制
相关文章

相似问题

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