CodeIgniter剖析(1)

         下载CodeIgniter1.7并解压缩后,将index.phpsystem目录拷贝到web服务器的根目录下,这样就完成了CodeIgniter的安装。

         安装完后可以看下system目录下的结构。Application是你自己项目存放文件的目录(简单来说,控制器,模型和视图都在这里)。System目录下其他文件夹是CodeIgniter自身的代码,比较常用的有libraries等。

         要建立一个网站,一些常用的配置是首先需要做的.config文件夹中包含了一些为网站设定基本配置的文件,打开 config.php,可以看到有许多配置项,例如

$config['base_url']用来配置网站的根目录

         CI是一个实现了MVC模式的轻量级PHP框架,最重要的三个文件夹就是application目录下的models,viewscontrollers这三个子目录。

         用户的所有访问请求首先被index.php这个路由器所拦截并进行处理,比如请求链接是:http://localhost/index.php/welcome/inde,并且你有一个控制器名为welcome,那么index.php这个路由器就会调用welcome这个控制器。

         我们可以来看下welcome控制器的代码

 class Welcome extends Controller

 {

 

         function __constructor()

         {

                   parent::Controller();       

         }

        

         function index()

         {

                   $this->load->view('welcome_message');

         }

}

         首先是定义控制器类Welcome,它继承自Controller类。CI要求控制器类名称首字母大写,但文件名是小写。构造函数中你可以做一些初始化的工作,比如调用第三方类库或模型,或者定义类的成员变量。父类Controller的代码在/system/libraries/Controller.php中。

         再回到对用户请求处理那部分来,index.php不仅要知道请求该由哪个控制器来处理,而且要知道是控制器里的哪个函数,这就是/welcome/index的原因,路由器会在welcome控制器中查找一个名为index的函数。

         我们来看index函数,它里面只是用CI的装载函数(this->load->view)载入一个视图(“welcome_view”)

实际上welcome_view视图指向的是system/application/views/welcome_view.php这个文件,控制器可以定义相应的变量,并传递到视图中进行显示。

         如果请求中没有指明具体的控制器,CI会将页面重定向到一个系统默认的控制器中进行处理,这个默认控制器可以在config/routes.php文件中进行设置,

$route['default_controller'] = "welcome";

如果你不设定默认值,那么请求会被定向到’404 not found’页面去的。此外,如果没有指定函数,那么/index会被默认选中。

         你可能会注意到CI有两组辅助函数,类库,一组在application文件夹中,另一组放在system文件夹中。两者的区别在于,system文件夹中的代码是CI的核心代码,所有项目都会使用,如果升级到一个新版本CI,那么这些文件会被修改,而那些在application文件夹中的代码只能用于一个应用程序,升级新版本CI时,不会被覆盖。当你装载一个辅助函数或类库时,CI会首先在system/application/libraries文件夹中查找,找不到的情况下再到system/libraries下查找。

         设计一个视图一般需要三个步骤,1)编写一个视图页面 2)编写一个形式表 3)修改c onfig文件以指定样式表的位置。 

posted on 2011-02-11 11:14  Phinecos(洞庭散人)  阅读(2042)  评论(0编辑  收藏  举报

导航