【ci框架】精通CodeIgniter框架视频教程即将录制。。。

一、大纲

1、codeigniter框架的授课内容安排2、codeigniter框架的简介|—–关于框架的概念|—–使用CI框架的好处|—–为什么选择CI框架3、codeigniter框架的具体安装步骤|—–官网下载:|—–httpd.conf配置文件中rewrite重写机制的开启|—–httpd.conf配置文件虚拟主机的开启|—–httpd-vhosts.conf配置文件中虚拟主机的配置|—–hosts文件中添加DNS映射4、codeigniter框架的目录结构分析|—–框架目录结构分析|—–项目部署5、codeigniter框架中URL各部分的分析及简单的工作原理:域名/入口文件/模块名/控制器/方法/参数列表6、codeigniter框架详细执行流程分析:如果没有模块文件夹的话,则为:域名/入口文件/控制器/方法/参数列表7、codeigniter框架中config.php配置文件的分析8、codeigniter框架中使用rewrite重写机制隐藏index.php单一入口文件9、codeigniter框架中控制器|—–控制器的创建位置|—–控制器的命名规范|—–控制器文件的分目录管理|—–方法的命名规范:1、不能以list命名 2、方法名与类名不同名|—–方法中如何获取GET方式提交过来的数据,如:$username = $this->input->get_post('username', true);//获取post或get方式提交过来的数据|—–方法中如何获取POST方式提交过来的数据,如:$username = $this->input->post('username', true);$username = $this->input->get_post('username', true);10、codeigniter框架中视图|—–视图的创建位置:appcation/views/ 目录下|—–视图的命名规范:login.php login.html|—–如何在控制器中载入视图模板文件:$this->load->view("login"); $this->load->view("login.html");|—–如何在控制器中给视图模板文件传递数据:$this->load->view("login.html",$data);//extract函数|—–视图模板文件的分目录管理:$this->load->view("admin/category/addcategory.html");11、codeigniter框架中的模型|—–模型的创建位置:application/models 目录下|—–模型的命名规范:不区分大小写,建议首字母大写|—–如何在控制器中载入模型(自动加载和手动加载):$this->load->model("user_model");|—–模型文件的分目录管理:$this->load->model("admin/user_model");12、codeigniter框架中如何扩展控制器、模型|—–基控制器的扩展:class Common extends CI_Controller{}|—–基模型的扩展:class Model extends CI_Model{}13、codeigniter框架中数据库操作|—–连接mysql数据库的配置:application/config/database.php|—–如何在模型中连接mysql数据库(自动载入和手动载入):$this->load->database();|—–使用普通查询操作完整数据的增删改查操作:1、$this->db->query($query);//结果集|—–使用快捷操作类完成数据的增删改查操作:将sql语句的拼接放在成员方法中进行|—–用户管理系统-管理员的查询|—–用户管理系统-管理员的添加|—–用户管理系统-管理员的修改|—–用户管理系统-管理员的删除14、codeigniter框架中辅助函数|—–辅助函数的位置:application/helpers 目录 或 system/helpers 目录|—–如何在控制器中载入辅助函数:$this->load->helper("url");//载入url_helper.php文件|—–自定义辅助函数|—–辅助函数的扩展|—–辅助函数的载入机制:首先考虑载入application/helpers 目录下的文件,再考虑载入system/helpers 目录下的文件|—–用户管理系统-页面的跳转:header("location:".site_url("admin/login/"));//创建一个url,,并跳转15、codeigniter框架中的配置文件|—–配置文件的位置:application/config/ 目录下|—–如何在CI项目的控制器中载入配置文件(手动载入和自动载入):$this->config->load("pagination");|—–如何自定义配置文件:application/config/pagination.php 配置项变量名必须是 $config['配置项']|—–配置文件中配置项的命名规范:$config['配置项']|—–如何动态给配置项设置值:$this->config->set_item("配置项","配置项值");|—–如何将分页配置写到配置文件中|—–如何将配置文件合并:$this->config->load("pagination",true);//参数2:true16、codeigniter框架中的通用类库|—–通用类库的位置:application/libraries/ 目录 system/libraries/ 目录|—–如何在ci项目的控制器中载入通用类库:$this->load->library("upload");//文件上传类库的载入|—–通用类库的载入机制:优先考虑载入application/libraries/ 目录下类库,其次考虑载入 system/libraries 目录下类库|—–分页类库的载入(定制分页风格):$this->load->library("pagination");|—–用户管理系统-管理员列表页分页功能的完成17、codeigniter框架与smarty模板引擎的无缝整合|—–如何将第三方类库:smarty模板引擎整合到CI项目中来|—–如何在控制器中载入smarty模板引擎:$this->load->library("tp");18、codeigniter框架中完成用户登录系统|—–用户登录系统-session类库的使用|—–用户登录系统-cookie类库的使用|—–用户登录系统-使用captache辅助函数完成图像验证码的创建|—–用户登录系统-验证码原理|—–用户登录系统-session登录|—–用户登录系统-cookie登录|—–用户登录系统-增加公共操作控制器(扩展系统核心控制器类文件)|—–用户登录系统-cookie的三种使用方式|—–php原生态语法结构中设置cookie的函数|—–ci框架的cookie辅助函数|—–input类库19、codeigniter框架与ueditor编辑器的无缝整合|—–整合步骤20、codeigniter框架与fckeditor编辑器的无缝整合|—–整合步骤21、codeigniter框架中完成无限级分类下拉菜单|—–无线递归方式完成(比较复杂一点,效率低,不推荐使用)|—–path方式完成(最为简便的方式,几行代码就可搞定)22、codeigniter框架中使用jquery完成省市区三级联动功能23、codeigniter框架中完成商品分类管理模块|—–商品分类管理模块-添加商品分类|—–商品分类管理模块-添加商品子分类|—–商品分类管理模块-修改商品分类|—–商品分类管理模块-商品分类列表|—–商品分类管理模块-商品分类的删除|—–商品分类管理模块-商品分类排序|—–文件上传类库的使用|—–图像处理类库的使用|—–商品分类管理模块-添加分类banner|—–如何将文件上传和图像处理的有关配置放到配置文件中|—–商品分类管理模块-分类banner列表|—–商品分类管理模块-编辑分类banner|—–商品分类管理模块-banner的启用和禁用|—–商品分类管理模块-分类banner排序24、codeigniter框架完成一个权限管理系统|—–权限管理系统-数据表的创建|—–权限管理系统-业务分析|—–权限管理系统-操作权限管理|—–权限管理系统-添加操作权限|—–权限管理系统-修改操作权限|—–权限管理系统-删除操作权限|—–权限管理系统-模块管理|—–权限管理系统-添加模块|—–权限管理系统-修改模块|—–权限管理系统-删除模块|—–权限管理系统-角色管理|—–权限管理系统-添加角色并为角色设置权限|—–权限管理系统-为当前角色添加操作权限|—–权限管理系统-为当前角色删除操作权限|—–权限管理系统-修改角色|—–权限管理系统-删除角色|—–权限管理系统-添加管理员的同时为管理员设置多个角色|—–权限管理系统-添加管理员角色|—–权限管理系统-修改管理员角色|—–权限管理系统-删除管理员角色|—–权限管理系统-当前管理员角色列表25、显示最后一条查询的sql语句:主要用于在连贯操作时,检测拼接的sql语句是否正确echo $this->db->last_query();//如:select * from pt_users where uid>10 order by datetime desc limit 0,1026、CI_DB_pdo_driver PDO数据库驱动类$this->db->affected_rows();//影响记录数,区分:$this->db->get("order_master")->num_rows();//获取到的结果集行数$this->db->count_all("order_master");//对于某个表不带条件的查询$this->db->count_all_results();//快捷操作类方法,适用于带条件的查询$this->db->insert_id();//新插入记录的id$this->db->trans_enabled = true;//开启事务(默认是false,所以在使用事务前必须将其赋值为true)$this->db->trans_begin();//开始事务$this->db->trans_rollback();//事务回滚$this->db->trans_commit();//提交事务$this->db->trans_status();//事务状态 true 或 falseCI_DB_driver驱动类中的方法27、CI_DB_mysql_driver mysql数据库驱动类$this->db->affected_rows();//影响记录数,区分:$this->db->get("order_master")->num_rows();//获取到的结果集行数$this->db->count_all("order_master");//对于某个表不带条件的查询$this->db->count_all_results();//快捷操作类方法,适用于带条件的查询$this->db->insert_id();//新插入记录的id$this->db->trans_enabled = true;//开启事务(默认是false,所以在使用事务前必须将其赋值为true)$this->db->trans_begin();//开始事务$this->db->trans_rollback();//事务回滚$this->db->trans_commit();//提交事务$this->db->trans_status();//事务状态 true 或 falseCI_DB_driver驱动类中的方法28、CI_DB_mysqli_driver mysqli数据库驱动类$this->db->affected_rows();//影响记录数,区分:$this->db->get("order_master")->num_rows();//获取到的结果集行数$this->db->count_all("order_master");//对于某个表不带条件的查询$this->db->count_all_results();//快捷操作类方法,适用于带条件的查询$this->db->insert_id();//新插入记录的id$this->db->trans_enabled = true;//开启事务(默认是false,所以在使用事务前必须将其赋值为true)$this->db->trans_begin();//开始事务$this->db->trans_rollback();//事务回滚$this->db->trans_commit();//提交事务$this->db->trans_status();//事务状态 true 或 falseCI_DB_driver驱动类中的方法29、model模型类中引用其它model模型类(如:category_model)和数据库(如:product)public function __construct() {parent::__construct();$this->product_db = $this->load->database('product', true);//通过model基类中的__get()方法选择性的引入CI超级对象中已加载类库,如:"load"$this->load->model('category_model');}30、控制器中引用其它模型类(如:category_model)和数据库(如:product)public function __construct() {parent::__construct();$this->product_db = $this->load->database('product', true);$this->load->model('category_model');}31、helper函数中引用CI超级对象的方法function get_order_status_by_order($order_status){$CI =& get_instance();//获取CI超级对象$CI->load->Model('order_model');//通过CI超级对象可以载入任何模型}32、缓存驱动的加载方式$this->load->driver('cache', array('adapter' => 'memcached'));//加载缓存驱动或缓存适配器,当前为memcached缓存;注意:CI框架只支持memcached,不支持memcache,windows操作系统下只有memcache扩展$this->load->driver('cache', array('adapter' => 'file'));//加载缓存驱动或缓存适配器,当前为file缓存$this->load->driver('cache', array('adapter' => 'redis'));//加载缓存驱动或缓存适配器,当前为redis缓存$this->load->driver('cache', array('adapter' => 'apc', 'backup' => 'file'));//优先选择apc缓存,file文件缓存作为替代方案;如果服务器不支持apc缓存时,选择file文件缓存33、静态html模板文件中如何动态加载区域块内容//index.html文件<div include="/index.php/pub/common_nav" rel="include"></div>//jquery代码$(document).ready(function () {$('[rel=\&;include\&;]').each(function (e) {var t = $(this),url = t.attr('include') + location.search;url && $.get(url, function (data) {//url:'/index.php/pub/common_nav't.html(data);})})})34、拼接insert sql语句/** *一维关联数组,拼接sql语句 *$data['username']="admin"; *$data['password']="12345"; *$data['sex']=""; */function add_user( $data ) {if ( empty($data) || !is_array($data) ) {return false;}foreach ($data as $key => $value) {if ( $value === '') {unset($data[$key]);//删除数组中值为空的元素}}$cols = array_keys($data);//获取数组所有的键名$values = array_values($data);//获取数组所有的值$cols_str = implode(",", $cols);//将数组所有的键名拼接成一个字符串$values_str = "'".implode("','", $values)."'";//将数组所有的键值放到单引号中//拼接sql:INSERT INTO user (username,password) VALUES ('admin','12345');$sql = "INSERT INTO user ({$cols_str}) VALUES ({$values_str})";//拼接sql$this->db->query($sql);}35、拼接insert sql语句/** *一维关联数组,拼接sql语句 *$data['username']="admin"; *$data['password']="12345"; *$data['sex']=""; */function add_user( $data ) {if ( empty($data) || !is_array($data) ) {return false;}foreach ($data as $key => $value) {if ( $value === '') {unset($data[$key]);//删除数组中值为空的元素}}$cols = array_keys($data);//获取数组所有的键名$values = array_values($data);//获取数组所有的值foreach($values as $k=>$val){$values[$k]="'".$val."'";//将所有的键值放到单引号中}$cols_str = implode(",", $cols);//将数组所有的键名拼接成一个字符串$values_str = implode(",", $values);//将数组所有的键值拼接成一个字符串//拼接sql:INSERT INTO user (username,password) VALUES ('admin','12345');$sql = "INSERT INTO user ({$cols_str}) VALUES ({$values_str})";//拼接sql$this->db->query($sql);}36、拼接update sql语句/** * 编辑用户信息 * $userid=1; * $data['username']='admin'; * $data['password']='123'; */function edit_user(userid, $data) {if ( empty($data) || !is_array($data) ) {return;}foreach ($data as $key => $value) {$str .= isset($str)?", {$key} = '{$value}'":"{$key} = '{$value}'";}//拼接sql:UPDATE user SET username='admin',password='123' WHERE addr_id = '1';$sql = "UPDATE user SET {$str} WHERE addr_id = '{$addr_id}'";$this->db->query($sql);}37、数据库快捷操作类常用方法/*** 查询订单** @param $query*/public function get_order_list($query, $offset = 0, $limit = 20) {if (is_array($query) && !empty($query)) {foreach ($query as $key => $val) {if (is_array($val)) {$this->order_db->where_in($key, $val);} else {$this->order_db->where($key, $val);}}}$this->order_db->order_by('updatetime', 'desc');$this->order_db->order_by('id', 'desc');if (!$limit) {$query = $this->order_db->get('order');} else {$query = $this->order_db->get('order', $limit, $offset);}if ($query->num_rows() > 0) {return $query->result_array();}return array();}38、拼接select sql语句function get_user_list($cols=array("username","password")) {$col=implode(",",$cols);//查询的列属性$sql = "SELECT $col FROM user ORDER BY addr_id DESC";$this->db->query($sql)->result_array();}39、CI框架中cookie的三种使用方式//第一种设置cookie的方式:采用php原生态的方法设置的cookie的值setcookie("user_id",$user_info['user_id'],86500);setcookie("username",$user_info['username'],86500);setcookie("password",$user_info['password'],86500);//echo $_COOKIE['username'];//第二种设置cookie的方式:通过CI框架的input类库设置cookie的值$this->input->set_cookie("username",$user_info['username'],60);$this->input->set_cookie("password",$user_info['password'],60);$this->input->set_cookie("user_id",$user_info['user_id'],60);//echo $this->input->cookie("password");//适用于控制器//echo $this->input->cookie("username");//适用于控制器//echo $_COOKIE['username'];//在模型类中可以通过这种方式获取cookie值//echo $_COOKIE['password'];//在模型类中可以通过这种方式获取cookie值//第三种设置cookie的方式:通过CI框架的cookie_helper.php辅助函数库设置cookie的值set_cookie("username",$user_info['username'],60);set_cookie("password",$user_info['password'],60);set_cookie("user_id",$user_info['user_id'],60);//echo get_cookie("username");40、array_merge()合并数组函数的使用<?phpheader("content-type:text/html;charset='utf-8'");$arr1=array("13012"=>array("brand_id"=>2,"category_id"=>3));$arr2=array("13012"=>array("goods_id"=>3576,"goods_name"=>"sanyang"));/** *echo "<pre>";print_r(array_merge($arr1,$arr2)); *结果: *Array *( *[0] => Array //索引重置为数字索引 *( *[brand_id] => 2 *[category_id] => 3 *) *[1] => Array *( *[goods_id] => 3576 *[goods_name] => sanyang *) *) */ /** *echo "<pre>";print_r(array_merge($arr1['13012'],$arr2['13012'])); *结果: * Array *( *[brand_id] => 2 *[category_id] => 3 *[goods_id] => 3576 *[goods_name] => sanyang *) */?>41.json格式数据:public function json(){$data[0]['goods_id']=3567;$data[0]['goods_name']="sanyang";$data[1]['goods_id']=3567;$data[1]['goods_name']="sanyang";echo json_encode($data);exit;/*** 结果:* [* {*"goods_id": 3567,*"goods_name": "sanyang"* },* {*"goods_id": 3567,*"goods_name": "sanyang"* }*]*/}42.联合查询 left join//controller控制器$query = array('product_id' => $product_id,'activity.status' => array(1, 2, 0),'activity.is_del' => 0);$query['activity.activity_id<>'] = $activity_id;$goods_list = $this->activity_model->get_activity_good_mapping($query, 0, 0);//model模型public function get_activity_good_mapping($query,$offset = 0, $limit = 0,$get=''){$this->db = $this->activity_db;if (is_array($query) && !empty($query)) {foreach ($query as $key => $val) {if (is_array($val)) {$this->db->where_in($key, $val);} else {$this->db->where($key, $val);}}}$this->db->from('activity_goods');$this->db->join('activity', 'activity_goods.activity_id = activity.activity_id','left');if (!$limit) {} else {$query = $this->db->limit($limit, $offset);}$query = $this->db->get();if ($query->num_rows() > 0) {return $query->result_array();}return array();}

二、部分截图如下:

三、数据库操作类之间的继承关系(区分数据库普通操作类和数据库快捷操作类),如图所示:

孤独是为了孤独背后的解脱,孤独的过程,就是一个寻找真爱的过程。

【ci框架】精通CodeIgniter框架视频教程即将录制。。。

相关文章:

你感兴趣的文章:

标签云: