SlideShare a Scribd company logo
Codeigniter的一些事儿
• 分享:程亚飞 [MikeChing]
• cyf5513@gmail.com
• http://chengyafei.cn
Codeigniter的一些事儿 Part 1
2011.07
一,简 介 Synopsis
Codeigniter的一些事儿
分 享 提 高 凝 聚 进 步
CodeIgniter 最开始是由 Rick Ellis 开发的,他曾经是一个摇滚音
乐家,现在是一名程序员。
当年由于 Ellis 未能找到一个简单的 PHP 框架,健壮、易于使用、
文档完整,包含建立一个完整应用需要的所有工具,并且有一个以浏
览器为基础的界面,使用普通用户权限就能安装。没有别的原因,就
是“市场需要”这个单一的原因促使我想开发这样一个框架产品。
简而言之,CodeIgniter 是一套给 PHP 网站开发者使用的应用程序
开发框架和工具包.来自Ruby on Rails的灵感启发他们创造了一个PHP
框架,并且将框架的概念引入到网络社区的一般意识中。
-------------》以上信息自网络整理
CBSI.Pchome&KDS From cheng.yafei
二,Why we use it ?!
团队合作:
1.coding style{(几乎)统一的风格:配置,调用,方式}
2.目录结构{文件不会乱扔,随便引用!}
3.上述种种带来的易于维护,方便扩展等优点
快速开发:
1:内置模块:上传,验证,图像处理……
2:社区热度…文档,社区丰富.
3:开源带来的安全性
4:代码精简等优点(下页介绍)
Codeigniter的一些事儿
分 享 提 高 凝 聚 进 步
CBSI.Pchome&KDS From cheng.yafei
Example_1
之前我们这样
$name = $_GET[‘name’]; ???!!!!
这样结束了吗?NO!!!
验证,判断……
现在我们这样->
$name = $this->input->get(‘name’,TRUE);
哇,直接过滤XSS和
SQL injection
之前我们这样
$connection = mysql_connect(“XXX",“XXX",“XXX");
mysql_select_db(“XXX", $connection);
$result = mysql_query (“XXX", $connection);
while ($row = mysql_fetch_array($result))
{
foreach ($row as $value)
print "{$value[‘xxx’]} ";
}
现在我们这样->
$this->load->database(‘xxx');
$query = $this->db->get(‘xxx');
foreach ($query->result() as $row)
{
print $row->xxx;
}
Example_2 字符数更少、
代码更直观、
其他比如 压缩文件,发送邮件
等等,都可以使用框架内置的
简化开发量。并使得你的代码
很容易被 接管 的人所管理。
三,结构 Structure
配置文件: 自动加载,数据库配置,路由设置……
Demo示例
Codeigniter的一些事儿
分 享 提 高 凝 聚 进 步
CBSI.Pchome&KDS From cheng.yafei
控制器
代码库,自定义扩展
Model
视图层 模板页面
四,配置&操作 Config
举例 {实例demo} 
1:配置文档配置
base_url : application/config/config.php $config['base_url'] = 'http://localhostt/';
路由设置 : application/config/routes.php $route['default_controller'] = "card";
自动加载 : application/config/autoload.php $autoload['helper'] = array('url','form');
数据库配置 :application/config/database.php
……
2:上传类配置{单例模式.上传代码demo示例}
3:验证类配置
Codeigniter的一些事儿
分 享 提 高 凝 聚 进 步
CBSI.Pchome&KDS From cheng.yafei
实例
五,常见问题 Q
1:CodeIgniter 支持 $_GET
2:URL重写 去掉 index.php
3:分页问题
4:头尾分离:传统/模板类/layout
5:分页问题
6:parser与view区别
。。。。。。。。。。
扩展->图表:Pchart
Codeigniter的一些事儿
分 享 提 高 凝 聚 进 步
CBSI.Pchome&KDS From cheng.yafei
实例
注 意 Tips
CBSI.Pchome&KDS From cheng.yafei
@ $this->load->view('demo',$data); 此处$data名可为任意变量名
@ CI 核心是单例模式的,只能实例化一个实例{图片上传案例demo}
@ LOAD后会记录的,再次LOAD时,如果已经LOAD的话就返回上次
LOAD的实例
@ 模板分离 {1:layout;2:library扩展;3:***HMVC}
。。。。。。
疑问&建议 Tips
CBSI.Pchome&KDS From cheng.yafei
@ model间耦合性的问题
@ 数据库语句 原生OR框架语言---》根据语句要求分析
@ 建议:hmvc {Hierarchical-Model-View-Controller}。。。。。。
F&Q
1) 控制器里面写的header对应view里面有效果么..{设置编码,输出,IE默认
UTF-8,有时候jquery ajax 不起作用}
2)若是要在view里面要传递一个二维数组那么 我就要先放在一个三维数组里再传?
3)load时候相当于是new了一个对应的类?有用到单例模式的思想么
4)要写个js时候 还是用echo "<script>....</script>";来写么
5)数据库连接配置 读取 基本是放在构造函数里?
6) view里面用麻花代码?{HTML,PHP混写}
7)还有 对应的 css文件是以 控制器的路径寻找?
JUST DO IT !!!
Rick Ellis
Thank You!
E-mail :
cheng.yafei@staff.pchome.net
cyf5513@gmail.com
c-yafei@163.com
SNS :
http://www.facebook.com/chengyafei
https://twitter.com/mikeching1990
http://weibo.com/cyfcn
Site :
http://chengyafei.cn

