Home » Php » php – bin/console missing after running composer install

php – bin/console missing after running composer install

Posted by: admin July 12, 2020 Leave a comment

Questions:

Hoping someone could help me out with this one please.

My project (on github https://github.com/irvingswiftj/iceMarkt ) when running composer install, seems to run without a hitch, until running the post update commands. In which I end up with the following error (when adding param -vvv):

    Updating the "app/config/parameters.yml" file
    Could not open input file: bin/console
    Script Sensio\Bundle\DistributionBundle\Composer\ScriptHandler::clearCache handling the post-update-cmd event terminated with an exception

    [RuntimeException]                                                         
    An error occurred when executing the "'cache:clear --no-warmup'" command.  

If I now browse my project directory, I can see that bin/console is never created!

How to&Answers:

Symfony 2 => app/console

Symfony 3 => bin/console

Answer:

I had deleted the bin directory assuming that the executable console file would be created in my next composer install. I was wrong! Don’t gitignore your bin/composer file and also make sure that if you are using the symfony 3 folder structure, you don’t have .gitignore for the symfony 2 folder structure.

Answer:

I had the same problem because I was accostumed to add the bin directory to my .gitignore file, because in Symfony2 all bin files (including the ones from other vendors) where placed in that folder, but that is not the case in Symfony3, so we can add the bin directory to our code repositories.

You can solve problem installing a new application (using the symfony installer) and copying the bin directory from this new project to your own project.

Answer:

Using Symfony 4 / Symfony Flex, you need to install the symfony/console package:

composer require symfony/console

Then use from your project dir:

./bin/console

As the file itself is starting with a shebang #!/usr/bin/env php you can execute it right away without php infront.