Part of the EllisLab Network

News

Press Release: CodeIgniter 1.7 Professional Development by Adam Griffiths

This Press Release is written by one of our community members: Adam Griffiths. If you’d like to contribute with a press release, please send an email to .(JavaScript must be enabled to view this email address).

In the beginning

About two years ago I was a regular old teenager, writing boring (and seriously not fun) procedural code. There was a rave going on about Ruby on Rails and I wanted to get in on the action. But being the lazy teenager, I didn’t want to learn a new language, I simply wanted to see if there was anything that could help me develop faster, better apps in PHP. I ended up looking at quite a few PHP frameworks (and even tried to roll my own) - but as soon as I found CodeIgniter and started reading the user guide, I was hooked. Little did I know that two years later I would have written and published a book all before my 18th birthday.

Taking a lot from the community

For the next few months I built a lot of stuff using CodeIgniter, all of which were just-for-fun to help me learn CodeIgniter faster. All in all, CI helped me become a better developer overall; I had never heard of MVC before reading the user guide, had no idea what a singleton class was and the syntax helped me write pretty code. I had been given a lot by using CodeIgniter, and the community helped me immensely in my initial stages of working out how to be a ‘real’ developer and not just a kid who writes code in his bedroom. I had watched screencasts, read blog posts and forum posts and even read tweets about how awesome CodeIgniter is and how to do different things with it. I felt like I had to give something back.

The Authentication Library

The Authentication Library was the child of a web app I was creating. I needed to find a simple user authentication solution that did everything for me so I could focus on writing the web app. I went through three or four community created solutions and found them all to either be too hard to use or not include a feature I needed. So I wrote my own library and made it very simply to use. I ended up rewriting the whole thing about 6 months later and doing the seemingly impossible, I made it even easier to use. Literally so easy all you needed to do to get a full user authentication system up and running is to extend the class ‘Application’ instead of ‘Controller’ in your controllers and you’re away. The community seemed to be using my library in all sorts of applications and at the time it was my way of saying thanks to both Ellis Lab and all of the CodeIgniter community members. Because of the huge uptake and interest in the library, I kept releasing updates, new features and included community fixes to make it a much better library overall.

Programmers Voice

After about a year or so of CodeIgniter development I starting writing tutorials and putting them online at programmersvoice.com. Soon enough the site started to get fairly popular, by far the highest traffic website I had created. Eventually I recorded screencasts and tutorial series on how to write CMS’ and even how to roll your own PHP framework. This was another way I could give back to the CodeIgniter community. Unfortunately, it got to the point where I had run out of ideas for blog posts and eventually the posts died down to sweet nothing. The domain now redirects to my own website after staying dormant for so long. One day it might make a reappearance.

Deciding to write a book and how the community helped

After deciding to write a book, I needed to know what to put in it! I decided I wanted to write a fairly advanced book since the user guide and all the other CodeIgniter books have the basics covered. So I turned to the forums for help. I wrote a post titled CodeIgniter Book Questions. This forum post helped me decide to go after a publisher, simply because the amount of people who gave comments on what should be covered in the book and how many people said they would buy it. I drew up a Table of Contents and threw it out there for more thoughts. This forum thread became the driving force behind finding a publisher and signing a contract.

I looked around the internet for publishers that I knew would at least think about taking me and the book on. I ended up emailed Packt Publishing giving reasons as to why I would be a good writer (having written many tutorials for my CodeIgniter tutorial website, I’m no stranger to technical writing) and used the forum thread as proof that there was interest out there in the community for an advanced book. Since Packt had published a CodeIgniter book in the past I felt there was a good chance they’d take me seriously. They did. After a number of emails back and forth between me and my future Editor, I had a contract sent to me in the post and I had already starting writing Chapter 1.

I stuck to the table of contents I wrote for the forum post as much as I could and even ended up writing three more chapters than I had originally planned.

Wanting to write a book and actually writing one are two very different things

I had actually wanted to write a book for about a year before I made the forum post that kicked it all off. I think I underestimated the huge task that writing a book is but given the circumstances, I did rather well balancing my college work and writing the book. The largest piece of writing I had ever done before this book was a tutorial for Programmers Voice at just shy of 3,000 words, that’s the length of the shortest Chapter of the book, and there are 10 chapters, that largest chapter is shy of 8,000 words!! Overall the whole book tips the scale at 50,000 words. That’s a lot of words, I know this isn’t the longest book in history but it’s quite an achievement! It was a huge undertaking but throughout the process I kept thinking of the guys who wanted the book, and those who sent me messages on twitter and via email asking me about it, and kept plugging along.

