So tonight I decided to try and use Composer, a “dependency management” tool for PHP. I’ve had my eye on doing this for a while, and finally got to it tonight.
I use a custom rolled version of PHP 5.5, because I want to actually use the new functionality that PHP has
finally added. So, on to the install I went.
curl -sS https://getcomposer.org/installer | php
Already, the first critique here, I’m downloading a file and piping it right on into PHP. I’m not going to go into that, because this guy already has. So, on to the next step, after I took a quick poke through the installer code I downloaded.
Woops, need to recompile my PHP binary without
--disable-phar. Now, done that, I ran the installer again, and had a clean install this time.
Next step, create a composer.json file after running through the Composer install steps. I wanted to use Zend Framework, so I copied the snippets of composer JSON from this site and assembled them into a coherent composer file (not the easiest thing, since the Composer manual didn’t seem to have a nice example file linked somewhere that I could find).
My basic composer.json file:
Next, ran a
composer validate composer.json on my file, and got this output:
composer.json is valid for simple usage with composer but has strict errors that make it unable to be published as a package:
See http://getcomposer.org/doc/04-schema.md for details on the schema
name : is missing and it is required
description : is missing and it is required
No license specified, it is recommended to do so. For closed-source software you may use "proprietary" as license.
After a quick look over the messages, I decided to soldier on anyway, crossed my fingers, and ran
The installer seemed to laugh at me after it downloaded the files, and told me that I needed to
--enable-zip before I could install the packages. THANK YOU COMPOSER, for mentioning that on install.
Another recompile, and finally I managed to get Composer to behave.
- Composer needs both PHAR and Zip enabled to work, but doesn’t like to mention those things
- Custom PHP is fun to do, but can be a pain when you need to turn things on that you didn’t plan on using