3.2 代码规范
在目录设置好以后,我们接下来就要来规定一下代码的规范:
1.MySQL的表名需小写,如:item,car
2.模块名(Models)需首字母大写,,并在名称后添加“Model”,如:ItemModel,CarModel
3.控制器(Controllers)需首字母大写,,并在名称中添加“Controller”,如:ItemController,CarController
4.视图(Views)部署结构为“控制器名/行为名”,如:item/view.php,car/buy.php
上述的一些规则是为了能在程序中更好的进行互相的调用。接下来就开始真正的PHP MVC编程了。
3.3 重定向
将所有的数据请求都重定向 index.php 文件,在 todo 目录下新建一个 .htaccess 文件,文件内容为:
<IfModule mod_rewrite.c>
RewriteEngine On
# 确保请求路径不是一个文件名或目录
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
# 重定向所有请求到 index.php?url=PATHNAME
RewriteRule ^(.*)$ index.php?url=$1 [PT,L]
</IfModule>
这样做的主要原因有:
1.程序有一个单一的入口;
2.除静态程序,其他所有程序都重定向到 index.php 上;
3.可以用来生成利于SEO的URL,想要更好的配置URL,后期可能会需要URL路由,这里先不做介绍了。
3.4 入口文件
做完上面的操作,就应该知道我们需要做什么了,没错!在 public 目录下添加 index.php 文件,文件内容为:
<?php
// 应用目录为当前目录
define('APP_PATH', __DIR__.'/');
// 开启调试模式
define('APP_DEBUG', true);
// 网站根URL
define('APP_URL', 'http://localhost/fastphp');
// 加载框架
require './fastphp/FastPHP.php';
注意,上面的PHP代码中,并没有添加PHP结束符号”?>”,这么做的主要原因是,对于只有 PHP 代码的文件,结束标志(“?>”)最好不存在,PHP自身并不需要结束符号,不添加结束符号可以很大程度上防止末尾被添加额外的注入内容,让程序更加安全。
3.5 配置文件和主请求
在 index.php 中,我们对 fastphp 文件夹下的 FastPHP.php 发起了请求,那么 FastPHP.php 这个启动文件中到底会包含哪些内容呢?
<?php
// 初始化常量
defined('FRAME_PATH') or define('FRAME_PATH', __DIR__.'/');
defined('APP_PATH') or define('APP_PATH', dirname($_SERVER['SCRIPT_FILENAME']).'/');
defined('APP_DEBUG') or define('APP_DEBUG', false);
defined('CONFIG_PATH') or define('CONFIG_PATH', APP_PATH.'config/');
defined('RUNTIME_PATH') or define('RUNTIME_PATH', APP_PATH.'runtime/');
// 包含配置文件
require APP_PATH . 'config/config.php';
//包含核心框架类
require FRAME_PATH . 'Core.php';
// 实例化核心类
$fast = new Core;
$fast->run();







