php ci开发基础应用

1.搭建ci项目,http://codeigniter.org.cn/p 到这个网站上下载一个ci框架,目前我用的是3.0.0。(网站里有帮助说明)

2.删除一些没有的文件与目录之后,如下图:

研发主要是在application目录下,system目录为框架目录。public目录是我新建的,主要用于放js、css、images。

3.ci基础配置,css\js\images引用,在config目录下的config.php里添加了一个系统变量:

$config['asset_url'] = "http://127.0.0.1/";   //js\css\images访问地址,区分

4.设置默认访问controller,config/routes.php:

$route['default_controller'] = 'home';        //默认controller名称
$route['404_override'] = '';                 //404
$route['translate_uri_dashes'] = TRUE;

 5.控制器继承基类的方法。在core目录下新建一个MY_Controller.php文件(博客里可直接下载),代码如下:

<?php 
class MY_Controller extends CI_Controller{
	function  __construct(){
		parent::__construct();
	}
}

/**
 * 后台控制器基类方法,只要继承AdminBase
 * $this->uri->segment(1)  获取控制器名称
 * $this->uri->segment(2)  获取action名称
 */
class AdminBase extends MY_Controller{
	public $skip_filter = array();   //array( 'controller_name', 'controller_name' )  不用登录的页面
	public $data = array();
	function __construct() {
		parent::__construct();
                $this->data['infos'] = array();    //传递给前台页面的变量,变量名为infos
		$this->load->library('session');
		$this->load->library('layout');     //加载模板文件 libraries目录下
		if( !is_login() ){
			redirect('login/index');  //如果未登录跳转到登录页
		}
		
	}
	
	/**过滤方法*/
	public function is_login(){
		if( in_array($this->uri->segment(1), $skip_filter) ){  return true; }   //无需登录的控制器
		if( $this->session->has_userdata('user_id') ){   //判断是否登录
			//方法, 判断用户是否被封
			return true;
		}else{
			return false;
		}
	}
		
}
 
/*** 前面控制器基类方法,只要继承HomeBase**/
class HomeBase extends MY_Controller{
	function  __construct(){
		parent::__construct();
	}
}

 6.1怎么引用布局模板,libraries目录下新建一个Layout.php文件,博客最低下有下载。注意要修改的地方:

$this->layout = 'layouts/' . $layout;   // 'layouts/' layouts为views目录,主要用来放模板的

 6.2layouts主要是放整个页面的模板:

以下划线开头的,我们为局部代码;以字母开头的,我们是整个页面的布局;(特点:不需重复调用公共文件,修改公共文件方便,布局清晰等)。

index.php代码如下:

 <div class="warp">
    
    	<?php 
				$this->load->view('layouts/_top_menu');    //头部开始
				$this->load->view('layouts/_left_menu');   //左边菜单开始
		?>
        <!--右边框架开始-->
        <div class="right_c">
            <div class="nav-tip" onclick="javascript:void(0)">&nbsp;</div>
        </div>
        
        <div class="Conframe">
            <?php 
				$this->load->view('layouts/_location'); 
				$this->load->view('layouts/_notice'); 
				echo $content_for_layout;    //如果引用此模板,在开发的时候最终的内容是在这边(相当于占位符)
			?>
        </div>
        <!--右边框架结束-->

        <div class="bottom_c">xxx 版权所有</div>
    </div>

6.3 控制器中怎么用:

//$this->load->view('info/index', $this->data);    //未用模板文件 
$this->layout->view('info/index', $this->data);  //引用模板的写法 $this->data为传到view层能用的变量,如:$this->data = array('infos'=>array(), 'page'=>1) 表示:有两个变量,infos一个,page一个

猜你喜欢

转载自zyn-zyn.iteye.com/blog/2231805