Pipeline vs. CakePHP

Ryan Johnson and Nicholas Zulauf informed me about their framework called Pipeline (thanks for the information). It is an opensource PHP 5 web framework similar to CakePHP and licensed under the MIT license.

The guys from livepipe asked me for feedback, so I thought I would do their blog tutorial (btw: there exists two blog tutorials for CakePHP beginners: Building a simple blog and Scaffolding a Blog).

I have to admit that I was not able to get the “Hello world” example working, some file (runtime.php) was not found. I do not had the time and the desire to figure out what the problem was. Perhaps it was because I tried to install it in a subdirectory? I do not know…

Ok, so I will write something about livepipe without knowing it, so correct me if I am writing nonsense ;-)

The killer criteria for me against Pipeline is that there is no support for MySQL (or PostgreSQL), the databases I usually use. Only the SQLite database is supported (which has the advantage that you do not have to configure your database settings).

What seems to be very cool is that you do not have to manage your database tables manually because it is done by the framework. The only thing you have to do is to define your model (or ActiveRecord as it is called by Pipeline), everything else (creating table, adding/removing columns) is done by the framework. That is a feature that would be nice to have in CakePHP.

The directory layout is something I do not like. I think it is not practical to have all files of your project in one folder despite the Pipeline naming conventions.

The action/view mapping seems to be cumbersome compared to the solution offered by CakePHP. The same example in Pipeline:

class BlogController extends Controller {
public function __construct($url = false,$parent = false){
$this->addView(‘/’,’index’);
parent::__construct($url,$parent);
}

public function index(){
}
}

and in CakePHP:

class BlogController extends AppController {
public function index(){
}
}

There is not a lot of documentation for Pipeline available yet. That would not be that bad if there is a Pipeline community, but there is nothing: no wiki, no IRC, no mailinglist, nothing (they write on the contact page that there will be a forum in a few weeks, whatever that means).

Conclusion: personally, I would not use the Pipeline framework yet due to a lack of community, and because I think that CakePHP fits my needs better. But Pipeline is in a very early stage, so everything is possible. Good luck, Pipeline developers!

3 Comments

  1. Posted January 3, 2006 at 7:30 pm | Permalink

    Thanks for your feedback. The Controller is fairly different from Rails/Cake ‘s controller. It’s more view centric, and doesn’t default to the /:controller/:action/:id. In fact it doesn’t default to anything. We used to have scaffolding features identical to rails, but I found it a little counter intuitive. We may bring it back if I can get the implementation to look a little clearer to the person developing the site.

    With the directory layout, are you a fan of the way the cake directory structure is layed out? I am definitely open to changing the structure to something a little more verbose.

  2. Posted January 3, 2006 at 7:41 pm | Permalink

    Just realized my comment about the controller might not have made sense. The main difference between this and other implementations, is that the controller is both a container for your application logic *and handles the routing*. That’s where the extra code comes in just to get the index example, there are no other files to setup.

  3. Posted January 4, 2006 at 11:48 am | Permalink

    With the directory layout, are you a fan of the way the cake directory structure is layed out?

    Well, the directory layout of CakePHP conforms to what I am used to. For me it has the advantage that I can close folders in my IDE I do not use.


%d bloggers like this: