URL规则

URL 被设计成对搜索引擎和人类友好。 不同于使用标准的 “查询字符串” 方法,MACMS 使用基于段的方法。如果遵循模型-视图-控制器模式,那么 URI 中的每一段通常表示下面的含义:example.com/class/function/ID

第一段表示要调用的控制器 类 ;

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

第三段以及后面的段代表传给控制器的参数,如 ID 或其他任何变量;

URI 类 和 URL 辅助函数 包含了一些函数可以让你更容易的处理 URI 数据,另外,你的 URL 可以通过 URI 路由 进行重定向从而得到更大的灵活性。


控制器
控制器是整个应用的核心,它们决定了 HTTP 请求将被如何处理。控制器就是一个类文件,是以一种能够和 URI 关联在一起的方式来命名的。
比如:example.com/index.php/blog/
上例中MACMS 将会尝试查询一个名为 Blog.php 的控制器并加载它。当控制器的名称和 URI 的第一段匹配上时,它将会被加载。

视图
一个视图其实就是一个 Web 页面,或者页面的一部分,像页头、页脚、侧边栏等。 实际上,视图可以很灵活的嵌在另一个视图里,然后这个视图再嵌在另一个视图里,等等。视图不是直接被调用的,它必须通过 控制器 来加载。在 MVC 框架里, 控制器扮演着类似于指挥的角色,它专门负责读取特定的视图。使用在 控制器 页面中创建的控制器例子,让我们再添加一个视图。

使用你的文本编辑器,创建一个 blogview.php 文件,代码如下:

<html>

<head>

    <title>My Blog</title>

</head>

<body>

   

Welcome to my Blog!

</body>

</html>

然后保存到你的 application/views/ 目录下。

使用下面的方法来加载指定的视图:

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

name 参数为你的视图文件名。


模型
模型对于那些想使用更传统的 MVC 模式的人来说是可选的。
模型是专门用来和数据库打交道的 PHP 类。例如,假设你使用 MACMS 管理一个博客,那么你应该会有一个用于插入、更新以及获取博客数据的模型类。

使用类库
所有的系统类库都位于 system/libraries/ 目录下,大多数情况下,在使用之前, 你要先在 控制器 中初始化它,使用下面的方法:
$this->load->library('class_name');
'class_name' 是你想要调用的类库名称,例如,要加载 表单验证类库,你可以这样做:
$this->load->library('form_validation');
一旦类库被载入,你就可以根据该类库的用户指南中介绍的方法去使用它了。
另外,多个类库可以通过一个数组来同时加载。
例如:
$this->load->library(array('email', 'table'));

URI 路由
URL 字符串和它对应的控制器中类和方法是一一对应的关系。 URL 中的每一段通常遵循下面的规则:example.com/class/function/id/
假设你希望你的 URL 变成下面这样:example.com/product/1/
URL 的第二段通常表示方法的名称,但在上面的例子中,第二段是一个商品 ID , 为了实现这一点,MACMS 允许你重新定义 URL 的处理流程。
设置你自己的路由规则:
路由规则定义在 application/config/routes.php 文件中,在这个文件中你会 发现一个名为 $route 的数组,利用它你可以设置你自己的路由规则。 在路由规则中你可以使用通配符或正则表达式。
一个典型的使用通配符的路由规则如下:$route['product/:num'] = 'catalog/product_lookup';

网页缓存
MACMS 可以通过缓存页面来达到更好的性能。尽管 MACMS 已经相当高效了,但是网页中的动态内容、主机的内存 CPU 和数据库读取速度等因素直接影响了网页的加载速度。 依靠网页缓存, 你的网页可以达到近乎静态网页的加载速度,因为程序的输出结果 已经保存下来了。
针对到每个独立的页面进行缓存,并且你可以设置每个页面缓存的更新时间。 当页面第一次加载时,缓存将被写入到 application/cache 目录下的文件中去。 之后请求这个页面时,就可以直接从缓存文件中读取内容并输出到用户的浏览器。 如果缓存过期,会在输出之前被删除并重新刷新。
将下面的代码放到任何一个控制器的方法内,可以开启缓存:
$this->output->cache($n);
其中 $n 是缓存更新的时间(单位分钟)。
上面的代码可以放在方法的任何位置,它出现的顺序对缓存没有影响。

安全
MACMS 内部的安全特性:
URI 安全 MACMS 严格限制 URI 中允许出现的字符,以此来减少恶意数据传到你的应用程序的可能性。
display_errors 在生产环境下,一般都是通过将 display_errors 标志设置为 0 来禁用 PHP 的错误报告。 这可以阻止原生的 PHP 错误被显示到页面上,错误中可能会包含潜在的敏感信息。
magic_quotes_runtime在系统初始化期间, magic_quotes_runtime 指令会被禁用, 这样当你在从数据库中获取数据时就不用再去除反斜线了。
XSS 过滤 MACMS 自带有一个 XSS 过滤器,这个过滤器可以查找一些 XSS 的常用技术, 例如向你的数据中嵌入恶意的 JavaScript 脚本,劫持 cookie 信息或其他一些技术。
CSRF 保护 CSRF(Cross-Site Request Forgery,跨站请求伪造)是攻击者骗取受害者 在不知情的情况下提交请求的攻击方式。MACMS 提供了对 CSRF 的保护,会在每个非 GET HTTP 请求时自动触发。

PHP 开发规范
文件应该保存为 Unicode(UTF-8)编码格式,不要使用 字节序标记(BOM),和 UTF-16 和 UTF-32 不一样, UTF-8 编码格式的文件不需要指定字节序。而且 BOM 会在 PHP 的输出中产生副作用, 它会阻止应用程序设置它的头信息。另外,所有的换行符应该使用 Unix 格式换行符(LF)。

点赞(0) 打赏

评论列表 共有 0 条评论

暂无评论
立即
投稿

微信公众账号

微信扫一扫加关注

发表
评论
返回
顶部