1. 文件.htaccess的重写机制
如果 apache 开启了重写机制,则在 apache 启动时,会去找网站的根目录有没有 .htaccess 文件,如果有则按 .htaccess 文件中的规则,没有则默认。
在 apache 的底层代码中有如下方法:
所以读取的是网站根目录,命名为 .htaccess 的文件
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} -s [OR]
RewriteCond %{REQUEST_FILENAME} -l [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^.*$ - [NC,L]
RewriteRule ^.*$ index.php [NC,L]
2. 在php项目中,我们通过对url的重写,可以完成对整个项目只有一个入口
新建一个项目举列:
接着配置虚拟主机。
没有设置入口文件之前:
随便可以访问哪个文件夹下面的文件
创建 .htaccess 文件,.ht 表示 apache。
windows 文件不能以 . 开头,在linux下表示隐藏文件。
1.先创建好,在另存为。
#启用重写机制
RewriteEngine On
#启用重写机制的规则是什么,后面为正则表达式,后面为定位到的文件
RewriteRule ^.*$ enter.php
#启用重写机制
RewriteEngine On
#启用重写机制的规则是什么,后面为正则表达式,后面为定位到的文件
#可以写多个规则,从上到下依次匹配。以.php结尾的到enter.php,以.html结尾的到enter2.php去。
RewriteRule ^.*$\.php enter.php
RewriteRule ^.*$\.html enter2.php
接着,在apache中启用rewirte机制。
可以了:
用自己创建的项目,完成初始化工作,并调用某个类。
创建一个类:
在入口文件中调用类:
所以,Zend 中,index.php 调用 Action Controller ,拆分Url, 用反射机制调用类。
3. 如何增加MVC
3.1 增加控制器
3.2 增加视图
步骤:
<?php
//做个父类,专门供其他的controller来继承,如果有需要链接数据库,则继承这个类
class BaseController extends Zend_Controller_Action
{
public function init()
{
$url = constant('APPLICATION_PATH') . DIRECTORY_SEPARATOR . 'configs' . DIRECTORY_SEPARATOR . 'application.ini';
$dbconfig = new Zend_Config_Ini($url,'mysql');
$db = Zend_Db::factory($dbconfig->db);
$db->query('SET NAMES UTF8');
Zend_Db_Table::setDefaultAdapter($db);
}
}