如何添加控制器?
在Lib/Action新增控制器:ProductAction.class.php:
class ProductAction extends Action{
public function index(){
echo 'product模块 , index方法';
}
}
然后通过url访问: 这是一个非常重要的概念:
url调度模式:我们在访问网站时使用不同的方式ur访问方式
tp支持四种访问方式:URL_MODEL控制参数。
1.普通模试:默认支持
www.tp.com/index.php?m=Product&a=index&id=1
m模块名
a动作
2.pathinfo模(tp默认调度模式):
http://www.tp.com/index.php/Product/index/id/1/name/zhangsan
product模块名
index方法名
id是参数
1为值 。。。 一般来说,后面的参数成对出现。以/分隔。
3. rewrite模式,即重写。 用于页面静态化
省略入口文件:
http://www.tp.com/Product/index/id/1/name/zhangsan
设置方法:
1、httpd.conf在配置文件中加载mod_rewrite.so模块
2、AllowOverride None将None改为All (注意不要和 #Options Indexes同时出现,否则无权访问)
3、确保URL_MODEL设置为2
4.将以下内容保存为.htaccess将文件放入入口文件的同级目录
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ index.php/$1 [QSA,PT,L]
4.兼容模式:
如果不支持web服务器不支pathinfo或rewrite但是我们还是想用模式,可以考虑用兼容模式
http://www.tp.com/index.php?s=Product/index/id/1/name/zhangsan
或者:http://www.tp.com/?s=Product/index/id/1/name/zhangsan
在配置文件中,一个URL_MODEL0123分别表示。默认支持,这是怎么回事?
无论哪种模式支持普通模式,在提交表格时都可以看到差异。
路径分隔符:URL_PATHINFO_DEPR' => '-', // PATHINFO在模式下,参数之间的分割符号
http://www.tp.com/?s=Product-index-id-1-name-zhangsan
控制器中的空操?这样可以简化url,利用它的一个特点。
系统找不到指定的执行方法。
将以下方法添加到控制器中:
/*
* $name 表示请求的方法
*/
public function _empty($name){
echo '请求页面无法显示'.$name;
}
5、 空模块
空模块的概念是,当系统找不到指定的模块名称时,系统会尝试定位空模块(EmptyAction),我们可以用这个机制来定制错误的页面URL的优化。
l EmptyAction
MODULE_NAME
现在我们试着要求一个url
http://localhost/tp/index.php/Student/shanghai
因为我们没有系统StudentAction所以这个控制器会报错
我们在项目中创建了一个名称EmptyAction以后,如果系统找不到相应的模块,它会自动定位Action中,如果我们在这个类中再添加一个叫_empty这样,所有来自的方法都可以被屏蔽url的错误
5、 项目分组
在大型项目中,大型项目通常由几个小项目组成。例如,它可能是由
前台项目、后台项目、会员博客、论坛
l config.php
l APP_GROUP_LIST 分组列表
l DEFAULT_GROUP 默认分组
在我们的项目中,始分组:
1)前台项目 Home
2)后台项目 Admin
http://www.bkjia.com/PHPjc/477233.htmlwww.bkjia.comtruehttp://www.bkjia.com/PHPjc/477233.htmlTechArticle如何添加控制器? 在Lib/Action新增控制器:ProductAction.class.php: ?php class ProductAction extends Action{ public function index(){ echo product模块 , ind...
本技术文章来自互联网。如果您无意侵犯您的权益,请点击此处反馈版权投诉
本文系统来源:php中文网