tutorial start run instalar create con composer php composer-php symfony

php - start - Nueva instalación de Symfony 3: No se pudo abrir el archivo de entrada: app/console en la instalación del editor



symfony create project (3)

Instalé una nueva instancia de symfony3 a través del instalador oficial de Symfony ( http://symfony.com/download ). Después de hacer las primeras cosas, comprometí el proyecto con Git y lo cloné el otro día en otra computadora. Después de la clonación, ejecuté "composer install" para instalar todas las dependencias de Symfony. Ahora viene el problema: el script ScriptHandler::clearCache detiene con un error: Could not open input file: app/console . Eso es correcto - symfony3 tiene una nueva estructura de directorios - por lo que la console ahora reside en /bin - no en /app . ¿Cómo puedo decirle al compositor / proyecto que use la nueva estructura en lugar de la antigua?

Leí aquí ( ¿Cuál es la nueva estructura de directorios de Symfony 3? ) Sobre el comando de consola SENSIOLABS_ENABLE_NEW_DIRECTORY_STRUCTURE=true , pero eso no funciona en mi caso.

¿Algun consejo?


Me he estado topando con el mismo problema. El script usa la existencia del directorio var para decidir si usar la nueva estructura de directorios o la antigua. Si existe var, se utiliza la nueva estructura de directorios. De lo contrario, utiliza la estructura antigua.

El archivo .gitignore predeterminado evita que tanto el directorio var como el directorio bin se agreguen a git.

Lo que hice para resolver el problema para mí fue editar .gitignore en el directorio del proyecto para que se vea así:

/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

No pretendo ser un experto en .gitignore, así que no estoy seguro de que sea la forma más elegante de hacerlo, pero es lo que funcionó para mí.


Simplemente crea el directorio var . Después de la composer install y la composer update funcionarán bien.

Explicación:

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'']); }

Así que necesitas ambos para tener symfony-var-dir en composer.json ''s extra y tener este directorio existente.


ScriptHandler toma el directorio de la clave de configuración adicional en los nombres de los archivos composer.json como symfony-bin-dir . Así que verifique que el compositor contenga la clave de configuración correcta, como ejemplo:

compositor.json

.... "extra": { "symfony-app-dir": "app", "symfony-bin-dir": "bin", "symfony-var-dir": "var", ....

EDITAR:

El problema estaba relacionado con el caché del compositor. Se resolvió eliminándolo con el comando:

>php composer.phar clear-cache

Espero que esto ayude.