我知道一个文件夹结构很好,因为它在大多数情况下都可以工作。
看看这两个标题:
namespace Library\GitHubClient\Client\Services;
use Library\GitHubClient\Client\GitHubClient;
use Library\GitHubClient\Client\GitHubService;
use Library\GitHubClient\Client\Objects\GitHubTeam;
use Library\GitHubClient\Client\Objects\GitHubFullTeam;
use Library\GitHubClient\Client\Objects\GitHubUser;
use Library\GitHubClient\Client\Objects\GitHubRepo;
class GitHubOrgsTeams extends GitHubService {
和
namespace Library\GitHubClient\Client\Services;
use Library\GitHubClient\Client\GitHubClient;
use Library\GitHubClient\Client\GitHubService;
class GithubOrgsRepos extends GitHubService {
第一个文件,作曲家自动加载而没有问题,但是第二个文件找不到。令人头疼的是:他们俩都生活在同一个文件夹中。
实际上,正如您从此父构造函数中看到的,在同一文件夹中存在3个类,只有前2个自动加载。
public function __construct(GitHubClient $client) {
parent::__construct($client);
$this->members = new GitHubOrgsMembers($client);
$this->teams = new GitHubOrgsTeams($client);
$this->repos = new GithubOrgsRepos($client);
}
作曲家会遇到某种限制问题吗?
我一直在三个地方塞满这个地方:
composer dump-autoload
来重新构建自动加载器。最后要检查的是,您的调用代码(在构造函数中)肯定在顶部具有use Library\GitHubClient\Client\Services\GithubOrgsRepos;
语句。
如您的评论所建议,这是您可以接受的答案。
这两行有助于注意可能是拼写错误:
$this->teams = new GitHubOrgsTeams($client);
$this->repos = new GithubOrgsRepos($client);
第一个具有用于集线器的大写字母H,而不是第二个。
很可能您输错了类名或文件名。