CodeIgniter 3.1 Blog example

I was asked to do a coding test to create a basic blog. I decided to to use CodeIgniter 3.1 (yes – it’s not dead as was widely reported a few years ago) because I’ve been working with it recently. CodeIgniter may not be as fashionable as Laravel but it is considerable smaller and will run fast on a small/cheap server, it is also quick and easy to learn how to use it.

My source code is available on BitBucket if anyone is interested to take a look: https://bitbucket.org/richardwo/coding-test-blog-ci. There are 2 controllers for users and posts, 3 models for categories, posts and users, 5 admin view files and 3 front-end view files. Overall it took me about 4.5 hours.

Lessons learnt:

Some other PHP Frameworks like CakePHP or Laravel can include registration and authentication by running a few commands. This would have saved me a lot of time because I had to write my own login system and it took a while.

I also ran into some issues with redirects because I was running using the PHP built-in webserver trying to make the application self contained – after some investigation it turns out I needed $config['base_url'] = 'http://localhost:8000/'; in application/config/config.php for the redirects to work properly.

More time was wasted writing the usual CRUD methods and creating Bootstrap forms (even if this is only a cut/paste job). CakePHP scaffolding / Code Generation with Bake would have saved more time (although out of the box it doesn’t use Bootstrap).

Blog home screen

On a more positive side, I did like the validators where using 'is_unique[posts.slug]' will automatically check that table/field for you and return an error if it’s already been used.

Next time I’ve got to do this I’ll use Laravel as it seems more popular than CakePHP and I’ll benefit from the nice extras this has to offer over CodeIgniter. However I could just reuse my authentication code and save time.

4 Replies to “CodeIgniter 3.1 Blog example”

  1. I prefer CI as it does NOT requires composer. I will not use Laravel and may other because you cannot use them without composer. Composer add a “man in the middle” vulnerability and I just dont want to make my live any more diffcult as it already is .

    Just search “man in the middle vulnerability in composer” in google and you get over a million results.

    I might be a bit old school but I still want to decice what i install and not get files added to my project that I never need and that can contain vulnerability issues.

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.