介绍
CodeIgniter是一个精干的PHP Web应用程序框架,它是非常强大且易于使用。它提供了一组库和帮助函数,以允许人们更快地开发他们的应用程序。为此,它使用面向对象编程(OOP)技术和模型 - 视图 - 控制器(MVC)方法来将表示与逻辑分离。此外,CodeIgniter使用Clean URL避免没有人喜欢的那些丑陋的查询字符串填充的URL。 本文假设您已经在您的开发环境上安装了CodeIgniter,并进行了初始数据库和URL配置。您可以咨询
本教程大约迅速让你设置以获取更多信息。
模型 - 视图 - 控制器(MVC)方法
MVC编程方法意在将表示与逻辑分开。这意味着您可以拥有没有太多PHP脚本的网页,因为它在其他文件中保持独立。当开发人员和设计人员都在一个应用程序上工作时,它是特别有用的,后者有一个更容易创建前端部分的时间。 在CodeIgniter中,Models和Controllers基本上是你必须声明的PHP类,尽管从默认的CI扩展。它们保存在单独的文件中(每个控制器或模型都有自己的文件)。另一方面,视图是简单的HTML页面(扩展名为.php),它构建页面并且只包含最少的PHP代码 - 通常仅限于打印变量和运行循环(取决于您使用的模板引擎)。如果需要,您甚至可以在其他视图中添加视图。 您可以尝试将模型视为重脚本发生的地方 - 数据库查询,计算等。视图是服务器(网页)显示信息的位置。然后Controller是中介 - 它路由来自客户端的HTTP请求,利用模型并加载必要的视图来呈现结果。很简单。 在CodeIgniter中使用模型不是必需的,但最好。如果你不使用它们,你最终会使用大量的代码混乱你的Controller方法,然后更难管理它。一切都取决于你的应用程序的大小。
路由
所以你有一个控制器使用模型来执行一些操作,并使用视图显示一些信息。但是这些信息如何被客户端调用?换句话说,CodeIgniter如何处理URL? 很简单。假设您已经遵循了中提到的URL配置步骤
前面的教程 ,你知道的网址是建立以下列方式(去除难看
的index.php段后):
http://www.example.com/[controller-class]/[controller-method]/[arguments]
这意味着,在基本URL(
example.com )而来的类名,后跟一个方法(类函数)的名称,然后传递给这个函数的参数。如果函数有更多的参数,这些在URL中以斜杠分隔。这是一个非常好的和易于理解的结构。 此外,您有一些高级路由选项,以免本标准。假设您有一个简单的应用程序,面向前端的站点只使用一个控制器和方法。你可以使得相应的Controller方法是当用户将浏览器指向基本URL时调用的默认函数。此外,您可以创建一些规则,在基本URL表示此方法的参数后传递的任何内容。要做到这一点,打开并编辑位于
应用程序/配置/文件夹中的文件
routes.php文件 。 使用默认的CodeIgniter安装,您应该在该文件中看到以下内容:
$route['default_controller'] = "welcome";
该
default_controller设置这是被默认如果没有获得基URL后通过所谓的控制器。更改此以反映Controller的名称:
$route['default_controller'] = "your_controller";
您保存此文件,然后定位到你的基地址后
,your_controller
指数()方法应该被调用。这是在URL中请求控制器但未指定方法时调用的默认方法。现在,通过添加默认情况下要调用的方法,再次编辑它:
$route['default_controller'] = "your_controller/your_method";
现在,如果你浏览到你的基地址
,your_controller将调用
your_method。 为了完成我们着手做虽然,我们需要另一行添加到
routes.php文件文件,只要你设置
default_controller线下:
$route['(:any)'] = 'your_controller/your_method/$1';
这将确保,如果你的基础URL之后添加的东西,它不会被视为一个控制器而是驻留在
your_controller一个参数
your_method。保存文件并测试出来看看。您不必担心必须在URL中传递控制器名称和方法。您可以直接在基本URL之后直接指定参数。这里有一堆变化,你可以玩弄一些复杂的路线。
注意:如果你想知道的路由规则之间的冲突,笨读从上到下和服务器请求的第一个匹配的路由规则。
图书馆和助手
CodeIgniter配备了很多库和帮助函数,使您的生活更容易开发您的应用程序。但与许多其他解决方案不同,整个框架仍然很轻,因为它们不是从一开始就加载。您可以根据需要在应用程序中自己加载它们。 例如,要使用控制器中的数据库库(或类),您可以使用这个简单的行以任何您需要的方法加载它:
$this->load->database();
不过,您也可以选择自动加载库和助手。这意味着应用程序将从头开始包含它们,因此您不必在各种控制器中单独加载它们。 数据库类和URL帮助器是一个库和帮助器的好例子,它们在自动加载时经常使用它们。首先有一个非常强大的
活动记录与数据库参与而第二具有输出链接或加载各种URL一些有用的功能格局。 自动加载以上,在
应用程序/配置/文件夹中打开
autoload.php,并在那里你找到这行:
$autoload['libraries'] = array();
用。。。来代替:
$autoload['libraries'] = array('database');
数组需要包含您需要自动加载的库类的名称。每个库必须是数组中的一个项。 对于帮助者,您需要以相同的方式将助手名称添加到此数组中。替换为:
$autoload['helper'] = array();
与
$autoload['helper'] = array('url');
保存文件后,当应用程序加载时,这些库和助手将随处可用。然后,如果要扩展框架,您还可以定义自己的库。
结论
CodeIgniter是非常强大的工具,有许多方法来利用其能力;因此,很难在一个地方覆盖一切。但是,这些是在开始之前需要了解的一些最重要的概念。在下一个教程中,您将看到如何应用所有这些并创建一个查询数据库并向浏览器显示信息的简单应用程序的示例。