zend framework教学 入口文件的设定

ZF学习中,最让新学员头痛的事就是入口文件的设定,我结合我在php成都培训中心教学的一些心得,做了下面的标准入口学习代码,希望对大家有所帮助。代码有详细的注释,应该能看懂了

 

<?php
//echo "哈哈,回来了吧";
//exit();

/**
 * 本例演示仅用zend 实现完整的MVC
 */
$startTime=microtime(true);
define('ROOT',$_SERVER['DOCUMENT_ROOT']);
$libraryPath=ROOT."/library";
$zendPath=$libraryPath."/Zend";
$zendControllerPath=$libraryPath."/Zend/Controller";
set_include_path(
PATH_SEPARATOR . $libraryPath .
PATH_SEPARATOR . $zendPath .
PATH_SEPARATOR . $zendControllerPath
);    
//echo get_include_path();

/**
 * 引入所需要的类库文件
 */
require_once './library/Zend/Controller/Front.php';
require_once './library/Zend/Db.php';
require_once './library/Zend/Db/Table.php';
require_once './library/Zend/Config/Ini.php';
require_once './library/Zend/Acl.php';
require_once './library/Zend/Acl/Role.php';
require_once './library/Zend/Acl/Resource.php';
//也可以用下面的方法来加载
//Zend_Loader::loadClass('Zend_Config_Ini');
/**
 * 用单例模式创建一个前端控制器
 */
$front=Zend_Controller_Front::getInstance();

 

$front->setControllerDirectory('./application/zendmvc/controllers','zendmvc');
//$front->setControllerDirectory('./application/app2/controllers','app2');
/**
 * 正确的使用setControllerDirectory
 * 用数组存储每个模块的路径及模块名,此模块名前是url与控制器类的名称的组成部份
 */  

$apps=array(
'default'=>'./application/index/controllers',
'zendmvc'=>'./application/zendmvc/controllers'
);

$ACL=array('admin'=>'news','admin'=>'app1','user'=>'app2');
/**
 * 我们可以按以上方式设定'app11'=>'./application/app1/controllers',但对应的控制器中的类名也必需设定为app11_indexController
 * 目录可以不修改
 */
//$front->setControllerDirectory($apps);
/**
 * 或是使用addControllerDirectory来添加模块
 */
$front->addControllerDirectory('./application/index/controllers','default');
$front->addControllerDirectory('./application/zendmvc/controllers','zendmvc');
$front->addControllerDirectory('./application/zendacl/controllers','zendacl');
// * www.xxx.com/模块名/控制器名/动作名/参数列表
//$front->addControllerDirectory('./application/index/controllers','index');

/**
 * 或是采用更方便的方式来进行,直接进行模块所在目录的设定
 * 采用这种方法,您只需要在application(或是别的你所设定的应用所在的目录)下建立您的
 * 每个模块所属的子文件夹后,addModuleDirectory会自动遍历该目录,并调用addControllerDirectory
 * 来设定每个控制器的目录,使大的工程文件在设定操作上更为方便
 */
//$front->addModuleDirectory('./application');

/**
 * 设定抛出异常,在调试期间最好打开
 * 另要注意,如果打开,则默认的errorController不起作用
 */
$front->throwExceptions(true);
/**
 * 开始分发
 */
$front->dispatch();
//require_once('application/app1/controller/userController.php');

/**
 * 访问方法
 * www.xxx.com/模块名/控制器名/动作名/参数列表
 * 模块名必须要在index文件中通过setControllerDirectory或是addControllerDirectory定义
 * 控制器文件名必须按 控制器名+Controller.php来命名
 * 控制器类名必须按 模块名+Controller来命名
 * 动作函数名必须按  动作名+Action来命名
 * 对应的view层下的scripts中,每一个控制器对应一个同名的文件夹
 * 每一个动作有一个对应的 按动作名+.phtml命名的页面文件
 */
$endTime=microtime(true);
echo "<br>";
echo ($endTime-$startTime)*1000;

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值