Once the first draft had been sent in to the publisher there was an immense sense of relief that I had finished writing. Until about a week later I had half of the chapters back from the publisher with corrections and comments to be made and read through. Once this had all been done and I had sent off the final drafts to the publisher, all there was left to do was to go through the code with my Technical Editor. No thanks to Facebook there for changing their API half way through development, all the code just stopped working! We dealt with it and the code still works today, two months after being published; maybe Facebook don’t hate me after all.

When I had my copies through the post I was immensely excited. So much so that when the box came when I was at college, I made my mum bring me the box so I could open it and show the book off to all my friends; some of which didn’t believe I was actually writing a book! The whole process was thoroughly enjoyable and hugely rewarding, I’m glad I did it.

Final thoughts

If you are thinking about writing a book I would advise you to know as much as you can about the whole process of book writing before you start. I hadn’t a clue how anything worked in the publishing industry, so once I had my documents through and had to give dates for handing each chapter in, I was baffled. I didn’t know how long it would take me to write 3,000 words or 30 pages; especially since I had college as well. I ended up guessing most of the dates and I will admit here, a few of the chapters were written in a few days before the Monday hand in date. By knowing what you’re getting into before you get into it, you give yourself more chance to get comfortable with the writing processes and you let your mind focus on writing, rather than if you’re formatting things correctly.

The most important piece of advice I can give to any budding authors out there though is to always write when you are awake and refreshed, read everything over before submitting it to the publisher and if you’re not happy with a chapter, you have the power to change it. On numerous occasions I wasn’t happy with the chapters I was writing so politely asked the publisher for an extension to my deadline. I was always focussed on writing a quality book, and I’m glad my publisher let me do just that.

Chase your dreams. Life’s too short to be standing still.

So go ahead and check out my book, CodeIgniter 1.7 Professional Development and check out my website.

Posted by Leslie Doherty on November 22, 2010

CodeIgniter Community Branch NDA

We’ve been receiving some questions regarding a statement made in a news post earlier this week:

Potential candidates will be asked to sign an NDA to discuss the details of the branch before accepting a seat.

The confusion lies in the purpose of the NDA, and the scope of what it covers.  The branch’s development will not be under NDA, nor will discussions between the deputies and the community, how they receive code submissions, what they reveal to others about their own plans, and so on.

Since much of this preliminary discussion is going to be an open table with the deputy candidates and EllisLab staff to determine the guidelines and strategies for the community branch, the NDA is necessary.  As would be the case any time we are dealing with third parties, in order to have a candid discussion and presentation of our point of view with the deputies may require revealing proprietary or confidential information relating to our other products, new product plans, confidential information from our users and partners, or our business in general.

In short, the NDA will not block the free flow of information about the community branch, or from and between the deputies.  Development of the community branch will not be done in secret with surprise pushes and releases.  There is no cone of silence, except with respect to information shared regarding the protected assets of EllisLab, Inc. and our stakeholders.

Posted by Derek Jones on November 19, 2010

The Official CodeIgniter Community Branch

Yes, you read that right, EllisLab will be creating a new CodeIgniter branch.  For you.  By you.

We need six talented, opinionated, critical coders from the community who have a heavy personal and/or professional interest in CodeIgniter’s ongoing development to act as deputies for the repository.  If you feel that you qualify, please email .(JavaScript must be enabled to view this email address) the following:

  1. CodeIgniter Username
  2. Link to your site profile, e.g. http://codeigniter.com/forums/member/18457/
  3. Three of your biggest contributions to CodeIgniter (can be code, a particular bit of feedback, etc.)
  4. A brief paragraph stating why you think you should be considered.

You can also nominate someone else for one of the six seats by emailing the above information on their behalf.  In that case, please also include your CodeIgniter Username and link to your site profile along with your nominee’s.

What can you expect?

  • We will be vetting applications for these six seats over the next few weeks.
  • We may solicit additional feedback from the community about nominees.
  • Potential candidates will be asked to sign an NDA to discuss the details of the branch before accepting a seat.
  • Details regarding the branch, where it will be found, and its impact on CodeIgniter will not be released until after six deputies have accepted a seat, but will then be posted here in the News section in advance of the branch being made public.
  • Q1 2011 rollout.

UPDATE (2010/11/17 12:46PM PST):  There’s been a bit of confusion in the community from this news item, two points specifically we’d like to clarify.  First, CodeIgniter is not going anywhere, it is not dead, we are not abandoning it.  The purpose of this is to give the community more direct control over CI’s development and future.  Second, we chose the wrong word to describe it in broad strokes.  Since we are not ready to reveal its name, we were simply trying to avoid calling it something lame like “CodeIgniter Community Edition”, and in haste chose “fork”.  We’ve changed the wording in this article to more accurately reflect the intent, using “branch”. Lastly, EllisLab will be contributing directly to the community branch.  -dj

