Codeigniter can be used within Joomla. There is a component which can be installed so that this procedure can occur. The website for which there is some documentation and the download can be found here. When I first arrived at this website, I was relieved to find it had been developed by Azrul, since I have worked with their extensions and find them excellent. For Joomla 1.5, you can install the component through the backend installer and create a menu item. The external link works best with the proper url. The extension is a little dated since it uses Codeigniter 1.5.3. Codeigniter is now in version 2.0. You could upgrade to 1.7.3 or 2.0 using the files and instructions at the Codeigniter website. Personally, I will wait for new revised books about Codeigniter 2.0 before I move from a previous version.
UNLIKE AZRUL’S EXAMPLE, if you want to use a newer version you can take your current Codeigniter application and insert it into the applications folder. Unlike, the 1.5.3 version, there will be no specific application folders for each application, unless you desire to make that happen. Now, the controller files called ciexample.php will reside in the controller folder with all the rest of them. If you make separate view folders for each controller all files will be nicely organized for as many applications and pages as you want.
Alternatively, you could just change the name of the external link to the default controller (which is specified in the routes.php file) and the application can be up and running in minutes. For Joomla 1.6, or 1.5 for that matter, you can extract the files and dump them into the appropriate directories (root directory, administrator/component directory and the component directory), then make an external link to the appropriate path such as http://localhost/mysandbox/codeigniter/index.php/ciexample.
After the installation takes place, you will load the sample page. You will also notice that the page with the sample text is all white. Why? Well, when Codeigniter loads the ciexample controller, there is no header, content, footer nor stylesheet. At this point, you must make another template exactly like the Joomla installation, with an almost-identical menu. If this was done well, nobody would notice that Codeigniter is used within Joomla.
However, the Codeigniter 1.5.3 application will load 1 view file.
One downside to creating components with CodeIgniter is that the backend parameters will not work like Joomla components that use the typical Joomla MVC. If Joomla components were made with CodeIgniter, a strong CRUD method would help a layman update and modify databases.
One more issue which could arise is coding the css. For example, using absolute urls will work in all cases on any server. In some instances, the index() and another function within the controller could have slightly different links to the stylesheet. You can always make specific stylesheets for each view or you can use absolute urls. If absolute urls are not used, the results can vary between a WAMP machine and the live site on a Linux Server.
You can read all sorts of opinions about speed and performance regarding using CodeIgniter within Joomla, but, it does load pages rather fast. On a WAMP server, a page with 300 words and an image can freshly load in .07 seconds and faster upon a loaded cache. Personally, I would not consider the speed performance as an issue for which not to use CodeIgniter within Joomla.