我有大约6年的编码中断。
我目前是为了自己的理解,提醒自己创建Composer包的过程。
我已经创建了一个简单的软件包,它有1个依赖项。它可以独立工作。把它拉进去并运行测试。
我创建了一个新的应用程序进行测试。我给了应用程序我的新包的位置作为依赖项。
它工作-它拉它和半运行。
我说semi,因为它没有拉入它所拥有的包1依赖项。
我敢肯定这是一个脸植物的场合,但我不记得我做错了什么。
会很感激你能给我指明方向。
以下是packages composer.json
文件:
{
"name": "sidekick/config",
"minimum-stability": "stable",
"require": {
"vlucas/phpdotenv" : ">=5.4"
},
"autoload": {
"psr-4": {
"SideKick\\Config\\": "src"
}
}
}
这是MyApp的composer.json
文件。
{
"name": "myapp/package-tester",
"autoload": {
"psr-4": {
"MyApp\\PackageTester\\": "src/"
}
},
"require": {
"sidekick/config": "dev-master"
},
"minimum-stability": "stable",
"repositories": [
{
"type":"package",
"package": {
"name": "sidekick/config",
"version":"dev-master",
"source": {
"url": "prob-best-to-keep-private-for-now",
"type": "git",
"reference":"master"
},
"autoload": {
"classmap": ["/"]
}
}
}
]
}
最后,这里是composer生成的类Map和供应商目录的抓取:
return array(
'Composer\\InstalledVersions' => $vendorDir . '/composer/InstalledVersions.php',
'SideKick\\Config\\Config' => $vendorDir . '/sidekick/config/src/Config.php',
);
1条答案
按热度按时间2eafrhcq1#
Composer有两个命令,您可以正常使用它们来进行故障排除,而不需要从class-map/autoloader 1中推导。
composer show
(仅此而已)。我喜欢它的地方是,如果你从自己的仓库中拉入,它会显示git提交哈希。使用git,你可以显示该版本的composer.json文件:**
git show
**即git -C <repo-path> show <rev>:composer.json
和一些jq(1)
。示例来自本地git仓库中的一些项目链接:在这里,依赖项目是从一个较旧的版本安装的,该版本除了平台包之外还没有任何其他需求。
大多数情况下,这会很快找到您所描述的问题。
**
composer why
和why-not
*在处理需求解析时也可以提供帮助,尽管在这种情况下,对于一个包编写者来说,问 * 为什么不? 还没有看到任何需求没有多大意义。我只是在你可能出现的下一个问题时提到它们,比如版本冲突或者你只是想知道。vendor/composer
目录很难,因为它有很多文件,特别是从自动加载器。