Hacker News new | ask | show | jobs
by jamierumbelow 5032 days ago
Rails is a great, progressive framework and I've learnt a lot about programming in general by taking the time to familiarise myself and work with it. Rails makes it very easy to write thoughtful, elegant code. But that's not to say that it's impossible or even difficult to do with CodeIgniter.

You can extend CodeIgniter's core classes very easily to provide a lot of the same magic you'll find in Rails. There are a lot of ORMs similar to ActiveRecord available, and a great MongoDB library written by Alex Bilbie (https://github.com/alexbilbie/codeigniter-mongodb-library). I've created a popular open source library that enables you to autoload views into layouts like in Rails (https://github.com/jamierumbelow/codeigniter-base-controller).

You can implement RESTful URLs simply and efficiently by customising the routes.php file yourself, or by using a route generation engine such as Pigeon (https://github.com/jamierumbelow/pigeon). If you'd prefer a more "full-stack" REST solution, you could use Phil Sturgeon's heinously popular REST_Controller (https://github.com/philsturgeon/codeigniter-restserver/).

All the above links are drag-and-drop solutions and take moments to download, configure and understand.

You will learn a lot about a whole different kind of writing applications when you learn Rails. But the same is true for Python/Django, the same is true for functional programming languages such as Clojure and the same is true for Objective-C and the iPhone SDK.

CodeIgniter is incredibly flexible and that's probably exactly why you use it. Taking a bit of time to interact with the community and see what gems are out there will let you write much better CI code, and a lot of the time you'll find you don't need or want Rails.

DISCLAIMER: I have written a book about writing better and more Rails-y code with CodeIgniter called The CodeIgniter Handbook (https://efendibooks.com/codeigniter-handbook/vol-1).