kinncj/packageManager — Issue #1: Project Requirements and Basic Architecture
Author: alganet
Created: 2012-03-09 19:57:27+00:00
State: open

Hi there!

I really loved the concept, although I'm not sure what do you guys want to do. PHP has a problem nowadays: it doesn't have a centralized repository.

Two main candidates for this are http://pyr.us and http://packagist.org/, but both of them has their own problems.

My suggestion is to crawl these two guys and store package info on a public GitHub repo, then pm search would clone this repo and search the database locally. Packages could be added manually to the repository by sending a pull request and everything is kept open.

pm install then would have its own logic to know if its installing a PEAR, Pyrus, Composer or independent package, then use the appropriate installer to do so. Forcing a package format could be done by arguments like --composer, like pm install symfony2 --composer.

Also, a --libonly could be a killer feature to download only the PHP library (no tests, no docs, no README stuff). Running pm install respect\rest --libonly would install it locally in the folder in which pm runs under the "Respect\Rest" folder.

Lots of guessing is needed to know where the library is, what is the vendor folder name and so on. Most projects use "src", "library" or the project name as the code folder. We could rely on common standards.

I'd love to see the manager and the repo on a separate GitHub organization instead of a particular user profile on GitHu

I'm VERY interested in moving this forward and eager to hear your thoughts about my suggestions. I'm also willing to contribute with code, tests and ideas.

Thanks!