Nouvelle installation Symfony 3: Impossible d'ouvrir le fichier d'entrée: app / console dans composer install
j'ai installé une nouvelle instance symfony3 via l'installateur officiel symfony ( http://symfony.com/download ). Après avoir fait les premières choses, j'ai engagé le projet à Git et je l'ai cloné l'autre jour sur un autre ordinateur.
Après le clonage, j'ai lancé "composer install" pour installer toutes les dépendances symfony.
Vient maintenant le problème: le script ScriptHandler::clearCache
s'arrête avec une erreur: Could not open input file: app/console
.
C'est à droite-symfony3 a un nouveau répertoire-structure - ainsi le console
réside maintenant dans /bin
- pas dans /app
.
Comment puis-je dire au compositeur/au projet d'utiliser la nouvelle structure au lieu de l'ancienne?
j'ai lu ici ( qu'est-Ce que le nouveau Symfony 3 structure de répertoire? ) à propos de la console-commande SENSIOLABS_ENABLE_NEW_DIRECTORY_STRUCTURE=true
- mais cela ne fonctionne pas dans mon cas.
des conseils?
3 réponses
le ScriptHandler
prend le dir de la clé de configuration supplémentaire dans les noms de fichiers composer.json
comme symfony-bin-dir
. Vérifiez donc que le compositeur contient la clé de configuration correcte, par exemple:
compositeur.json
....
"extra": {
"symfony-app-dir": "app",
"symfony-bin-dir": "bin",
"symfony-var-dir": "var",
....
EDIT:
le problème était lié à la cache de composer. Il a été résolu le nettoyage avec la commande:
>php composer.phar clear-cache
Espérons que cette aide.
il suffit de créer var
répertoire. Après cela composer install
et composer update
fonctionneront bien.
explication:
vendor/sensio/distribution-bundle/Composer/ScriptHandler.php:462
protected static function useNewDirectoryStructure(array $options)
{
return isset($options['symfony-var-dir']) && is_dir($options['symfony-var-dir']);
}
donc vous avez besoin à la fois d'avoir symfony-var-dir
dans composer.json
's extra
et avoir ce répertoire existant.
j'ai rencontré le même problème. Le script utilise l'existance du répertoire var pour décider s'il faut utiliser la nouvelle structure du répertoire ou l'ancienne. Si var existe, la nouvelle structure de répertoire est utilisée. Sinon, il utilise l'ancienne structure.
par défaut .le fichier gitignore empêche l'ajout du répertoire var et du répertoire bin à git.
ce que j'ai fait pour résoudre le problème pour moi était d'éditer .gitignore dans le répertoire de projet pour qu'il ressemble à ceci:
/app/config/parameters.yml
/bin/*
/build/
/composer.phar
/vendor/
/web/bundles/
/var/*
!var/cache
/var/cache/*
!var/cache/.gitkeep
!var/logs
/var/logs/*
!var/logs/.gitkeep
!var/sessions
/var/sessions/*
!var/sessions/.gitkeep
!bin/console
!bin/symfony_requirements
/phpunit.xml
je ne prétends pas être un expert sur .gitignore, donc je ne suis pas sûr que ce soit la façon la plus élégante de le faire, mais c'est ce qui a fonctionné pour moi.