我有一个用普通PHP编写的外部存储库,我想在Symfony项目中使用它,“composer require”调用运行良好,所有文件都加载到供应商目录中。在运行时,我一直收到以下错误。
Attempted to load class "FM" from namespace "MyRepo1\Src\Vendors\FM".
Did you forget a "use" statement for another namespace?我认为它可能是PHP存储库的composer.json,如下所示。
{
"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位于同一目录中
<?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自动加载这些类。
发布于 2017-02-06 14:24:07
我们最终通过添加
"autoload" : {
"psr-4" : {
"Vendors\\" : "src/"
}
},设置为composer.json,并将类的名称空间更改为namespace Vendors;,以便与目录相同。
发布于 2017-02-02 15:54:35
根据名称空间的编写方式,您的文件应该位于
MyRepo1\Src\Vendors\FM\FM.php;https://stackoverflow.com/questions/41995365
复制相似问题