News
GoCart
Every week we hear of really awesome places that CodeIgniter is being used. I want to start sharing those with the community-at-large. I will start by posting them here under a new Showcase Category with the hopes that any future revisions of CI.com will have a section for stuff like this. You guys and gals make some really cool stuff and deserve a platform to show it off.
So without further ado…
This showcase is an interview with Kyle Roseborrough about GoCart
What can you tell us about the GoCart team?
We have a pair of PHP developers who knew there was a better way to build a shopping cart. Noah (lead developer) has 6 years experience in PHP development and 4 years in CodeIgniter. Gabe has about 10 years experience in web application development. Kyle has been working in UI and management for 10 years.

What can we tell about the site in general?
GoCartdv.com was built to showcase GoCart and offer some basic information on the system.
What are the goals of the site and the main audience?
The main audience is CodeIgniter developers who are wanting a simple, scalable, CodeIgniter shopping cart. The goal is to get people involved in development to improve the cart and allow it to fully embody the goal of the project. To be easy to customize for developers and easy to use for end users/customers
What was your major consideration in using CodeIgniter for this?
CodeIgniter has great documentation and is easy to learn. We build lot of custom projects on CodeIgniter and it only made sense for us to build our cart on it. When looking for commerce solutions, we never found a suitable solution built on CodeIgniter so we decided to set out to do it on our own.
What is next on the plate for GoCart?
We really want GoCart to foster a great community of people contributing back to the roadmap and path the project will take. We want the focus to remain the same though “Easy to Customize, Easy to Use”. It would be great if we could get enough people using.
Any additional functionality you can tell us about?
Well, not really. GoCart is intended to be a shopping cart, plain and simple. It does have some basic page and banner management and a whole slew of cart related features, but ultimately it’s an ecommerce platform.
Do you have any other information you’d like to share with the community?
We built GoCart to be simple and scalable. As time goes on, we want the software to become easier and easier to use. We want GoCart to be scalable and to be able to work with new platforms as they come out. We feel that CodeIgniter and the CodeIgniter community is a huge benefit here. It enables developers to tie into a whole plethora of libraries, helpers and applications easily and support each other in the endeavor to make CodeIgniter better. Essentially, what’s good for CodeIgniter is good for GoCart.
Tips from this project you’d like to share?
If you really want something, do it yourself. If it doesn’t happen then you probably don’t want it as bad as you think.
Lessons you’ve learned?
- Not every idea is a good one. Generally you need someone else around to discuss ideas and methods with. Collaboration is the best way to build a good application.
- No one knows what the next trend will be. Having a scalable platform that will adjust to a new set of tools and user demands is very important.
If you have a project that you would like to see in our showcase email me
Posted by Marcus Neto on November 05, 2011
New User Guide in Development
We are happy to announce today that the user guide has had some significant improvements, and the first commit of these changes were just pushed today.
As many of you likely heard at CICON 2011, the Reactor team has had an internal project going on for some time to move the user guide to Sphinx. In addition to handling the tedium of generating page and document tables of contents, or maintaining internal links and references, the documentation is now easier to write, as you can simply focus on the content instead of markup and presentation. Don’t forget syntax highlighting of PHP, HTML, CSS, and JavaScript in code samples. Based on ReStructured Text, it’s also more human readable in a text editor than HTML is, which is likely where you spend most of your time. As an added benefit, Sphinx can output HTML, PDF, and even EPUB formats all from the same source files. We will likely be taking advantage of that at a later date.
But we didn’t stop there, we also enlisted the thunderous powers of EllisLab’s Chief Creative Officer, James Mathias for a style redesign. They are clean, easy to read, and beautiful.
Setting up your dev environment to work with Sphinx (if you want to render and output locally) is very easy, and takes about five minutes. For those that want to geek out, we have added a readme file to the user guide source folder so the step by step instructions are available right from GitHub.
Today marks the first commit with the new user guide to the unreleased develop branch, so you may encounter some bumps. Most notably are the code blocks, which pandoc lost our line breaks on, and some navigation issues as we experiment with different table of contents presentation and depth. We’ll be cleaning these up prior to the next release (much is as simple as some line breaks and tabs), but feel free to pitch in and submit some pull requests if you see anything out of whack.
And lastly, for the first time ever, we have live nightly builds of documentation for the develop branch available at the CodeIgniter web site. Enjoy!
Posted by Derek Jones on October 05, 2011
Upcoming Site Downtime
The EllisLab family of sites (ExpressionEngine.com, CodeIgniter.com, MojoMotor.com, and EllisLab.com) will be down for scheduled maintenance on Thursday, September 22, 2011 beginning at approximately 10-11pm Eastern and lasting a number of hours. Access to critical resources such as the store, your product downloads, and documentation will be unaffected.
Posted by Derek Jones on September 21, 2011
Contribution Guide
CodeIgniter is a community driven project and accepts contributions of code and documentation from the community. These contributions are made in the form of Issues or Pull Requests on the EllisLab CodeIgniter repository on GitHub.
Issues are a quick way to point out a bug. If you find a bug or documentation error in CodeIgniter then please check a few things first:
- There is not already an open Issue
- The issue has already been fixed (check the develop branch, or look for closed Issues)
- Is it something really obvious that you fix it yourself?
Reporting issues is helpful but an even better approach is to send a Pull Request, which is done by “Forking” the main repository and committing to your own copy. This will require you to use the version control system called Git.
Guidelines
Before we look into how, here are the guidelines. If your Pull Requests fail to pass these guidelines it will be declined and you will need to re-submit when you’ve made the changes. This might sound a bit tough, but it is required for us to maintain quality of the code-base.
PHP Style: All code must meet the Style Guide, which is essentially the Allman indent style, underscores and readable operators. This makes certain that all code is the same format as the existing code and means it will be as readable as possible.
Documentation: If you change anything that requires a change to documentation then you will need to add it. New classes, methods, parameters, changing default values, etc are all things that will require a change to documentation. The change-log must also be updated for every change. Also PHPDoc blocks must be maintained.
Compatibility: CodeIgniter is compatible with PHP 5.1.6 so all code supplied must stick to this requirement. If PHP 5.2 or 5.3 functions or features are used then there must be a fallback for PHP 5.1.6.
Branching: CodeIgniter uses the Git-Flow branching model which requires all pull requests to be sent to the “develop” branch. This is where the next planned version will be developed. The “master” branch will always contain the latest stable version and is kept clean so a “hotfix” (e.g: an emergency security patch) can be applied to master to create a new version, without worrying about other features holding it up. For this reason all commits need to be made to “develop” and any sent to “master” will be closed automatically. If you have multiple changes to submit, please place all changes into their own branch on your fork.
One thing at a time: A pull request should only contain one change. That does not mean only one commit, but one change - however many commits it took. The reason for this is that if you change X and Y but send a pull request for both at the same time, we might really want X but disagree with Y, meaning we cannot merge the request. Using the Git-Flow branching model you can create new branches for both of these features and send two requests.
How-to Guide
There are two ways to make changes, the easy way and the hard way. Either way you will need to create a GitHub account.
Easy way
GitHub allows in-line editing of files for making simple typo changes and quick-fixes. This is not the best way as you are unable to test the code works. If you do this you could be introducing syntax errors, etc, but for a Git-phobic user this is good for a quick-fix.
Hard way
The best way to contribute is to “clone” your fork of CodeIgniter to your development area. That sounds like some jargon, but “forking” on GitHub means “making a copy of that repo to your account” and “cloning” means “copying that code to your environment so you can work on it”.
- Set up Git (Windows, Mac & Linux)
- Go to the CodeIgniter repo
- Fork it
- Clone your CodeIgniter repo: git@github.com:<your-name>/CodeIgniter.git
- Checkout the “develop” branch At this point you are ready to start making changes. Fix existing bugs on the Issue tracker after taking a look to see nobody else is working on them.
- Commit the files
- Push your develop branch to your fork
- Send a pull request http://help.github.com/send-pull-requests/
The Reactor Engineers will now be alerted about the change and at least one of the team will respond. If your change fails to meet the guidelines it will be bounced, or feedback will be provided to help you improve it.
Once the Reactor Engineer handling your pull request is happy with it they will post it to the internal EllisLab discussion area to be double checked by the other Engineers and EllisLab developers. If nobody has a problem with the change then it will be merged into develop and will be part of the next release.
Keeping your fork up-to-date
Unlike systems like Subversion, Git can have multiple remotes. A remote is the name for a URL of a Git repository. By default your fork will have a remote named “origin” which points to your fork, but you can add another remote named “codeigniter” which points to git://github.com/EllisLab/CodeIgniter.git. This is a read-only remote but you can pull from this develop branch to update your own.
If you are using command-line you can do the following:
git remote add codeigniter git://github.com/EllisLab/CodeIgniter.git
git pull codeigniter develop
git push origin develop
Now your fork is up to date. This should be done regularly, or before you send a pull request at least.
[Editor’s note: This article will be added to the User Guide]
Posted by Phil Sturgeon on September 06, 2011
Amazing Progress Report & Addition of IRC to CodeIgniter.com
In less than two weeks since the announcement was made at CICON that CodeIgniter was moving to GitHub, we’ve seen some incredible results from the change. Already CodeIgniter is the 10th most watched PHP project at GitHub (currently 758), with 42 open pull requests, 53 merged pull requests, 170 forks, and 41 individual contributors. Incredible!
Behind the scenes, the Reactor engineers and the EllisLab team are regularly conversing about potential changes, and working jointly on larger more sprawling projects like converting the userguide to Sphinx, and getting things ready for the inclusion of Sparks.
We also noticed what seemed to be a spike in activity on the #CodeIgniter Freenode IRC channel, so we’ve decided to make it more prominent to encourage its continued use. You’ll now notice an IRC tab in the main navigation, letting you access the #CodeIgniter IRC channel right here at CodeIgniter.com.
Join in the discussions, and if you haven’t already, start watching the CodeIgniter repo at GitHub, contributing, and even just commenting on people’s requests or engaging in peer code review. With our community’s energy, I think we might even eclipse some of the larger PHP projects at GitHub! You all are awesome, and we thank you.
Posted by Derek Jones on August 31, 2011
