php框架学习CI(CodeIgniter)的经验分享

    xiaoxiao2021-04-14  56

    首先我们必须知道CodeIgniter是什么?

    CodeIgniter是一个应用程序框架,是一个为用PHP编写网络应用程序提供的工具包

    CodeIgniter使用严格的M-V-C模型,这样可以更好地使表现层和逻辑层分离。

    CodeIgniter生成干净的URL 

    CodeIgniter URL 在默认情况下,CodeIgniter中的URL被设计成对搜索引擎和人类友好,不同于使用标准“查询字符串”方法的是,CodeIgniter使用基于段的方法:

    example.com/news/article/my_article

     

    example.com/class/function/ID

    第一段表示的控制器类

    第二段表示调用类中的函数或者方法

    第三以及更多的字段表示的是传递给控制器的参数,如ID或者其他各种变量。

     

    删除index.php文件

    默认情况下,index.php 文件将被包含在你的URL种:

    example.com/index.php/class/function/ID

    可以通过.htaccess文件来设置一些简单的规则来删除它,使用“negative”方法将非指定内容进行重定向:

    RewriteEngine on RewriteCond $1 !^(index\.php|images|robots\.txt) RewriteRule ^(.*)$ /index.php/$1 [L]

     

    什么是控制器

    简而言之,一个控制器就是一个类文件,是以一种能够和URL关联在一起的方式来命名的。

    example.com/index.php/blog/

    这个例子中CodeIgniter加载是一个名为blog.php 的控制器。

    <?php

             Class Blog extends CI_Controller{

             Function__construct(){

             Parent::__construct();

    }

    Function index(){

             Echo“Hello world”;

    }

    }

    ?>

    把以上代码写到blog.php中,放入application/controllers/文件夹下,现在使用类似这样的URL访问你的站点

    Example.com/index.php/blog/ 你就会看到Helloworld

    注意:类名首字母必须大写

    上例中用到的方法名是index()。如果URL的第二部分为空的话,会默认载入”index”方法,也可以将地址写成这样来访问。

     

    定义默认控制器

    当你的网站没有设置URI或者直接从更目录访问的时候,Codeigniter会加载默认的控制器,打开application/config/routes.php 文件来设置默认控制器

    $router[‘default_controller’]=’Blog’;

     

     

    视图

    首先创建一个视图,在application/views/文件夹下建立一个blogview.php的文件。

    <html>

    <head>

    <title>My Blog</title>

    </head>

    <body>

    <h1>Welcome to my blog</h1>

    </body>

    </html>

     

    然后是加载视图

    blog.php控制器中的方法中用一下方法进行加载视图

    $this->load->view(‘blogview’);

    可以加载多个视图,并且可以传递一些动态数据

    例如一下代码,在blog.php控制器中

    function show() {

               $data['title']="My Real Title";

               $data['heading']="My Real Heading";

               $this->load->view('blogview',$data);

           }

    view中就可以这样去使用

    <html>

    <head>

    <title><?php echo$title;?></title>

    </head>

    <body>

    <h1><?php echo$heading?></h1>

    </body>

    </html>

    循环输出数据大代码:

    <ul>

    <?php foreach($todo_list as $item):?>

    <li><?php echo$item;?></li>

    <?php endforeach;?>

    </ul>

     

    什么是模型?

    模型是专门用来和数据库打交道的php类,例如,假设想做一个Blog,你可以写一个模型类,里面包含插入、更新、删除blog数据的方法。

    下面写一个简单的例子

     

    在数据库中建立一个表,表名位user

     

    字段

    备注

    Id

    编号,主键自动增长

    Username

    姓名 varchar

    Phone

    电话 varchar

     

    models中建立一个名字为user.php的模型类。下面是具体代码

    <?php

             Class User extends CI_Model{

                       Function__construct(){

                                Parent::__construct();

    }

    }

    ?>

    注意model类必须继承超级modelCI_Model

     

    下面是数据库的配置:在application/config/database.php下修改代码如下

    $db['default']['hostname'] = 'localhost';

    $db['default']['username'] = 'root';

    $db['default']['password'] = '******';

    $db['default']['database'] = 'dbname';

    $db['default']['dbdriver'] = 'mysql';

    $db['default']['dbprefix'] = '';

    $db['default']['pconnect'] = TRUE;

    $db['default']['db_debug'] = TRUE;

     

    在控制器中加载这个配置以及model类,在controllers下定义控制器类user.php

    <?php

             ClassUser extends CI_Controller{

             Function __construct(){

                       Parent::__construct();

    }

    Function add(){

             $this->load->database();//加载数据库配置

             $this->load->model(‘user’);//加载模型类,其实就是再制定要对哪个表进行操作

             $data = array(‘username’=>’zhangsan’,’phone’=>’123456789’);

             $this->db->insert(‘user’,$data);//快速插入数据的操作

    }

    }

    ?>

    辅助函数是帮助我们完成特定任务的函数,每个辅助函数文件仅仅是一些函数的集合。CodeIgniter默认没有载入辅助函数文件。所以如果想使用辅助函数,就必须先载入它,一旦载入,辅助函数将全局可用,可以在controllerviews中使用它们,辅助函数文件,一般保存在system/helpers或者application/helpers文件夹中,CodeIgniter将会先在application/helpers下寻找对应的辅助函数文件,如果该目录不存在或者目录下没有对应的辅助函数文件,CI才会载入system/helpers下的辅助函数文件。

     

    载入辅助函数,$this->load->helper(‘name’);例如要载入文件名为url_helper.php,载入形式如下

    $this->load->helper(‘url’);

    一次可以载入多个辅助函数,参数要用数组形式

    $this->load->helper(array(‘helper1’,’helper2’,……));

     

    使用CodeIgniter类库

    所有的类库文件存放在system/libraries文件夹。大多数情况下你需要预先在controller中初始化后才能使用它们。

    $this->load->library(‘class_name’);

    加载类库时,一次也可以加载多个类库。

    注意:程序员还可以自定义自己的类库

     

    使用CodeIgniter适配器,适配器是一种特殊的库,它有一个父类和任意数量的子类,子类可以访问其父类元素,但不能访问其兄弟类的元素,在你的控制器中,适配器为类库提供了一种优雅的语法,一次类库会就此获益甚至会需要分解成离散的类。

    适配器的源文件放在system/library目录下。

     

    基准测试类

    CodeIgniter有一个总是有效的基准测试类,能够用来计算两个标记点的时间差。

    测试基准类可以在控制器,视图或者模型中使用,用法如下:

    标记一个开始点

    标记一个结束点

    运行elapsed_time函数显示结果

    $this->benchmark->mark('code_start'); // Some code happens here $this->benchmark->mark('code_end'); echo $this->benchmark->elapsed_time('code_start', 'code_end');

    转载请注明原文地址: https://ju.6miu.com/read-670049.html

    最新回复(0)