Yaf常用框架常用方法

Yaf框架常用系统函数

控制器,路由相关

  • 获取当前请求类型;
$this->getRequest()->getMethod();
获取当前请求的类型, 可能的返回值为GET,POST,HEAD,PUT,CLI等.

  • 获取当前请求参数
//获取POST请求参数
$this->getRequest()->getPost($name,$default)
$name       要获取的参数名
$default    参数不存在数时设置的默认值,不是空而是不存在

//获取GET请求参数
$this->getRequest()->getQuery($name)
$name参数名称,不设置参数默认获取所有GET传参包括URI

//获取cookie
$this->getRequest()->getCookie($name)
$name参数名称,不设置参数默认获取所有的cookie

//获取server相关信息,和$_SERVER几乎相同
$this->getRequest()->getServer($name)
$name参数名称,不设置参数默认获取所有的cookie

//获取当前所有的路由传参,注意是路由传参,但不包括GET传参
//所谓路由传参为URI之后的如:name/liu/sex/nan/addr/beijign
$this->getRequest()->getParams(无参数)

//获取指定路由传参
$this->getRequest()->getParam($name, $default);
$name参数名称
$default    参数不存在数时设置的默认值,不是空而是不存在


  • 获取当前控制器中传递的所有参数
$this->getRequest()->getParams();

获取当前请求中的所有路由参数, 路由参数不是指$_GET或者$_POST, 而是在路由过程中, 路由协议根
据Request Uri分析出的请求参数.

比如, 对于默认的路由协议Yaf_Route_Static, 路由如下请求URL: http://www.domain.com/
module/controller/action/name1/value1/name2/value2/ 路由结束后将会得到俩个路由参数,
name1和name2, 值分别是value1, value2.

  • 为当前请求,设置路由参数.
$this->getRequest()->setParam('userName', 111);
可以通过$this->getRequest()->getParams();获取
  • 获取控制器名称
$this->getRequest()->getControllerName();
  • 获取方法名
$this->getRequest()->getActionName();
  • 获取当前控制器所属的模块名
$this->getRequest()->getModuleName();
或 $this->getModuleName();
获取当前控制器所属的模块名
  • 获取当前请求是否为CLI/GET/POST请求
$this->getRequest()->isCli();
$this->getRequest()->isGet();
$this->getRequest()->isPost();
  • 获取当前的响应实例(还没研究透,不知道干嘛的);
    $this->getResponse();
    获取当前的请求实例

视图相关

  • 获取当前的视图引擎
$this->getView();
  • 初始化视图引擎
$this->initView();
初始化视图引擎, 因为Yaf采用延迟实例化视图引擎的策略, 所以只有在使用前调用此方法, 视图引擎才会被
实例化
  • 更改模板目录
$this->setViewPath('绝对路径');
更改视图模板目录, 之后Yaf_Controller_Abstract::render就会在整个目录下寻找模板文件
  • 获取当前模板目录
$this->getViewPath();

  • 渲染模板,得到渲染结果
例如:

# 禁用模板自动渲染
Yaf_Dispatcher::getInstance()->disableView();
# 初始化模板
$this->initView();
# 得到渲染模板
 echo $this->render('index.phtml');
 
 虽然这个结果并不能用, 原因是读了一层路径, 但是算是一种思维拓展吧.
  • 禁止渲染模板
Yaf_Dispatcher::getInstance()->disableView();
  • 禁止自动渲染模板
Yaf_Dispatcher::getInstance()->autoRender(false);
  • 渲染视图模板, 并直接输出渲染结果
# 渲染视图模板, 并直接输出渲染结果,同时传参
$this->display('index', ['name'=>'liuhao']);
# 或者这样, 和上面的用法是一样的不同点在于
# 1.这里的模板名称要带文件名
# 2.要从views下开始,不包含views
$this->getView()->display('index/index.phtml', ['name'=>'liuhao']);
# 单独为模板传参
$this->getView()->assign("regionList", $regionList);


例如:

# 禁用模板渲染
Yaf_Dispatcher::getInstance()->disableView();
# 或者,禁止自动加载模板
Yaf_Dispatcher::getInstance()->autoRender(false);

# 初始化模板
$this->initView();
输出模板
# $this->display();
    
  • 将当前请求转给另外一个动作处理
$this->forward('方法名');
或者使用 Yaf_Controller_Abstract::forward('方法名');
注释:
    手册上写的Yaf_Controller_Abstract::forward('module','controller','action','param');
    不好使

Yaf_Controller_Abstract::forward只是登记下要forward的目的地, 并不
会立即跳转. 而是会等到当前的Action执行完成以后, 才会进行新的一轮
dispatch.

  • 重定向请求到新的路径
$this->redirect('路径名');

与$this->forward();运行到结尾再再行不同.代码运行到此处, 即刻跳转重定向.

框架初始化常用

# Nginx中需要配置在server中的配置
  if (!-e $request_filename) {
        rewrite ^/(.*)  /index.php?/$1 last;
    }

# 实例化框架,同时读取配置文件
$app = new Yaf_Application(APPLICATION_PATH . "/conf/application.ini", 'common');

# 在运行之前,我们可以可选的运行
$app->bootstrap()->run(); # 可选的调用bootstrap,或者直接run

注意:
    $app->getDispatcher()->dispatch(new Yaf_Request_Simple());
    我也看到有这样的用户, 但不知道,第二种使用分发器和第一种的差异,除了不用bootstrap之外有什么区别.
    
    
    

配置相关

  • 注册表的设置与获取(YAF配置文件也算)
注意:
    以下使用Yaf_Application:app();调用其方法的使用, 该类必须是已激活的.
    如:
    使用该形式来激活
    $app = new Yaf_Application(APPLICATION_PATH . "/conf/application.ini", 'test');
    否则肯定是不能用的
    
# 获取配置文件 ,同时注册到注册表中
Yaf_Registry::set("config", new Yaf_Config_Ini('../conf/application.ini', 'common'));

# 往全局注册表添加一个新的项
Yaf_Registry::set(string $name, mixed $value)
Yaf_Registry::set('config', Yaf_Application::app()->getConfig());

# 查询某一项目是否存在于注册表中
Yaf_Registry::has('config')

# 获取注册表中寄存的项(获取到的结果不是数组,需要$config->toArray()来转换为数组)
$config = Yaf_Registry::get('config')

# 获取Yaf_Application读取的配置项.(此处的Yaf_Application::app()必须是已经激活的,或者是已经激活的一个变量,如果只是要读取配置不如用Yaf_Registry::get('config')爽歪歪)
Yaf_Application::app()->getConfig();

# 存入注册表
Yaf_Registry::set('config', Yaf_Application::app()->getConfig());
# 其后在任何地方都可以完美的调用
Yaf_Register::get('config');

# 读取配置信息(也是币云最常用的, 读取到的数据不是数组需要使用$config->toArray();来转换为数组)
$config = Yaf_Config_ini(APPLICATION_PATH . "/conf/db_local.ini")

# 设置全局类库的目录路径 (即: 将原library中的PHP文件放在另一个地方, 使用下面方式来引用,其后的用法和原来直接写在Application/library下是一样的)
ini_set('yaf.library', '/Users/liuhao/www/btc_common_library');

请求相关

  • 判断是否为ajax请求requests->isXmlHttpRequest()
$this->requests->isXmlHttpRequest()
判断请求是否未ajax请求, 否为false.

本类需要继承Yaf_Controller_Abstract

转载于:https://my.oschina.net/chinaliuhan/blog/3064871

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值