Composer 没有找到 class...但是找到了兄弟文件
Composer doesn't find class...but find the sibling file
我有一个我知道很好的文件夹结构,因为它可以工作...在大多数情况下。
看看这两个 headers:
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 {
第一个文件,作曲家自动加载没有问题,但第二个文件找不到。 head-scratcher 是:它们都在同一个文件夹中。
事实上,正如您从这个 parent 构造函数中看到的那样,有 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
用于重建自动加载器。
- 不太常见:您使用的是文件加载器而不是 PSR,需要手动将文件添加到 composer.json。
最后要检查的是您的调用代码(在构造函数中)肯定在顶部有 use Library\GitHubClient\Client\Services\GithubOrgsRepos;
语句。
As suggested in your comment, here's an answer you may accept.
这两行有助于注意可能是拼写错误的内容:
$this->teams = new GitHubOrgsTeams($client);
$this->repos = new GithubOrgsRepos($client);
第一个的 hub 是大写的 H,第二个不是。
您可能输入了错误的 class 名称或文件名。
我有一个我知道很好的文件夹结构,因为它可以工作...在大多数情况下。
看看这两个 headers:
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 {
第一个文件,作曲家自动加载没有问题,但第二个文件找不到。 head-scratcher 是:它们都在同一个文件夹中。
事实上,正如您从这个 parent 构造函数中看到的那样,有 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
用于重建自动加载器。 - 不太常见:您使用的是文件加载器而不是 PSR,需要手动将文件添加到 composer.json。
最后要检查的是您的调用代码(在构造函数中)肯定在顶部有 use Library\GitHubClient\Client\Services\GithubOrgsRepos;
语句。
As suggested in your comment, here's an answer you may accept.
这两行有助于注意可能是拼写错误的内容:
$this->teams = new GitHubOrgsTeams($client);
$this->repos = new GithubOrgsRepos($client);
第一个的 hub 是大写的 H,第二个不是。
您可能输入了错误的 class 名称或文件名。