【发布时间】:2018-12-30 11:15:58
【问题描述】:
我有一个本地依赖项,它托管在私有 Gitlab 存储库上。但是,我很难通过 Composer 将其拉入我的项目中。
我的composer.json:
"require": {
"crmpicco/GolfBundle": "dev-master"
},
"repositories": [
{
"type": "package",
"package": {
"name": "crmpicco/GolfBundle",
"version": "dev-master",
"source": {
"url": "https://git.crmpicco.com/rfc1872/golfbundle.git",
"type": "git",
"reference": "master"
},
"autoload": {
"psr-4": {
"crmpicco\\GolfBundle\\": ""
}
}
}
}
],
当我查看供应商目录时,当我没想到时,这些目录会加倍,例如
/vendor/crmpicco/GolfBundle/crmpicco/GolfBundle
当我运行 composer update crmpicco\GolfBundle 时,当 Symfony 尝试进行缓存时出现以下错误:清除:
Script Sensio\Bundle\DistributionBundle\Composer\ScriptHandler::clearCache 处理 post-update-cmd 事件因异常而终止
[运行时异常]
执行“'cache:clear --no-warmup'”命令时出错:
PHP Fatal error: Uncaught Symfony\Component\Debug\Exception\ClassNotFoundException: Attempted
to load class "crmpiccoGolfBundle from namespace "crmpicco\GolfBundle".
Did you forget a "use" statement for "crmpicco\GolfBundle\crmpiccoGolfBundle"?
in /var/www/crmpicco/symfony/app/AppKernel.php:31
我在composer.json 设置中遗漏了什么/做错了什么?
捆绑目录结构:
/crmpicco
/GolfBundle
/Component
/DependencyInjection
crmpiccoGolfBundle.php
捆绑composer.json:
{
"name": "crmpicco/GolfBundle",
"type": "library",
"description": "A Symfony 2 bundle which provides an easy way to handle billing and subscriptions.",
"license": "MIT",
"require": {
"php": ">=7.0",
"symfony/config": "~2.8.34",
"symfony/dependency-injection": "~2.8.34",
"symfony/http-kernel": "~2.8.34",
},
"autoload": {
"psr-4": {
"crmpicco\\GolfBundle\\": ""
}
},
"extra": {
"symfony-app-dir": "app",
"symfony-web-dir": "web",
"symfony-assets-install": "relative"
}
}
【问题讨论】:
-
你能把你的 GolfBundle 的目录结构粘贴到这里吗,它是
composer.json? -
@NikitaLeshchev 嗨,当然。我已经更新了这个问题。我的包目录中没有
composer.json。 -
@NikitaLeshchev 为混淆道歉,我已将属于我的捆绑包的
composer.json添加到上述问题中。
标签: php symfony composer-php dependency-management