无为清净楼资源网 Design By www.qnjia.com
第一步:入门
如何使用phpbean进行路由转发呢?下面是一个简单的使用例子。
首先,index.php是程序的单一入门,主要进行路由转发的工作。Index.php的程序代码如下:

<? 
include('startup.php');//载入启动文件 
try{ 
    $router=new Phpbean_Router();//初始化路由器 
    $router->set_path(SITE_PATH.'/app/actions');//设置控制器的目录 
    $router->dispatch();//路由转发处理 
}catch (Exception $e){ 
    echo $e; 


?> 

其中启动文件如下:

<? 
define('SITE_PATH',str_replace('\','/',dirname(__FILE__))); 
set_include_path(get_include_path().PATH_SEPARATOR.SITE_PATH.'/libs/'); 
function __autoload($filename){ 
    $filepath = SITE_PATH.'/libs/'.str_replace('_','/',$filename).'.php'; 
    if(is_file($filepath)){ 
        include($filepath); 
    } 
}?> 

然后,我们写一个action测试一下。(关于为什么选择action而不是使用controller做为控制,可以看我之前的文章逐步提升框架的性能)
比如app/actions/indexAction.php,在里面写一个测试
<? 
class indexAction extends Phpbean_Action { 

    function run(){ 
        echo 'phpbean_index page!'; 
    }     
}?> 
打开IE输入地址http://localhost:8080/phpbean/index.php/index看看结果。

第二步:获取url参数
比如说我要使用url传递参数,如何在PHPbean中实现呢?phpbean中的pathinfo支持两种获取数据方式,一种是按照关键字,一种是按照顺序(默认)。
以刚才的例子来说,在地址http://localhost:8080/phpbean/index.php/index后面加上参数http://localhost:8080/phpbean/index.php/index/1/2/3/4/
那么,使用关键字来获取url参数,使用$this->_getParam(‘1','key')。比如在indexAction的run方法中增加echo $this->_getParam(‘1','key')那么就对应输出2。注意,在phpbean中按关键字获取url参数不要求匹配配对。比如说$this->_getParam(‘1','key') 返回2, $this->_getParam(‘2','key')就会返回3.
按照次序来获取url参数应该更加方便。比如说$this->_getParam(1)就会返回1,$this->_getParam($n)就会返回第$n个参数。

第三步、Action多级目录
一般来说,程序的设计都是module->controller->action的,比如说blog->user->login。那么使用phpbean的action可以很方便进行映射。

首先,我们在app/actions下面增加blog文件夹,再在app/actions/blog/下面增加user文件夹。

现在我们来写blog->user->login这个action。首先在app/actions/blog/user/下面建立loginAction.php。里面写入

<? 
class blog_user_loginAction extends Phpbean_Action { 

    function run(){ 
        echo 'blog_user_login'; 
    } 


?> 

然后测试下http://localhost:8080/phpbean/index.php/blog/user/login/,是不是成功了呢?

那么,“如何增加一些action的公用操作呢?比如admin目录下面的所有action都要进行isadmin()检查,如何实现呢?”在phpbean中可以使用继承很方便的来实现。下面以blog->admin为例来实现。
首先,增加一个admin目录,在该目录下增加一个action基类admin.php(注意,如果不是action,那么文件命名就不要使用***Action.php来命名)

<? 
abstract class _blog_admin extends Phpbean_Action { 

    function __construct($params){ 
        parent::__construct($params); 
        echo 'admin check!'; 
    } 


?> 

然后,admin目录下的所有的action都继承与_blog_admin,而不是Phpbean_Action,这样就实现了公用操作的封装。比如说在admin目录下建立一个loginAction.php

<? 
class blog_admin_loginAction extends _blog_admin { 

    function run(){ 
        echo 'blog_admin_login'; 
    } 


?>
标签:
Php模板,Phpbean

无为清净楼资源网 Design By www.qnjia.com
广告合作:本站广告合作请联系QQ:858582 申请时备注:广告合作(否则不回)
免责声明:本站文章均来自网站采集或用户投稿,网站不提供任何软件下载或自行开发的软件! 如有用户或公司发现本站内容信息存在侵权行为,请邮件告知! 858582#qq.com
无为清净楼资源网 Design By www.qnjia.com

《魔兽世界》大逃杀!60人新游玩模式《强袭风暴》3月21日上线

暴雪近日发布了《魔兽世界》10.2.6 更新内容,新游玩模式《强袭风暴》即将于3月21 日在亚服上线,届时玩家将前往阿拉希高地展开一场 60 人大逃杀对战。

艾泽拉斯的冒险者已经征服了艾泽拉斯的大地及遥远的彼岸。他们在对抗世界上最致命的敌人时展现出过人的手腕,并且成功阻止终结宇宙等级的威胁。当他们在为即将于《魔兽世界》资料片《地心之战》中来袭的萨拉塔斯势力做战斗准备时,他们还需要在熟悉的阿拉希高地面对一个全新的敌人──那就是彼此。在《巨龙崛起》10.2.6 更新的《强袭风暴》中,玩家将会进入一个全新的海盗主题大逃杀式限时活动,其中包含极高的风险和史诗级的奖励。

《强袭风暴》不是普通的战场,作为一个独立于主游戏之外的活动,玩家可以用大逃杀的风格来体验《魔兽世界》,不分职业、不分装备(除了你在赛局中捡到的),光是技巧和战略的强弱之分就能决定出谁才是能坚持到最后的赢家。本次活动将会开放单人和双人模式,玩家在加入海盗主题的预赛大厅区域前,可以从强袭风暴角色画面新增好友。游玩游戏将可以累计名望轨迹,《巨龙崛起》和《魔兽世界:巫妖王之怒 经典版》的玩家都可以获得奖励。