100% found this document useful (3 votes)
684 views53 pages

CodeIgniter Lab

This document provides an outline and instructions for a series of CodeIgniter labs covering introductory topics like installation, HMVC modular extensions, Grocery CRUD, Eden Library, and integrating Doctrine ORM. The labs introduce fundamental CI concepts and common third-party libraries to expand functionality. Specific tasks are given to download, configure, and test each concept through simple examples and controller code snippets provided on GitHub gists.

Uploaded by

LeoNguyen.com
Copyright
© Attribution Non-Commercial (BY-NC)
We take content rights seriously. If you suspect this is your content, claim it here.
100% found this document useful (3 votes)
684 views53 pages

CodeIgniter Lab

This document provides an outline and instructions for a series of CodeIgniter labs covering introductory topics like installation, HMVC modular extensions, Grocery CRUD, Eden Library, and integrating Doctrine ORM. The labs introduce fundamental CI concepts and common third-party libraries to expand functionality. Specific tasks are given to download, configure, and test each concept through simple examples and controller code snippets provided on GitHub gists.

Uploaded by

LeoNguyen.com
Copyright
© Attribution Non-Commercial (BY-NC)
We take content rights seriously. If you suspect this is your content, claim it here.
You are on page 1/ 53

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)

You might also like