How to make a package that works with Composer and Packagist, following PSR-0.
Composer
The Composer is an awesome tool for PHP dependency management. It's useful both for building software as well as for maintaing your own packages (open-source or not).
Composer for your Applicaton
Crazy simple here, bring in composer, & define a bunch of stuff you require. Simply start composer and follow the prompts. Enter "proprietary" for License and "stable" for
curl -sS https://getcomposer.org/installer | php ./composer.phar init Package name (/ ) [atom/composer]: edoceo/composer-demo Description []: A demo of Composer Author [edoceo ]: Minimum Stability []: stable License []: proprietary
{ "name": "edoceo/composer-demo", "description": "A demo of Composer", "license": "proprietary", "authors": [ { "name": "edoceo", "email": "code@edoceo.com" } ], "minimum-stability": "stable", "require": { } }
Composer for your Packages
{ "name": "edoceo/radix", "type": "library", "description": "Simple MVC and Toolkit for Rapid Application Prototyping", "keywords": ["mvc","toolkit"], "homepage": "http://radix.edoceo.com/", "license": "MIT", "authors": [ { "name": "David Busby", "email": "code@edoceo.com", "homepage": "http://edoceo.com/", "role": "Developer" } ], "require": { "php": ">=5.4.0", "ext-apc": "*" }, "autoload": { "psr-0": { "radix\\": "", "edoceo\\radix\\": "" } } }
And the composer tool can validate this file for you.
php composer.phar validate
Packagist
Create an account at packagist.org and then point them to your project.
It's best to create a proper version for your project.
git tag .... git push tag
How visit your Packagist profile and Submit a Package.
About PSR-0
PSR-0 and Packagist and Composer rely on this system for vendor supplied auto-loading. It's best to read-up the official documentation on this. A quick overview is that you have to use proper namespaces with your class names. And the autoloader builds directories from said namespace and class names.
See Also
- Composer
- Packagist
- PSR-0 Master