SlideShare une entreprise Scribd logo
1  sur  71
CodeIgniter 2.0.0
Adam Griffiths
@adam_griffiths
adamgriffiths.co.uk
adam@adamgriffiths.co.uk
bitbucket.org/adamgriffiths/
Who am I?
• Author of programmersvoice.com
• AG Auth - Easiest Auth Library for CI
• AG Asset - simple Asset Management Library
• Author of CodeIgniter 1.7 Professional Development
CodeIgniter 2.0.0
• What’s been removed
• What’s been deprecated
• What’s changed
• What’s new
• Tips for upgrading
What’s been removed
Goodbye Scaffolding
• Deprecated for a number of versions
• Wasn’t a very good implementation
• Has now been removed for CodeIgniter 2.0.0
Au revoir Plugins
• Removed in favour of Helpers
• Nobody was ever sure what they were for
• Plugins & Helpers were too similar
• You should update your Plugins to Helpers
Validation Class
• Deprecated since 1.7.0
• More powerful FormValidation Class should be used instead
Deprecations
PHP 4
• Support now dropped for PHP 4
• YAY!!
• New CI 2 features may not support PHP 4
• All legacy features will no longer support PHP 4 as of 2.1.0
Changes...
Application Directory
• How many of you move your application directory out of the
system directory?
• That won’t be an issue in CI2
index.php
• Configuration values can now be stored here.
• Allows a single application to have multiple front controllers
with different configuration values.
• Routing overrides now added.
• Limits your application to one controller.
What’s new?
Drivers
• New type of library
• Parent class and any number of child classes
• CI Database Library could be a Driver
Using Drivers
• $this->load->driver(‘driver_name’);
• $this->driver_name->method();
• $this->driver_name->subclass->subclass_method();
Creating a Driver
File Structure
application/
libraries/
driver_name/
Driver_name.php
drivers/
Driver_name_subclass_1.php
Driver_name_subclass_2.php
File Structure
application/
libraries/
driver_name/
Driver_name.php
drivers/
Driver_name_subclass_1.php
Driver_name_subclass_2.php
File Structure
application/
libraries/
driver_name/
Driver_name.php
drivers/
Driver_name_subclass_1.php
Driver_name_subclass_2.php
File Structure
application/
libraries/
driver_name/
Driver_name.php
drivers/
Driver_name_subclass_1.php
Driver_name_subclass_2.php
File Structure
application/
libraries/
driver_name/
Driver_name.php
drivers/
Driver_name_subclass_1.php
Driver_name_subclass_2.php
File Structure
application/
libraries/
driver_name/
Driver_name.php
drivers/
Driver_name_subclass_1.php
Driver_name_subclass_2.php
File Structure
application/
libraries/
driver_name/
Driver_name.php
drivers/
Driver_name_subclass_1.php
Driver_name_subclass_2.php
File Structure
application/
libraries/
driver_name/
Driver_name.php
drivers/
Driver_name_subclass_1.php
Driver_name_subclass_2.php
Parser File Structure
application/
libraries/
Parser/
Parser.php
drivers/
Parser_dwoo.php
Parser_smarty.php
Parser File Structure
application/
libraries/
Parser/
Parser.php
drivers/
Parser_dwoo.php
Parser_smarty.php
Parser File Structure
application/
libraries/
Parser/
Parser.php
drivers/
Parser_dwoo.php
Parser_smarty.php
Parser File Structure
application/
libraries/
Parser/
Parser.php
drivers/
Parser_dwoo.php
Parser_smarty.php
Parser File Structure
application/
libraries/
Parser/
Parser.php
drivers/
Parser_dwoo.php
Parser_smarty.php
Parser File Structure
application/
libraries/
Parser/
Parser.php
drivers/
Parser_dwoo.php
Parser_smarty.php
Parser.php Class
<?php
class Parser extends CI_Driver_Library {
} // class
?>
Parser.php Class
<?php
class Parser extends CI_Driver_Library {
} // class
?>
Parser.php Class
<?php
class Parser extends CI_Driver_Library {
} // class
?>
<?php
class Parser extends CI_Driver_Library {
function __construct() {
$this->valid_drivers = array('parser_dwoo',
‘parser_smarty’);
} // _construct()
} // class
?>
function __construct() {
$this->valid_drivers = array('parser_dwoo',
‘parser_smarty’);
} // _construct()
Parser_dwoo.php Class
<?php
class Parser_dwoo extends CI_Driver {
} // class
?>
Parser_dwoo.php Class
<?php
class Parser_dwoo extends CI_Driver {
} // class
?>
Parser_dwoo.php Class
<?php
class Parser_dwoo extends CI_Driver {
} // class
?>
Packages
• Allows for easy distribution of resources in a single directory.
• Can have it’s own library files, models, config files etc.
• Placed in application/third_party
• MojoMotor addons are packages
Creating a Package
Package File Structure
application/
third_party/
package_name/
config/
helpers/
language/
libraries/
models/
Package File Structure
application/
third_party/
package_name/
config/
helpers/
language/
libraries/
models/
Package File Structure
application/
third_party/
package_name/
config/
helpers/
language/
libraries/
models/
Package File Structure
application/
third_party/
package_name/
config/
helpers/
language/
libraries/
models/
Package File Structure
application/
third_party/
package_name/
config/
helpers/
language/
libraries/
models/
Package File Structure
application/
third_party/
package_name/
config/
helpers/
language/
libraries/
models/
Package File Structure
application/
third_party/
package_name/
config/
helpers/
language/
libraries/
models/
Package File Structure
application/
third_party/
package_name/
config/
helpers/
language/
libraries/
models/
Package File Structure
application/
third_party/
package_name/
config/
helpers/
language/
libraries/
models/
Add Package Path
• Before you can load a package, you need to tell the Loader
where to look for it.
• $this->load-
>add_package_path(APPPATH.'third_party/package_name/');
• $this->load->library(‘package_name’);
Remove Package Path
• When finished using a Packages resources.
• When you want to use multiple Packages.
• $this->load-
>remove_package_path(APPPATH.'third_party/package_nam
e/');
PackageView Files
• Disclaimer: not finished
• Save the original view path
• Set the view path to that of the Package
• Load views, etc
• Set the path back to the original
// ... save the original view path, and set to our package view folder
$orig_view_path = $this->load->_ci_view_path;$this->load->_ci_view_path = APPPATH.'third_party/package_name/views/';// ... code using the package's view files// ... then return the view path to the application's original view path$this->load->_ci_view_path = $orig_view_path;
$orig_view_path = $this->load->_ci_view_path;$this->load->_ci_view_path = APPPATH.'third_party/package_name/views/';// ... code using the package's view files// ... then return the view path to the application's original view path$this->load->_ci_view_path = $orig_view_path;
$orig_view_path = $this->load->_ci_view_path;$this->load->_ci_view_path = APPPATH.'third_party/package_name/views/';// ... code using the package's view files// ... then return the view path to the application's original view path$this->load->_ci_view_path = $orig_view_path;
Mercurial/BitBucket
• In development code is now hosted on BitBucket
• Easier to get *your* code in the CI core
• Allows community to help squish bugs
• No SVN!! (Sorry but I really do hate Subversion)
Quick and Dirty Mercurial
Tutorial
The Basics
• hg init
• hg pull <url>
• hg pull <constant>
• hg pull <path/to/local/repo>
• hg update
Continued...
• hg diff
• hg add .
• hg add <path/to/file>
• hg commit -m “Commit Message”
• hg push <url>
• hg push <constant>
.hgrc file
• mate $HOME/.hgrc
• [paths]
• ci_master = http://bitbucket.org/ellislab/codeigniter/
Upgrading Tips
Upgrading your Models
• CodeIgniter 1.7.2 Models extend Model
• CodeIgniter 2.0.0 Models extend CI_Model
Lazy mans Model Upgrade
• Create a new Library file: MY_Model.php
<?php
class Model extends CI_Model
{
function __construct()
{
parent::__construct();
} // construct()
} // class
?>
Lazy mans Model Upgrade
• Create a new Library file: MY_Model.php
<?php
class Model extends CI_Model
{
function __construct()
{
parent::__construct();
} // construct()
} // class
?>
Lazy mans Model Upgrade
• Create a new Library file: MY_Model.php
<?php
class Model extends CI_Model
{
function __construct()
{
parent::__construct();
} // construct()
} // class
?>
Lazy mans Model Upgrade
• Create a new Library file: MY_Model.php
<?php
class Model extends CI_Model
{
function __construct()
{
parent::__construct();
} // construct()
} // class
?>
Controllers
• Controllers are currently unchanged
• Ellis Lab are evaluating changing the Controller class from
Controller to CI_Controller
Lazy mans Controller Upgrade
• Create a new Library file: MY_Controller.php
<?php
class Controller extends CI_Controller
{
function __construct()
{
parent::__construct();
} // construct()
} // class
?>
Lazy mans Controller Upgrade
• Create a new Library file: MY_Controller.php
<?php
class Controller extends CI_Controller
{
function __construct()
{
parent::__construct();
} // construct()
} // class
?>
Lazy mans Controller Upgrade
• Create a new Library file: MY_Controller.php
<?php
class Controller extends CI_Controller
{
function __construct()
{
parent::__construct();
} // construct()
} // class
?>
Lazy mans Controller Upgrade
• Create a new Library file: MY_Controller.php
<?php
class Controller extends CI_Controller
{
function __construct()
{
parent::__construct();
} // construct()
} // class
?>
Summary
• Plugins,Validation Library & Scaffolding have been removed
• PHP 4 support dropped
• Drivers & Packages
• Model Class renamed
• Mercurial/Bitbucket
Q & A
• @adam_griffiths
• Skype: adam-griffiths
• adam@adamgriffiths.co.uk
• www.adamgriffiths.co.uk
• www.bitbucket.org/adamgriffiths/

Contenu connexe

Tendances

Jenkins and Chef: Infrastructure CI and Automated Deployment
Jenkins and Chef: Infrastructure CI and Automated DeploymentJenkins and Chef: Infrastructure CI and Automated Deployment
Jenkins and Chef: Infrastructure CI and Automated DeploymentDan Stine
 
Picnic Software - Developing a flexible and scalable application
Picnic Software - Developing a flexible and scalable applicationPicnic Software - Developing a flexible and scalable application
Picnic Software - Developing a flexible and scalable applicationNick Josevski
 
Automating your infrastructure with Chef
Automating your infrastructure with ChefAutomating your infrastructure with Chef
Automating your infrastructure with ChefJohn Ewart
 
PHP on IBM i Tutorial
PHP on IBM i TutorialPHP on IBM i Tutorial
PHP on IBM i TutorialZendCon
 
PASS 24HOP Linux Scripting Tips and Tricks
PASS 24HOP Linux Scripting Tips and TricksPASS 24HOP Linux Scripting Tips and Tricks
PASS 24HOP Linux Scripting Tips and TricksKellyn Pot'Vin-Gorman
 
Giving back with GitHub - Putting the Open Source back in iOS
Giving back with GitHub - Putting the Open Source back in iOSGiving back with GitHub - Putting the Open Source back in iOS
Giving back with GitHub - Putting the Open Source back in iOSMadhava Jay
 
Using Chef InSpec for Infrastructure Security
Using Chef InSpec for Infrastructure SecurityUsing Chef InSpec for Infrastructure Security
Using Chef InSpec for Infrastructure SecurityMandi Walls
 
Adding Security to Your Workflow With InSpec - SCaLE17x
Adding Security to Your Workflow With InSpec - SCaLE17xAdding Security to Your Workflow With InSpec - SCaLE17x
Adding Security to Your Workflow With InSpec - SCaLE17xMandi Walls
 
Maven university-course
Maven university-courseMaven university-course
Maven university-courseOlivier Lamy
 
Drupal Deployment
Drupal DeploymentDrupal Deployment
Drupal DeploymentJeff Eaton
 
Continous delivery with Jenkins and Chef
Continous delivery with Jenkins and ChefContinous delivery with Jenkins and Chef
Continous delivery with Jenkins and Chefdefrag2
 
Chef, Devops, and You
Chef, Devops, and YouChef, Devops, and You
Chef, Devops, and YouBryan Berry
 
OSGi Feature Model - Where Art Thou - David Bosschaert (Adobe)
OSGi Feature Model - Where Art Thou - David Bosschaert (Adobe)OSGi Feature Model - Where Art Thou - David Bosschaert (Adobe)
OSGi Feature Model - Where Art Thou - David Bosschaert (Adobe)mfrancis
 
Developing Liferay Plugins with Maven
Developing Liferay Plugins with MavenDeveloping Liferay Plugins with Maven
Developing Liferay Plugins with MavenMika Koivisto
 
Introduction to Chef: Automate Your Infrastructure by Modeling It In Code
Introduction to Chef: Automate Your Infrastructure by Modeling It In CodeIntroduction to Chef: Automate Your Infrastructure by Modeling It In Code
Introduction to Chef: Automate Your Infrastructure by Modeling It In CodeJosh Padnick
 
BP-9 Share Customization Best Practices
BP-9 Share Customization Best PracticesBP-9 Share Customization Best Practices
BP-9 Share Customization Best PracticesAlfresco Software
 

Tendances (20)

Jenkins and Chef: Infrastructure CI and Automated Deployment
Jenkins and Chef: Infrastructure CI and Automated DeploymentJenkins and Chef: Infrastructure CI and Automated Deployment
Jenkins and Chef: Infrastructure CI and Automated Deployment
 
Picnic Software - Developing a flexible and scalable application
Picnic Software - Developing a flexible and scalable applicationPicnic Software - Developing a flexible and scalable application
Picnic Software - Developing a flexible and scalable application
 
Automating your infrastructure with Chef
Automating your infrastructure with ChefAutomating your infrastructure with Chef
Automating your infrastructure with Chef
 
Introduction to chef
Introduction to chefIntroduction to chef
Introduction to chef
 
PHP on IBM i Tutorial
PHP on IBM i TutorialPHP on IBM i Tutorial
PHP on IBM i Tutorial
 
PASS 24HOP Linux Scripting Tips and Tricks
PASS 24HOP Linux Scripting Tips and TricksPASS 24HOP Linux Scripting Tips and Tricks
PASS 24HOP Linux Scripting Tips and Tricks
 
Giving back with GitHub - Putting the Open Source back in iOS
Giving back with GitHub - Putting the Open Source back in iOSGiving back with GitHub - Putting the Open Source back in iOS
Giving back with GitHub - Putting the Open Source back in iOS
 
Using Chef InSpec for Infrastructure Security
Using Chef InSpec for Infrastructure SecurityUsing Chef InSpec for Infrastructure Security
Using Chef InSpec for Infrastructure Security
 
Adding Security to Your Workflow With InSpec - SCaLE17x
Adding Security to Your Workflow With InSpec - SCaLE17xAdding Security to Your Workflow With InSpec - SCaLE17x
Adding Security to Your Workflow With InSpec - SCaLE17x
 
Maven university-course
Maven university-courseMaven university-course
Maven university-course
 
Liferay maven sdk
Liferay maven sdkLiferay maven sdk
Liferay maven sdk
 
4 maven junit
4 maven junit4 maven junit
4 maven junit
 
Drupal Deployment
Drupal DeploymentDrupal Deployment
Drupal Deployment
 
Continous delivery with Jenkins and Chef
Continous delivery with Jenkins and ChefContinous delivery with Jenkins and Chef
Continous delivery with Jenkins and Chef
 
Chef, Devops, and You
Chef, Devops, and YouChef, Devops, and You
Chef, Devops, and You
 
Continuous feature-development
Continuous feature-developmentContinuous feature-development
Continuous feature-development
 
OSGi Feature Model - Where Art Thou - David Bosschaert (Adobe)
OSGi Feature Model - Where Art Thou - David Bosschaert (Adobe)OSGi Feature Model - Where Art Thou - David Bosschaert (Adobe)
OSGi Feature Model - Where Art Thou - David Bosschaert (Adobe)
 
Developing Liferay Plugins with Maven
Developing Liferay Plugins with MavenDeveloping Liferay Plugins with Maven
Developing Liferay Plugins with Maven
 
Introduction to Chef: Automate Your Infrastructure by Modeling It In Code
Introduction to Chef: Automate Your Infrastructure by Modeling It In CodeIntroduction to Chef: Automate Your Infrastructure by Modeling It In Code
Introduction to Chef: Automate Your Infrastructure by Modeling It In Code
 
BP-9 Share Customization Best Practices
BP-9 Share Customization Best PracticesBP-9 Share Customization Best Practices
BP-9 Share Customization Best Practices
 

Similaire à Ci2

habitat at docker bud
habitat at docker budhabitat at docker bud
habitat at docker budMandi Walls
 
Magento 2 Workflows
Magento 2 WorkflowsMagento 2 Workflows
Magento 2 WorkflowsRyan Street
 
Add-On Development: EE Expects that Every Developer will do his Duty
Add-On Development: EE Expects that Every Developer will do his DutyAdd-On Development: EE Expects that Every Developer will do his Duty
Add-On Development: EE Expects that Every Developer will do his Dutyreedmaniac
 
Add-On Development: EE Expects that Every Developer will do his Duty
Add-On Development: EE Expects that Every Developer will do his DutyAdd-On Development: EE Expects that Every Developer will do his Duty
Add-On Development: EE Expects that Every Developer will do his DutyLeslie Doherty
 
Introduction to Git
Introduction to GitIntroduction to Git
Introduction to Gitatishgoswami
 
Que nos espera a los ALM Dudes para el 2013?
Que nos espera a los ALM Dudes para el 2013?Que nos espera a los ALM Dudes para el 2013?
Que nos espera a los ALM Dudes para el 2013?Bruno Capuano
 
.Git for WordPress Developers
.Git for WordPress Developers.Git for WordPress Developers
.Git for WordPress Developersmpvanwinkle
 
Git installation and configuration
Git installation and configurationGit installation and configuration
Git installation and configurationKishor Kumar
 
Git for folk who like GUIs
Git for folk who like GUIsGit for folk who like GUIs
Git for folk who like GUIsTim Osborn
 
Git 101 - Crash Course in Version Control using Git
Git 101 - Crash Course in Version Control using GitGit 101 - Crash Course in Version Control using Git
Git 101 - Crash Course in Version Control using GitGeoff Hoffman
 
Open Source License Compliance with AGL
Open Source License Compliance with AGLOpen Source License Compliance with AGL
Open Source License Compliance with AGLPaul Barker
 
An introduction to maven gradle and sbt
An introduction to maven gradle and sbtAn introduction to maven gradle and sbt
An introduction to maven gradle and sbtFabio Fumarola
 
CSE 390 Lecture 9 - Version Control with GIT
CSE 390 Lecture 9 - Version Control with GITCSE 390 Lecture 9 - Version Control with GIT
CSE 390 Lecture 9 - Version Control with GITPouriaQashqai1
 
How to start developing your own ExpressionEngine addons
How to start developing your own ExpressionEngine addonsHow to start developing your own ExpressionEngine addons
How to start developing your own ExpressionEngine addonsLeevi Graham
 
From WordPress With Love
From WordPress With LoveFrom WordPress With Love
From WordPress With LoveUp2 Technology
 
GR8CONF Contributing Back To Grails
GR8CONF Contributing Back To GrailsGR8CONF Contributing Back To Grails
GR8CONF Contributing Back To Grailsbobbywarner
 

Similaire à Ci2 (20)

habitat at docker bud
habitat at docker budhabitat at docker bud
habitat at docker bud
 
Magento 2 Workflows
Magento 2 WorkflowsMagento 2 Workflows
Magento 2 Workflows
 
Add-On Development: EE Expects that Every Developer will do his Duty
Add-On Development: EE Expects that Every Developer will do his DutyAdd-On Development: EE Expects that Every Developer will do his Duty
Add-On Development: EE Expects that Every Developer will do his Duty
 
presentation
presentationpresentation
presentation
 
Add-On Development: EE Expects that Every Developer will do his Duty
Add-On Development: EE Expects that Every Developer will do his DutyAdd-On Development: EE Expects that Every Developer will do his Duty
Add-On Development: EE Expects that Every Developer will do his Duty
 
presentation
presentationpresentation
presentation
 
Introduction to Git
Introduction to GitIntroduction to Git
Introduction to Git
 
Codeinator
CodeinatorCodeinator
Codeinator
 
Que nos espera a los ALM Dudes para el 2013?
Que nos espera a los ALM Dudes para el 2013?Que nos espera a los ALM Dudes para el 2013?
Que nos espera a los ALM Dudes para el 2013?
 
.Git for WordPress Developers
.Git for WordPress Developers.Git for WordPress Developers
.Git for WordPress Developers
 
Git installation and configuration
Git installation and configurationGit installation and configuration
Git installation and configuration
 
Git for folk who like GUIs
Git for folk who like GUIsGit for folk who like GUIs
Git for folk who like GUIs
 
Git 101 - Crash Course in Version Control using Git
Git 101 - Crash Course in Version Control using GitGit 101 - Crash Course in Version Control using Git
Git 101 - Crash Course in Version Control using Git
 
CICD_1670665418.pdf
CICD_1670665418.pdfCICD_1670665418.pdf
CICD_1670665418.pdf
 
Open Source License Compliance with AGL
Open Source License Compliance with AGLOpen Source License Compliance with AGL
Open Source License Compliance with AGL
 
An introduction to maven gradle and sbt
An introduction to maven gradle and sbtAn introduction to maven gradle and sbt
An introduction to maven gradle and sbt
 
CSE 390 Lecture 9 - Version Control with GIT
CSE 390 Lecture 9 - Version Control with GITCSE 390 Lecture 9 - Version Control with GIT
CSE 390 Lecture 9 - Version Control with GIT
 
How to start developing your own ExpressionEngine addons
How to start developing your own ExpressionEngine addonsHow to start developing your own ExpressionEngine addons
How to start developing your own ExpressionEngine addons
 
From WordPress With Love
From WordPress With LoveFrom WordPress With Love
From WordPress With Love
 
GR8CONF Contributing Back To Grails
GR8CONF Contributing Back To GrailsGR8CONF Contributing Back To Grails
GR8CONF Contributing Back To Grails
 

Dernier

Activity 2-unit 2-update 2024. English translation
Activity 2-unit 2-update 2024. English translationActivity 2-unit 2-update 2024. English translation
Activity 2-unit 2-update 2024. English translationRosabel UA
 
Earth Day Presentation wow hello nice great
Earth Day Presentation wow hello nice greatEarth Day Presentation wow hello nice great
Earth Day Presentation wow hello nice greatYousafMalik24
 
Concurrency Control in Database Management system
Concurrency Control in Database Management systemConcurrency Control in Database Management system
Concurrency Control in Database Management systemChristalin Nelson
 
AUDIENCE THEORY -CULTIVATION THEORY - GERBNER.pptx
AUDIENCE THEORY -CULTIVATION THEORY -  GERBNER.pptxAUDIENCE THEORY -CULTIVATION THEORY -  GERBNER.pptx
AUDIENCE THEORY -CULTIVATION THEORY - GERBNER.pptxiammrhaywood
 
What is Model Inheritance in Odoo 17 ERP
What is Model Inheritance in Odoo 17 ERPWhat is Model Inheritance in Odoo 17 ERP
What is Model Inheritance in Odoo 17 ERPCeline George
 
4.18.24 Movement Legacies, Reflection, and Review.pptx
4.18.24 Movement Legacies, Reflection, and Review.pptx4.18.24 Movement Legacies, Reflection, and Review.pptx
4.18.24 Movement Legacies, Reflection, and Review.pptxmary850239
 
Q4-PPT-Music9_Lesson-1-Romantic-Opera.pptx
Q4-PPT-Music9_Lesson-1-Romantic-Opera.pptxQ4-PPT-Music9_Lesson-1-Romantic-Opera.pptx
Q4-PPT-Music9_Lesson-1-Romantic-Opera.pptxlancelewisportillo
 
Karra SKD Conference Presentation Revised.pptx
Karra SKD Conference Presentation Revised.pptxKarra SKD Conference Presentation Revised.pptx
Karra SKD Conference Presentation Revised.pptxAshokKarra1
 
Food processing presentation for bsc agriculture hons
Food processing presentation for bsc agriculture honsFood processing presentation for bsc agriculture hons
Food processing presentation for bsc agriculture honsManeerUddin
 
Music 9 - 4th quarter - Vocal Music of the Romantic Period.pptx
Music 9 - 4th quarter - Vocal Music of the Romantic Period.pptxMusic 9 - 4th quarter - Vocal Music of the Romantic Period.pptx
Music 9 - 4th quarter - Vocal Music of the Romantic Period.pptxleah joy valeriano
 
Influencing policy (training slides from Fast Track Impact)
Influencing policy (training slides from Fast Track Impact)Influencing policy (training slides from Fast Track Impact)
Influencing policy (training slides from Fast Track Impact)Mark Reed
 
4.16.24 Poverty and Precarity--Desmond.pptx
4.16.24 Poverty and Precarity--Desmond.pptx4.16.24 Poverty and Precarity--Desmond.pptx
4.16.24 Poverty and Precarity--Desmond.pptxmary850239
 
ENG 5 Q4 WEEk 1 DAY 1 Restate sentences heard in one’s own words. Use appropr...
ENG 5 Q4 WEEk 1 DAY 1 Restate sentences heard in one’s own words. Use appropr...ENG 5 Q4 WEEk 1 DAY 1 Restate sentences heard in one’s own words. Use appropr...
ENG 5 Q4 WEEk 1 DAY 1 Restate sentences heard in one’s own words. Use appropr...JojoEDelaCruz
 
Student Profile Sample - We help schools to connect the data they have, with ...
Student Profile Sample - We help schools to connect the data they have, with ...Student Profile Sample - We help schools to connect the data they have, with ...
Student Profile Sample - We help schools to connect the data they have, with ...Seán Kennedy
 
Active Learning Strategies (in short ALS).pdf
Active Learning Strategies (in short ALS).pdfActive Learning Strategies (in short ALS).pdf
Active Learning Strategies (in short ALS).pdfPatidar M
 
4.16.24 21st Century Movements for Black Lives.pptx
4.16.24 21st Century Movements for Black Lives.pptx4.16.24 21st Century Movements for Black Lives.pptx
4.16.24 21st Century Movements for Black Lives.pptxmary850239
 
GRADE 4 - SUMMATIVE TEST QUARTER 4 ALL SUBJECTS
GRADE 4 - SUMMATIVE TEST QUARTER 4 ALL SUBJECTSGRADE 4 - SUMMATIVE TEST QUARTER 4 ALL SUBJECTS
GRADE 4 - SUMMATIVE TEST QUARTER 4 ALL SUBJECTSJoshuaGantuangco2
 
ICS2208 Lecture6 Notes for SL spaces.pdf
ICS2208 Lecture6 Notes for SL spaces.pdfICS2208 Lecture6 Notes for SL spaces.pdf
ICS2208 Lecture6 Notes for SL spaces.pdfVanessa Camilleri
 

Dernier (20)

Activity 2-unit 2-update 2024. English translation
Activity 2-unit 2-update 2024. English translationActivity 2-unit 2-update 2024. English translation
Activity 2-unit 2-update 2024. English translation
 
Earth Day Presentation wow hello nice great
Earth Day Presentation wow hello nice greatEarth Day Presentation wow hello nice great
Earth Day Presentation wow hello nice great
 
Concurrency Control in Database Management system
Concurrency Control in Database Management systemConcurrency Control in Database Management system
Concurrency Control in Database Management system
 
AUDIENCE THEORY -CULTIVATION THEORY - GERBNER.pptx
AUDIENCE THEORY -CULTIVATION THEORY -  GERBNER.pptxAUDIENCE THEORY -CULTIVATION THEORY -  GERBNER.pptx
AUDIENCE THEORY -CULTIVATION THEORY - GERBNER.pptx
 
What is Model Inheritance in Odoo 17 ERP
What is Model Inheritance in Odoo 17 ERPWhat is Model Inheritance in Odoo 17 ERP
What is Model Inheritance in Odoo 17 ERP
 
4.18.24 Movement Legacies, Reflection, and Review.pptx
4.18.24 Movement Legacies, Reflection, and Review.pptx4.18.24 Movement Legacies, Reflection, and Review.pptx
4.18.24 Movement Legacies, Reflection, and Review.pptx
 
Q4-PPT-Music9_Lesson-1-Romantic-Opera.pptx
Q4-PPT-Music9_Lesson-1-Romantic-Opera.pptxQ4-PPT-Music9_Lesson-1-Romantic-Opera.pptx
Q4-PPT-Music9_Lesson-1-Romantic-Opera.pptx
 
Karra SKD Conference Presentation Revised.pptx
Karra SKD Conference Presentation Revised.pptxKarra SKD Conference Presentation Revised.pptx
Karra SKD Conference Presentation Revised.pptx
 
Food processing presentation for bsc agriculture hons
Food processing presentation for bsc agriculture honsFood processing presentation for bsc agriculture hons
Food processing presentation for bsc agriculture hons
 
Music 9 - 4th quarter - Vocal Music of the Romantic Period.pptx
Music 9 - 4th quarter - Vocal Music of the Romantic Period.pptxMusic 9 - 4th quarter - Vocal Music of the Romantic Period.pptx
Music 9 - 4th quarter - Vocal Music of the Romantic Period.pptx
 
FINALS_OF_LEFT_ON_C'N_EL_DORADO_2024.pptx
FINALS_OF_LEFT_ON_C'N_EL_DORADO_2024.pptxFINALS_OF_LEFT_ON_C'N_EL_DORADO_2024.pptx
FINALS_OF_LEFT_ON_C'N_EL_DORADO_2024.pptx
 
Influencing policy (training slides from Fast Track Impact)
Influencing policy (training slides from Fast Track Impact)Influencing policy (training slides from Fast Track Impact)
Influencing policy (training slides from Fast Track Impact)
 
4.16.24 Poverty and Precarity--Desmond.pptx
4.16.24 Poverty and Precarity--Desmond.pptx4.16.24 Poverty and Precarity--Desmond.pptx
4.16.24 Poverty and Precarity--Desmond.pptx
 
ENG 5 Q4 WEEk 1 DAY 1 Restate sentences heard in one’s own words. Use appropr...
ENG 5 Q4 WEEk 1 DAY 1 Restate sentences heard in one’s own words. Use appropr...ENG 5 Q4 WEEk 1 DAY 1 Restate sentences heard in one’s own words. Use appropr...
ENG 5 Q4 WEEk 1 DAY 1 Restate sentences heard in one’s own words. Use appropr...
 
Student Profile Sample - We help schools to connect the data they have, with ...
Student Profile Sample - We help schools to connect the data they have, with ...Student Profile Sample - We help schools to connect the data they have, with ...
Student Profile Sample - We help schools to connect the data they have, with ...
 
Active Learning Strategies (in short ALS).pdf
Active Learning Strategies (in short ALS).pdfActive Learning Strategies (in short ALS).pdf
Active Learning Strategies (in short ALS).pdf
 
4.16.24 21st Century Movements for Black Lives.pptx
4.16.24 21st Century Movements for Black Lives.pptx4.16.24 21st Century Movements for Black Lives.pptx
4.16.24 21st Century Movements for Black Lives.pptx
 
GRADE 4 - SUMMATIVE TEST QUARTER 4 ALL SUBJECTS
GRADE 4 - SUMMATIVE TEST QUARTER 4 ALL SUBJECTSGRADE 4 - SUMMATIVE TEST QUARTER 4 ALL SUBJECTS
GRADE 4 - SUMMATIVE TEST QUARTER 4 ALL SUBJECTS
 
YOUVE_GOT_EMAIL_PRELIMS_EL_DORADO_2024.pptx
YOUVE_GOT_EMAIL_PRELIMS_EL_DORADO_2024.pptxYOUVE_GOT_EMAIL_PRELIMS_EL_DORADO_2024.pptx
YOUVE_GOT_EMAIL_PRELIMS_EL_DORADO_2024.pptx
 
ICS2208 Lecture6 Notes for SL spaces.pdf
ICS2208 Lecture6 Notes for SL spaces.pdfICS2208 Lecture6 Notes for SL spaces.pdf
ICS2208 Lecture6 Notes for SL spaces.pdf
 

Ci2

Notes de l'éditeur

  1. Hello, I’m going to be talking to you today about CodeIgniter 2, the in development version of CodeIgniter. My name is Adam Griffiths and before I dive into my talk I wanted to go through who I am and why you should listen to me!
  2. Ok so I’m Adam Griffiths. I created and authored all of the tutorials on Programmers Voice. This was a hugely popular CodeIgniter focussed tutorial blog where I posted tutorials, articles and screencasts on CodeIgniter and supplementary subjects such as jQuery and Git. I am the guy behind AG Auth, quite possibly the eaisest Authentication Library for CodeIgniter, just extend a new Controller class to get a full authentication system with admin panel! I also created AG Asset, another simple library that enables you to manage your CSS files, images and script files and provides an easy way to pre-load CSS and JavaScript if you have a lot of files to include. Finally I am the author of CodeIgniter 1.7 Professional Development, the first advanced book on CodeIgniter covering topics such as User Authentication, Twitter oAuth, Facebook Connect, Web Services and REST, and a neat little chapter with ym tips on releasing code to the community.
  3. On with the talk. So, CodeIgniter 2. It’s a bit of a jump from 1.7.2. In this talk I’m going to take you though all of the things that have been removed (and what you should use in it’s place), everything that’s now deprecated. We’ll also look at all the changes in CodeIgniter 2 and finally all the new goodies we get to play with. I’ll also give you a few tips for upgrading your projects to CodeIgniter 2.
  4. Goodbye Scaffolding. Scaffolding was a way to easily create records in your database, kind of like a mini PHPMyAdmin. But it wasn’t a very good implementation. You would set a scaffolding key and turn it on in your controllers, but if somebody knew your key they could easily start to mess around with your data if you didn’t turn it off on a production server. Scaffolding has now been removed for CodeIgniter 2.0.0.
  5. Au revoir plugins. Now I didn’t really expect plugins to be removed without first being deprecated, but I’m not all that surprised it’s been removed either. Plugins have been removed in favour of helpers, and now many people knew what plugins were for. I know that plugins were supposed to be community created and be single purpose, they should have only one function in them. Helpers were supposed to be created by EllisLab and be more official and multi-purpose. But people used the two interchangably as they were extremely similar to each other. So if you’re still using plugins you should update these to be helpers.
  6. The Validation Class has also been removed after being deprecated since v 1.7.0. Version 1.7.0 saw the Form Validation Class being added to the framework in place of the Validation Class. Therefore you should use the more powerful Form Validation Class.
  7. PHP 4! There have been numerous forum posts, tweets, blog posts and I have even had a few emails asking when CodeIgniter was going to drop support for PHP 4. Ellis Lab have always said they will only drop support for PHP 4 when the user base becomes small enough that when the change occurs they’re not putting a considerable amount of developers out in the cold. New CodeIgniter 2 features may not support PHP 4, it might work but nobody cares. All legacy features will no longer have support for PHP 4 as of 2.1.0.
  8. Ok so a quick show of hands. How many of us here move the application directory out of the system directory before starting a project? This won’t be an issue in CI 2 as the application directory now exists in the top level alongside the system folder and the index.php front controller. I know it’s never been exactly hard to move the application directory, you literally just move it, no need to edit any settings but Ellis Lab have obviously seen that a lot of people do this anyway, and it’s always good to have clear separation so in CodeIgniter 2, we’ll be able to just jump into the code rather than spend (albeit a minute) time moving directories.
  9. Ok so onto the index.php front controller. Nothing major has been changed here but there’s a few things you might like to know. You can now store configuration values in this file. This allows you to share one application between multiple front controllers using different configuration values. Routing overrides have now been added to this file as well. This allows you to set your default controller in this file rather than your routes.php configuration file. However, using this method will limit your application to one controller, although you will still be able to call different functions in that controller.
  10. Ok so now we’re getting into the good stuff. So what’s new?
  11. We’ll kick this section off with a biggy. Drivers. Drivers are a new type of library with CodeIgniter 2.0.0. They allow you to have a parent class with any number of child classes. Children can access functions of their parent, but not their siblings. An example of a library that would take advantage of this new type of library is the Database Library.
  12. Ellis Lab have now started to host their in-development code on BitBucket, the github for mercurial hosting. Mercurial is a distributed version control system much like git. This is good for a few reasons. Firstly it’s easier to get your own code in the CodeIgniter core. Whereas it was possible before it’s much easier to issue a pull request than the older channels. It also allows the community to help squish bugs, and in a few cases a community member has been given responsibility for a few support tickets. And finally, no subversion!! I really hate SVN, so this is the best thing for me!! :)