·您现在的位置: 云翼网络 >> 文章中心 >> 网站建设 >> 网站建设开发 >> php网站开发 >> ci框架(一)

ci框架(一)

作者:佚名      php网站开发编辑:admin      更新时间:2022-07-23
ci框架(一)

ci目录结构

|-----system                框架程序目录      |-----core              框架的核心程序          |-----CodeIgniter.php   引导性文件          |-----Common.php    加载基类库的公共函数          |-----Controller.php    基控制器类文件:CI_Controller          |-----Model.php     基模型类文件:CI_Model          |-----Config.php    配置类文件:CI_Config          |-----Input.php     输入类文件:CI_Input          |-----Output.php    输出类文件:CI_Output          |-----URL.php       URL类文件:CI_URl          |-----Router.php    路由类文件:CI_Router          |-----Loader.php    加载类文件:CI_Loader      |-----helpers           辅助函数          |-----url_helper.php    url相关的辅助函数,如:创建url的辅助函数          |-----captcha_helper.php创建图形验证码的辅助函数      |-----libraries         通用类库          |-----Pagination.php    通用分页类库          |-----Upload.php    通用文件上传类库          |-----Image_lib.php 通用图像处理类库          |-----session.php   通用session类库      |-----language          语言包      |-----database          数据库操作相关的程序          |-----DB_active_rec.php 快捷操作类文件(ActiveRecord)      |-----fonts             字库        |-----application           项目目录      |-----core              项目的核心程序      |-----helpers           项目的辅助函数      |-----libraries         通用类库      |-----language          语言包      |-----config            项目相关的配置          |-----config.php    项目相关的配置文件             |-----database.php  数据库相关的配置文件          |-----autoload.php  设置自动加载类库的配置文件          |-----constants.php 常量配置文件          |-----routes.php    路由配置文件      |-----controllers       控制器目录          |-----welcome.php   控制器文件,继承CI_Controller      |-----models            模型目录          |-----welcome_model.php 模型文件,继承CI_Model      |-----views             视图目录          |-----welcome.php   视图模板文件,默认后缀名为.php      |-----cache             存放数据或模板的缓存文件      |-----errors            错误提示模板      |-----hooks             钩子,在不修改系统核心文件的基础上扩展系统功能      |-----third_party       第三方库      |-----logs              日志    |-----index.php             入口文件

访问形式

在\application\controllers\welcome.php中添加函数:

public function hello()    {        echo "test";   }

image

CI的访问url使用的是pathinfo,入口文件.php/控制器/动作

自己新建控制器,hello.php:

<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');    class Hello extends CI_Controller     {        public function sayHello($name)        {            echo $name,",Hello World";        }    }?>

image

注意:

  • 方法名以下划线开头的是不能访问成功的,只能间接访问。
  • 只能访问public修饰的方法。
  • 尽量不要与类名相同的方法,会当作构造函数。

加载视图

application\views\view_test.php或者application\views\view\test.php(这中做法主要是方便同一类型的视图可以放在同一个文件夹下方便管理)

<html><head></head><body>test_ci_hello_world</body></html>

控制器:

public function addView(){    $this->load->view("view_test");}

或者:

public function addView2(){    $this->load->view("view/test");}

效果:

image

image

分配变量

把数据从控制器中传到视图中,控制器:

public function addView()        {            $this->load->vars("title","value");            $list = array(            array('id'=>1,'name'=>'jack','email'=>'[email protected]'),            array('id'=>2,'name'=>'jack2','email'=>'[email protected]'),            array('id'=>3,'name'=>'jack3','email'=>'[email protected]')            );            $data['new_title']="标题";            $data['list']=$list;            $this->load->vars($data);                        $this->load->view("view_test");        }

视图:

<html>    <head>    </head>    <body>        <h1><?php echo $title;?></h1>        <h1><?php echo $new_title;?></h1>        test_ci_hello_world        <table>            <?php foreach($list as $item):?>            <tr>                <td><?=$item['id']?></td>                    <td><?=$item['name']?></td>                <td><?=$item['email']?></td>                            </tr>            <?php endforeach;?>        </table>    </body></html>

效果:

image

load网站进去,控制器:

public function addView()        {            $this->load->vars("title","value");            $list = array(            array('id'=>1,'name'=>'jack','email'=>'[email protected]'),            array('id'=>2,'name'=>'jack2','email'=>'[email protected]'),            array('id'=>3,'name'=>'jack3','email'=>'[email protected]')            );            $data['new_title']="标题";            $data['list']=$list;            $this->load->vars($data);                        $this->load->view("view_test");            $this->load->view("footer");        }

视图view_test:

<html>    <head>    </head>    <body>        <h1><?php echo $title;?></h1>        <h1><?php echo $new_title;?></h1>        test_ci_hello_world        <table>            <?php foreach($list as $item):?>            <tr>                <td><?=$item['id']?></td>                    <td><?=$item['name']?></td>                <td><?=$item['email']?></td>                            </tr>            <?php endforeach;?>        </table>

视图footer:

CI_hello_world!!!</body></html>

显示效果:

image

uri参数获取

控制器:

public function getUri($id,$name,$year)        {            echo "id--->".$id."---name--->".$name."---year--->".$year."<br />";            echo "segment(1)--->".$this->uri->segment(1)."<br />";            echo "segment(2)--->".$this->uri->segment(2)."<br />";            echo "segment(3)--->".$this->uri->segment(3)."<br />";            echo "segment(4)--->".$this->uri->segment(4)."<br />";            echo "segment(5)--->".$this->uri->segment(5)."<br />";        }

效果:

image

加载数据库

这个操作在MVC中是放到model中做的。

在\application\config\database.php中配置数据库参数,注意dbPRefixswap_pre这两个参数。在php中写的是前缀,会默认当作swap_pre,然后放到数据库中的时候会转成dbprefix,但是最好两个都弄成一样的。

还有$active_group,默认是default,如果要连接两个数据库,把d