Install Magento Base with Composer
Currently it can only be installed using
$ composer create-project "kylecannon/magento" -s dev
The package of course could be replaced with any other trustworthy Magento package of your choice.
Of course that's not satisfactory, since it can't simply be installed by adding it as a requirement in the composer.json.
The magento-composer-installer
project currently doesn't support installing Mage_Core_Latest
due to missing dependencies. If nobody else fixes that in the http://packages.firegento.com build script, I want to do it at the next hackathon at the latest.
If you use the alternative composer installers by AOE, you can add a composer package of type magento-source
as dependency and specify where the code should be placed:
"extra":{
"installer-paths": {
"www/" : [ "type:magento-source" ],
".modman/{$vendor}_{$name}/" : [ "type:magento-module" ]
},
For the Magento core you will need a repository with a composer.json
as follows:
{
"name": "magento/ce",
"description": "Magento Repository",
"type": "magento-source",
"require": {}
}
We use separate branches for each 1.x.x
version and apply patches on each branch. To be compatible with composer's version constraints, tags are added like this: 1.9.1.0-patch6285
This strategy works well if you consequently use modman
to link any custom files into the Magento root directory and don't add files directly. Then you can decide if you want to add the whole www
directory with the symlinks to Git or exclude it.
In the example above, the AOE installers are configured to put Magento modules directly into the .modman
directory, so that you can create the symlinks with a single modman deploy-all
. You can make use of composer scripts to trigger it automatically after composer install
and composer update
:
"scripts":{
"post-install-cmd": [
"modman deploy-all --force"
],
"post-update-cmd": [
"modman deploy-all --force"
]
}
I'm working now on creating ready-to-go development package for magento. It will include vagrant box with puppet configuration and magento as dependency in composer.
You can use my latest Magento as Composer Dependency