Есть ли способ установить symfony3 в комплекте с composer.json?
Весь мой код разбит на пакеты, которые мне требуются с помощью composer.json. Теперь я хочу установить весь проект с composer install
, но когда я пробую, папки symfony не появляются, и я получаю следующее сообщение об ошибке:
[RuntimeException]
Could not scan for classes inside "app/AppKernel.php" which does not appear to be a file nor a folder
Есть ли способ запросить установочные файлы Symfony?
Это мое composer.json
:
{
"name": "mygloriousname",
"license": "proprietary",
"type": "project",
"autoload": {
"psr-4": {
"": "src/"
},
"classmap": [
"app/AppKernel.php",
"app/AppCache.php"
]
},
"autoload-dev": {
"psr-4": {
"Tests\\": "tests/"
}
},
"require": {
"php": ">=5.5.9",
"symfony/symfony": "3.1.*",
"doctrine/orm": "^2.5",
"doctrine/doctrine-bundle": "^1.6",
"doctrine/doctrine-cache-bundle": "^1.2",
"symfony/swiftmailer-bundle": "^2.3",
"symfony/monolog-bundle": "^2.8",
"symfony/polyfill-apcu": "^1.0",
"sensio/distribution-bundle": "^5.0",
"sensio/framework-extra-bundle": "^3.0.2",
"incenteev/composer-parameter-handler": "^2.0"
},
"require-dev": {
"sensio/generator-bundle": "^3.0",
"symfony/phpunit-bridge": "^3.0"
},
"scripts": {
"post-install-cmd": [
"Incenteev\\ParameterHandler\\ScriptHandler::buildParameters",
"Sensio\\Bundle\\DistributionBundle\\Composer\\ScriptHandler::buildBootstrap",
"Sensio\\Bundle\\DistributionBundle\\Composer\\ScriptHandler::clearCache",
"Sensio\\Bundle\\DistributionBundle\\Composer\\ScriptHandler::installAssets",
"Sensio\\Bundle\\DistributionBundle\\Composer\\ScriptHandler::installRequirementsFile",
"Sensio\\Bundle\\DistributionBundle\\Composer\\ScriptHandler::prepareDeploymentTarget"
],
"post-update-cmd": [
"Incenteev\\ParameterHandler\\ScriptHandler::buildParameters",
"Sensio\\Bundle\\DistributionBundle\\Composer\\ScriptHandler::buildBootstrap",
"Sensio\\Bundle\\DistributionBundle\\Composer\\ScriptHandler::clearCache",
"Sensio\\Bundle\\DistributionBundle\\Composer\\ScriptHandler::installAssets",
"Sensio\\Bundle\\DistributionBundle\\Composer\\ScriptHandler::installRequirementsFile",
"Sensio\\Bundle\\DistributionBundle\\Composer\\ScriptHandler::prepareDeploymentTarget"
]
},
"extra": {
"symfony-app-dir": "app",
"symfony-bin-dir": "bin",
"symfony-var-dir": "var",
"symfony-web-dir": "web",
"symfony-tests-dir": "tests",
"symfony-assets-install": "relative",
"incenteev-parameters": {
"file": "app/config/parameters.yml"
}
}
}
1 ответ
Я думаю, что вы ищете, это создать проект.
Вот как вы можете установить Symfony через composer
composer create-project symfony/framework-standard-edition my_project_name
Эта команда выполняет следующие шаги:
- берет проект для https://packagist.org/packages/symfony/framework-standard-edition от Packagist
- загружает репозиторий: https://github.com/symfony/symfony-standard
- работает
composer install
в этом недавно загруженном проекте
редактировать: очевидно, для вашего случая использования вы должны заменить symfony/framework-standard-edition
с идентификатором вашего проекта и либо поместите его в packagist, в свой собственный репозиторий composer (например, с помощью Toran Proxy), либо зарегистрируйте репозиторий в своей глобальной конфигурации composer.
Вероятно, вы можете найти еще несколько примеров, как правило, как часть скелетного приложения.
Хотя это выполнимо, это не самый предпочтительный способ развертывания приложения по уважительной причине. Вы не можете просто обновить проект, подобный этому, только заменить существующий, что приведет к простоям или потребует некоторой манипуляции с символьными ссылками и даже в этом случае имеет некоторые недостатки. Кроме того, вам все равно придется выполнять все начальные шаги настройки, например указывать информацию о соединении с базой данных каждый раз. Вы можете обойти это (или вручную ввести все эти параметры), но иметь реальный инструмент развертывания, например, с использованием ansible, будет гораздо лучшим выбором для такого сценария, как этот.