A distribution, by Titanium Opensystems, l.c., including the popular CodeIgniter framework (Version 2.x) and many extensions. You may find this distribution helpful if your situation includes one or more of the following:
- You need to extend the routing feature set (Cartographer)
- You need PDO for cross-DBMS compatibility (Idiorm)
- You need easy-to-use support for SQL prepared statements (Idiorm)
- You need or simply prefer a more mainstream ORM approach (Idiorm)
- You need a fully RESTful server implementation capability
- You need serialization capability (Apache Avro)
- You need to integrate with JavaScript(note 1) or a JS MVC framework(note 2)
- You need views/templates that auto-escape output (Savant3)
- You need login/authorization )a provided CI example, hybridauth, or Zend)
- You need MongoDB support
- You need strong Excel data support (PHPExcel)
- You need a job queue facility (Celery + AmqPHP)
- You need debugging via Chrome Console (PHPChrome)
- You need a cURL library (PHPcURL)
- You need to send HTML email (Zend) or format HTML email (Savant)(note 3)
(1) see sample angularjs/CodeIgniter-AngularJS application; see also The Definitive Guide to Angular on Mobile.
(2) ie: Ember loads and instantiates Javascript controllers based upon which CI controller is active and passes information from PHP to your Javascript without printing data into the DOM. From there you can also launch into a larger JS framework such as Angular.
(3) If you also need a css inliner, see: beaker.mailchimp.com/inline-css
This distribution includes zero-compilation, object-oriented data and presentation layers together with Bootstrap 3.0 and many themes.
This distribution stands on the shoulders of some PHP giants including Ellis Labs (CodeIgniter), Jamie Matthews (Idiorm), Paul M. Jones (Savant), Zend(Zend libraries), Alex Bilbie (MongoDB library) and others.
RESTful Server Tutorial for CodeIgniter by Phil Sturgeon
<a href=http://stackoverflow.com/questions/14994391/how-do-i-think-in-angularjs-if-i-have-a-jquery-background?rq=1">Why you may need a JS MVC framework (see the first answer for an excellent introduction)
Apache Avro see also CHUG-ApacheAvro
Documentation for Idiorm Object Relational Mapper
; and documentation for (optional) Savant Templating see also: this article.
While Savant is included in this distribution, it is not mandatory to use it for presentation -- CodeIgniter views may be used. The sample code in application/controllers/site.php has examples of CI and Savant views. If used, CodeIgniter views are located in the usual directory.
Job queue functionality requires enabling Python and is based on the following projeects: Celery-CI (housed in /application/libraries) Celery-PHP AMQP Run Celery Tasks Article
Libraries are housed in / or in /application/libraries, except as noted in the various README files in /. This distribution's configuration for CodeIgniter departs from the original as follows:
- index_page is set to: ' ' to support URLs without showing index.php and .htaccess is coded accordingly so Apache must have rewrite set up.
- there is an optional auth system, using MY_Bouncer in application/core, which is bypassed for any class that doesn't extend MY-Bouncer. So For example, login.php can run without first logging in because class Login extends CI_Controller. But site.php cannot run (as-written) without first logging in because class Site extends MY_Bouncer.
Other considerations:
- If you use CI's Encryption class or CI's Session class you MUST set an encryption key. See application/config/config.php
- this distribution's Savant departs from the original in that it assumes the path to templates is set to application/templates and the sample code reflects this assumption.
- a database connection string configuration for Idiorm is located in application/config/idiorm.php which you may include in your controller constructor, otherwise Idiom expects it coded inline. This string must reflect your database server attributes as described in the Idiorm documentation.
- to use CI models or Grocery CRUD requires defining CodeIgniter's database connection in application/config/database.php.
THERE ARE SMALL SAMPLE CONTROLLERS in application/controllers/site.php and examples.php showing several forms of usage. There is also a
sample controller for job queues in application/controllers/jobq.php. DBscripts/test.sql contains some sample data--enough to run many
(but not all) of the examples.
THIS DISTRIBUTION IS LICENSED AS A COMPILATION WORK UNDER THE SAME TERMS AS SET FORTH IN THE CODEIGNITER LICENSE. THE INDIVIDUAL COMPONENTS ARE SUBJECT TO THEIR RESPECTIVE LICENSES. ALL TRADEMARKS ARE THE PROPERTY OF THEIR RESPECTIVE OWNERS AND TITANIUM OPENSYSTEMS HAS NO AFFILIATION WITH ANY OF THEM. BY USING THIS DISTRIBUTION IN WHOLE OR PART YOU CONSENT TO ALL APPLICABLE LICENSE TERMS, INCLUDING WITHOUT LIMITATION, THIS PARAGRAPH.
Fee-based support and development work is available from Titanium Opensystems, l.c. -- see the website here.