Martin Hujer has collected 17 tips for using composer efficiently, and then added a few more after receiving the feedback on the blog post. I was familiar with most of these, but there are still a few that are new to me.
Tip #7: Run Travis CI builds with different versions of dependencies
I knew about the Travis CI matrix configuration, but used it only for other things. I’ll be looking into extending it for the composer tests shortly.
Tip #8: Sort packages in require and require-dev by name
This is a great tip! I read the composer documentation several times, but somehow I missed this option. It is especially useful for the the way we manage projects at work (waterfall merges from templates and basic projects into more complex ones).
Tip #9: Do not attempt to merge composer.lock when rebasing or merging
Here, I’m not quite sure about the whole bit on git attributes. Having git try to merge and generate a conflict creates a very visible problem. Avoiding the merge might hide things a bit until they popup much later in the CI. I guess I’ll have to play around with this to make up my mind.
Tip #13: Validate the composer.json during the CI build
This is a great tip! I had plenty of issues with composer validations in the past. Currently, we have a couple of unit tests that make sure that composer files are valid and up-to-date. Using a native mechanism for that is a much better option.
Tip #15: Specify the production PHP version in composer.json
This sounds like an amazing feature which I once again missed. Especially now that we are still migrating some projects from PHP 5.6 to PHP 7.1, and have to sort out dependency conflicts between the two versions.
Tip #20: Use authoritative class map in production
We are already almost doing it, but it’s a good opportunity to verify that we utilize the functionality correctly.