Skip to content

Latest commit

 

History

History
109 lines (82 loc) · 6.25 KB

README.md

File metadata and controls

109 lines (82 loc) · 6.25 KB

CIM-ACCELERANT (A.K.A. CIM-XA)

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

Intro

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.

Some Useful External Resources

Documentation for CodeIgniter

Cartographer on Github

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

Installation Notes

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.

Sample Code

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.

LICENSE

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.

Optional Commercial Support

Fee-based support and development work is available from Titanium Opensystems, l.c. -- see the website here.