More Related Content

PPT
2011 php技术高峰论坛演讲.黄波
PDF
2021 MOPCON - 行動化解決方案的技術選型, 交給 Line Bot 來搞定
PDF
HTML5 生态系统和应用架构模型
PDF
CodeIgniter 2.0.X
PDF
Introduction to CodeIgniter
PPT
学习 CodeIgniter
PDF
Introduction to MVC of CodeIgniter 2.1.x
PDF
Phpconf 2011 introduction_to_codeigniter
2011 php技术高峰论坛演讲.黄波
2021 MOPCON - 行動化解決方案的技術選型, 交給 Line Bot 來搞定
HTML5 生态系统和应用架构模型
CodeIgniter 2.0.X
Introduction to CodeIgniter
学习 CodeIgniter
Introduction to MVC of CodeIgniter 2.1.x
Phpconf 2011 introduction_to_codeigniter
Ad

Codeigniter分享

  • 1. Codeigniter的一些事儿 • 分享:程亚飞 [MikeChing] • cyf5513@gmail.com • http://chengyafei.cn Codeigniter的一些事儿 Part 1 2011.07
  • 2. 一,简 介 Synopsis Codeigniter的一些事儿 分 享 提 高 凝 聚 进 步 CodeIgniter 最开始是由 Rick Ellis 开发的,他曾经是一个摇滚音 乐家,现在是一名程序员。 当年由于 Ellis 未能找到一个简单的 PHP 框架,健壮、易于使用、 文档完整,包含建立一个完整应用需要的所有工具,并且有一个以浏 览器为基础的界面,使用普通用户权限就能安装。没有别的原因,就 是“市场需要”这个单一的原因促使我想开发这样一个框架产品。 简而言之,CodeIgniter 是一套给 PHP 网站开发者使用的应用程序 开发框架和工具包.来自Ruby on Rails的灵感启发他们创造了一个PHP 框架,并且将框架的概念引入到网络社区的一般意识中。 -------------》以上信息自网络整理 CBSI.Pchome&KDS From cheng.yafei
  • 3. 二,Why we use it ?! 团队合作: 1.coding style{(几乎)统一的风格:配置,调用,方式} 2.目录结构{文件不会乱扔,随便引用!} 3.上述种种带来的易于维护,方便扩展等优点 快速开发: 1:内置模块:上传,验证,图像处理…… 2:社区热度…文档,社区丰富. 3:开源带来的安全性 4:代码精简等优点(下页介绍) Codeigniter的一些事儿 分 享 提 高 凝 聚 进 步 CBSI.Pchome&KDS From cheng.yafei
  • 4. Example_1 之前我们这样 $name = $_GET[‘name’]; ???!!!! 这样结束了吗?NO!!! 验证,判断…… 现在我们这样-> $name = $this->input->get(‘name’,TRUE); 哇,直接过滤XSS和 SQL injection
  • 5. 之前我们这样 $connection = mysql_connect(“XXX",“XXX",“XXX"); mysql_select_db(“XXX", $connection); $result = mysql_query (“XXX", $connection); while ($row = mysql_fetch_array($result)) { foreach ($row as $value) print "{$value[‘xxx’]} "; } 现在我们这样-> $this->load->database(‘xxx'); $query = $this->db->get(‘xxx'); foreach ($query->result() as $row) { print $row->xxx; } Example_2 字符数更少、 代码更直观、 其他比如 压缩文件,发送邮件 等等,都可以使用框架内置的 简化开发量。并使得你的代码 很容易被 接管 的人所管理。
  • 6. 三,结构 Structure 配置文件: 自动加载,数据库配置,路由设置…… Demo示例 Codeigniter的一些事儿 分 享 提 高 凝 聚 进 步 CBSI.Pchome&KDS From cheng.yafei 控制器 代码库,自定义扩展 Model 视图层 模板页面
  • 7. 四,配置&操作 Config 举例 {实例demo}  1:配置文档配置 base_url : application/config/config.php $config['base_url'] = 'http://localhostt/'; 路由设置 : application/config/routes.php $route['default_controller'] = "card"; 自动加载 : application/config/autoload.php $autoload['helper'] = array('url','form'); 数据库配置 :application/config/database.php …… 2:上传类配置{单例模式.上传代码demo示例} 3:验证类配置 Codeigniter的一些事儿 分 享 提 高 凝 聚 进 步 CBSI.Pchome&KDS From cheng.yafei 实例
  • 8. 五,常见问题 Q 1:CodeIgniter 支持 $_GET 2:URL重写 去掉 index.php 3:分页问题 4:头尾分离:传统/模板类/layout 5:分页问题 6:parser与view区别 。。。。。。。。。。 扩展->图表:Pchart Codeigniter的一些事儿 分 享 提 高 凝 聚 进 步 CBSI.Pchome&KDS From cheng.yafei 实例
  • 9. 注 意 Tips CBSI.Pchome&KDS From cheng.yafei @ $this->load->view('demo',$data); 此处$data名可为任意变量名 @ CI 核心是单例模式的,只能实例化一个实例{图片上传案例demo} @ LOAD后会记录的,再次LOAD时,如果已经LOAD的话就返回上次 LOAD的实例 @ 模板分离 {1:layout;2:library扩展;3:***HMVC} 。。。。。。
  • 10. 疑问&建议 Tips CBSI.Pchome&KDS From cheng.yafei @ model间耦合性的问题 @ 数据库语句 原生OR框架语言---》根据语句要求分析 @ 建议:hmvc {Hierarchical-Model-View-Controller}。。。。。。
  • 11. F&Q 1) 控制器里面写的header对应view里面有效果么..{设置编码,输出,IE默认 UTF-8,有时候jquery ajax 不起作用} 2)若是要在view里面要传递一个二维数组那么 我就要先放在一个三维数组里再传? 3)load时候相当于是new了一个对应的类?有用到单例模式的思想么 4)要写个js时候 还是用echo "<script>....</script>";来写么 5)数据库连接配置 读取 基本是放在构造函数里? 6) view里面用麻花代码?{HTML,PHP混写} 7)还有 对应的 css文件是以 控制器的路径寻找?
  • 12. JUST DO IT !!! Rick Ellis
  • 13. Thank You! E-mail : cheng.yafei@staff.pchome.net cyf5513@gmail.com c-yafei@163.com SNS : http://www.facebook.com/chengyafei https://twitter.com/mikeching1990 http://weibo.com/cyfcn Site : http://chengyafei.cn