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