Posted by Derek Jones on November 17, 2010

CodeIgniter 2.0 - Now with more Awesome

A few days ago a new repository popped up on our internal Mercurial server. We’re not particularly creative with our naming, so it was simply CodeIgniterNoPhp4.

Goodbye PHP 4:

When we first moved our code to Bitbucket a few months ago we deprecated PHP 4 support for CI 2.0. It has been sitting in that state for quite some time. In fact, it’s stable enough to support our commercial products. With only a handful of significant changes to its codebase, the release was pushed along. We want to make CI 2 worth its name, so starting today, we’re requiring PHP 5.1.6 on our master branch.

What You Need To Know:

     
  • All core class names are prefixed with “CI_”. Be careful what you extend.
  •  
  • All core classes now use the __construct convention. Update your constructor calls!
  •  
  • CI_Base has been removed, the super object now starts at CI_Controller.
  •  
  • The compat file and compatibility helper have been removed. PHP 5.1.6 supports all the functions they provided.

The Model objects are cleaner:

Models are no longer assigned super object class members, instead CI_Model provides a __get() method that will look them up as they’re needed. This means that you can now serialize your model objects directly. It should not affect existing code.

Email and Validation chaining:

Like the DB library, the Email and Form Validation libraries have been made chainable. So the email example in the documentation can be written as:

$this->email->from('your@example.com''Your Name')
            ->
to('someone@example.com')
            ->
cc('another@another-example.com')
            ->
bcc('them@their-example.com')
            ->
subject('Email Test')
            ->
message('Testing the email class.')
            ->
send(); 

More is on the way:

We are making changes slowly and deliberately, so expect some flux in the repository for the coming weeks. It’s an exciting time for CI, and a great opportunity to provide your feedback.

Happy Coding!

Join the Discussion on the EE Forums!

Posted by Pascal Kriete on November 11, 2010

What’s Happening Now?

I’d like to give you an update on what’s happening with CodeIgniter.  2.0’s code has been stable and in use by ExpressionEngine and MojoMotor for many months, and the code has been publicly available at Bitbucket for awhile as well.  But the official download and released version is still at 1.7.2.  That will soon change, CodeIgniter 2.0 will be released, and forward development will return to regularity.

CodeIgniter has always been born from ExpressionEngine, both in terms of its code as well as its very ability to exist, since the commercial arm of EllisLab provides the resources necessary to maintain an open source framework and surrounding community.  That is still the case, so to gauge what’s happening with CodeIgniter, you can often look to ExpressionEngine.

Particularly relevant to CodeIgniter are the recent blog posts on the ExpressionEngine blog: Acknowledge, Identify, React, and I Hear You.  Additionally, Leslie Camacho (President), Leslie Doherty (Community Architect), Lisa Wess (Director of Community Services), and myself (CTO) appeared on a recent episode of the EE Podcast, talking about changes being made to the company, our development practices, as well as how we communicate with our users.  I encourage you to read both of those blog posts and listen to the EE Podcast, even if you have no interest in ExpressionEngine.  I promise that you will not find any marketing speak trying to push you to our commercial product.

So what happens from here?

  • We are still interviewing for the open Software Engineer position to expand our team, which will make it easier for us to allocate real resources to CodeIgniter development.
  • Our adoption of agile development practices will help us quickly wrap up 2.0, and finally put it in your hands in a meaningful way, and get on with iterative improvements.
  • Along the way, we will be actively working on communicating short and long term plans for the framework to you effectively so that CodeIgniter’s direction and what’s being worked on is no longer a mystery to you.
  • The Community Chieftain position has not accomplished what was intended when it was created, so we are suspending it in favor of finding more effective ways of interfacing with the community.
  • We still love Mercurial.  In fact, Bitbucket was recently acquired by Atlassian, which is good for us, and good for CodeIgniter.  This injection of talent and infrastructure into our chosen public source code host bodes well for additional features and improved workflows, particularly in terms of making it easier to accept community contributions.

There are good times ahead, and as long as PHP remains a dominant force in the industry, CodeIgniter will still be the lightweight well-documented framework of choice by developers for whom performance, simplicity, and security are of paramount importance to their livelihood.

Posted by Derek Jones on October 26, 2010

Page 6 of 14 pages ‹ First  < 4 5 6 7 8 >  Last ›