LeoNguyen.
com
Outline
- References (http://bit.ly/1fofKSV) - Lab 01: Introduction CodeIgniter 2.1.3 - Lab 02: HMVC - Lab 03: Grocery CRUD 1.3.3 - Lab 04: Eden Library 3.1 - Lab 05: Doctrine 2
Github
https://github.com/leonguyen/CILab
Lab 01
Introduction to CodeIgniter
Outline
- Download and config CI - Write a Hello world program
Exercise 1
Download and config CI
CodeIgniter
Task 1 - Download CI
- Goto CI download site http://ellislab.com/codeigniter/userguide/installation/downloads.html
Task 2 - Unzip CI
- Unzip CI zip file.
Task 3 - Download & install Sublime Text
- Goto Sublime Text download site http://www.sublimetext.com
Task 4 - Config autoload.php
- Enter code: https://gist.github.com/leonguyen/5315988
Task 5 - Config config.php
- Enter code: https://gist.github.com/leonguyen/5315997
Task 6 - Config database.php
- Enter code: https://gist.github.com/leonguyen/5316010
Task 7 - Run CI
- Enter the url http://localhost/cilab/ on the browser.
Task 8 - Userguide CI
- Enter the url http://localhost/cilab/user_guide/ on the browser.
Exercise 2
Write a Hello world program
Task 1 - Create Helloworld controller
- Copy Welcome controller, enter the following code then goto http: //localhost/cilab/index.php/helloworld
Task 2 - Create .htaccess
- Create .htaccess in root source files then enter the following code: https://gist.github.com/leonguyen/5251416
Task 3 - Config config.php
- Remove 'index.php' of 'index_page'. - Enter 'QUERY_STRING' of 'uri_protocol'.
Task 4 - Run again
- Goto http://localhost/cilab/helloworld.
Lab 02
HMVC (Hierarchical Model View Controller)
HMVC
HMVC (cont)
- Modularization: Reduction of dependencies between the disparate parts of the application. - Organization: Having a folder for each of the relevant triads makes for a lighter work load. - Reusability: By nature of the design it is easy to reuse nearly every piece of code. - Extendibility: Makes the application more extensible without sacrificing ease of maintenance.
Outline
- Download and config HMVC modular. - Create sample 'Foo' modules.
Exercise 1
Download and config HMVC modular
Task 1: Download HMVC Modular
- Goto https://bitbucket.org/wiredesignz and download "codeignitermodular-extensions-hmvc"
Task 2: Copy 'MX' third_party
- Copy 'MX' folder to 'third_party' folder of CI.
Task 3: Copy to 'application/core'
- Copy 'MY_Loader.php' and 'MY_Router.php' to 'application/core'.
Exercise 2
Create sample 'Foo' modules
Task 1: Create 'modules' folder
- Create 'modules' folder in 'application' and 'Foo' modules.
Task 2: Create 'Foo' controller
- Create 'Foo' controller extends 'MX_Controller': https://gist.github.com/leonguyen/5326355
Task 3: Create 'Foo' controller
- Create 'Foo' controller extends 'MX_Controller'.
Lab 03
Grocery CRUD
Intro
- Grocery CRUD is a library that makes a developer's life easier. Just few lines of code and you can create a full stable CRUD with nice views. A totally automatic system that even a newbie in PHP can work with.
Task 1: Download
- Go to www.grocerycrud.com
Task 2: Installation
- Unzip 'grocery_CRUD.zip' and copy all files to your CI project.
Task 3: Installation - MySQL
- Import 'examples_database.sql' to your project mysql.
Task 4: Run
- Enter the url http://localhost/CILab/examples/ on the browser.
Lab 04
Eden Library
Intro
- Eden is a PHP library designed for rapid prototyping, with less code. Yes, Really. - Eden simply a set of reusable components, that works with any PHP framework and CMS. Eden makes code logical and readable with dead simple syntax.
Task 1: Download
- Go to www.eden-php.com
Task 2: Installation
- Unzip 'eden.zip' and copy all files to 'libraries' folder of your CI project.
Task 3: Create example controller
- Create 'edenhellow.php' controller and enter code: https://gist.github. com/leonguyen/5915315
Task 4: Run
- Enter the url http://localhost/CILab/edenhello/ on the browser. Note: You have access to a server with at least PHP 5.3.x
Lab 05
Doctrine 2
Intro
- Doctrine is a very powerful ORM in php and it is possible to easily integrate and use doctrine with codeigniter as ORM
Task 1: Download
- Go to github.com/doctrine and download + ORM: github.com/doctrine/doctrine2 + Common: github.com/doctrine/common + DBAL: github.com/doctrine/dbal and Cache, Annotations, Lexer
Task 2: Create Doctrine folder
- Create Doctrine folder into application/libraries and put its files.
Task 3: Create Doctrine bootstrap
- Create Doctrine.php into application/libraries folder. - Enter code: https://gist.github.com/leonguyen/6696118
Task 4: Load Doctrine
- Modify the autoload.php
Task 5: Create YAML mapping files
- Enter code: https://gist.github.com/leonguyen/6701457 https://gist.github.com/leonguyen/6701498
Task 6: Command Line Tool
- Create doctrine-cli.php into application folder. - Enter code: https://gist.github.com/leonguyen/6700705
Task 7: Setup Entities, Proxies, and DB Schema
- List of commands: php doctrine-cli.php (See: youtu.be/yFH5JcH-RtM) - Entity classes: php doctrine-cli.php orm:generate-entities models (See: youtu.be/nEMfBno40vE) - Proxy classes: php doctrine-cli.php orm:generate-proxies (See: youtu.be/v4J_cI5CJe0) - Drop tables: php doctrine-cli.php orm:schema-tool:drop --force (See: youtu.be/lhGWsFmCeoc) - Create tables: php doctrine-cli.php orm:schema-tool:create (See: youtu.be/MhLAi4f_mg4)