Welcome Guest, Not a member yet? Register   Sign In
Why CI Needs a Package Manager Like Gems
#1

[eluser]kenny.katzgrau[/eluser]
I know how popular they are, but things like the Captcha, Cart, and fabled 'Auth' libraries don't belong in the base framework.

We need a package manager so these items can be installed as packages. Let's take a rails approach where installing functionality is as simple as:

gem install x

And the framework itself stays light.

Phil, WD, Dan and a host of other devs have great contributions that *could* be packages for CodeIgniter. A package manager for CI would save us from having to figure out which of the (mostly) ridiculous requests at UserVoice get into the framework, and which ones don't.

I've started the beginnings of something like this with another Reactor Dev, John. I'm also aware that there have been both half-hearted and whole-hearted attempts to do something similar, if not exactly the same.

Is anybody interested in something like this, or am I just dreaming? If you'd like to see something like this come to fruition, let me know.
#2

[eluser]Unknown[/eluser]
As was discussed on IRC, I think this is a good idea and as a CI user, I'd find it incredibly useful. Rather than having to dig around for a project's necessities across multiple websites, it'd awesome if there was a single place that supports installing, updating and, in general, managing these things easily.

I'm not sure how you would do it. CLI seems the most obvious choice but I know there are people out there who use a remote server for development which is only accessible by FTP *gasp* so either a web interface or having a CLI tool WITH FTP support?
#3

[eluser]Rok Biderman[/eluser]
Well, I must admit I'm partial to a tool like this, I just feel like i'm fiddling with files too much. CLI with web support sounds fine and now that you mention it, there are some things that could stay out of core.
#4

[eluser]cahva[/eluser]
PHP equivalent for gems is Pear, which works like a peach Wink So if looking for a packagemanager, I would definately check how Pear has done it. It has nice features like for example if something is beta, it will not install it straight away but informs user how to install the beta.
#5

[eluser]mdpauley[/eluser]
Kenny,

I've been thinking about this and was starting to map out a plan for it. I'm new with CI but am willing to help in anyway needed.
#6

[eluser]Basketcasesoftware[/eluser]
I thought there was the start of a package manager already built into the last Reactor build?
And for the record I'm one of those people whose host limits me FTP and web (unless I want to pay extra - I'm too broke at the moment for that). I can build and test things on my home development system, but please avoid any CLI requirements for CI.
#7

[eluser]cahva[/eluser]
Talking about Pear still.. It has a graphical frontend and you can install packages with it and console is not needed. You just grab http://pear.php.net/go-pear, name it go-pear.php and copy it to a publicly available place where it can run through browser and it will create web frontend where you can search packages, install them etc. through browser. Very neat!
#8

[eluser]Basketcasesoftware[/eluser]
My current web host supports Pear already. Smile And Perl, and the latest versions of PHP, mySQL, Apache...
I don't mess with anything but PHP and mySQL %-P
#9

[eluser]Yorick Peterse[/eluser]
A package manager specifically tailored for Codeigniter? You guys do realize there's something called Git or Mercurial that let you do pretty much the same and don't require you to setup large XML files for your packages and other annoying things. If you insist on using a package manager for PHP use PEAR or Pyrus, don't make some half-assed package manager that does essentially the same like Git just because you happen to like Rubygems.
#10

[eluser]kenny.katzgrau[/eluser]
@Coccodrillo, keeping things out of the core: Glad someone else thinks so Smile

@james, I think keeping things in one place is another big plus. Right now the best CI libs are scattered in different github repos, bitbucket repos, wikis, and blogs around the CI universe.

Addressing cahva + basketcase + PEAR -- PEAR's different in a big way: When you install something via PEAR, it's installed to the PHP installation as a whole. What if you have more than 1 application running on the same box that use different versions of the same package? Sounds like a mess :/

A package manager specialized for CodeIgniter means being able to download a package and use it for a single application. So if you write an application locally, and install packages, the code will still be in the codebase when you push it to a shared server. If anyone hates PEAR dependencies, it's me Smile

@YoRick Peterse - You nailed it. A package manager for CodeIgniter should just be backed by git or hg. Basically, there would be one central repository where you could point your project to your git location, and any CLI package manager script would acquire the package from the right place.

In the end, installing an auth or payment library should be as easy as

@mdpauley (and anyone else interested in collaborating), drop me a line at [email protected] if you'd like to jump in -- I could definitely use some help.

Something like a package manager helps turn CI over to the community. Write an awesome auth library, and it'll become the de-facto library that everybody uses.

It this sounding any better, or no?




Theme © iAndrew 2016 - Forum software by © MyBB