Restoring a missing composer.json
I was working on a client project where I was given access to a Cake PHP installation with a Composer-style vendor
directory, but without a composer.json file to reinstall or upgrade the installed packages.
This is a quick tutorial on what steps I took to restore the composer.json file.
Create a bare composer.json file with the following command:
composer init
I was running composer on a docker container so I connected to the service like so:
docker exec -it <mycontainer> bash
(If you're not using docker, or running composer outside your container I believe you'll be able to do somthing like: php composer.phar show --installed
)
From there I could use the composer cli to get a list of installed packages:
composer show --installed
The result like this:
...
aura/intl 3.0.0 The Aura Intl package provides internationalization tools, specifically message tra...
cakephp/bake 1.3.3 Bake plugin for CakePHP 3.0
cakephp/cakephp 3.5.10 The CakePHP framework
cakephp/chronos 1.1.3 A simple API extension for DateTime.
...
Take the entries from the previous command and start adding them to your composer.json
file:
{
"name": "root/app",
"require": {
...
"cakephp/bake": "1.3.3",
/* Add them here */
...
}
}