简称: GPC
采用Action方法形参方式, 读取PHP全局变量的值, 包括 $_GET, $_POST, $_COOKIE
所有形参获取的GPC值会自动使用PHP内置函数 trim 过滤, 会更新PHP全局变量的原始值
备注: 形参顺序规则 与 实参顺序规则 无先后顺序, 如果形参太多, 可以使用 Asf\Sg 来解决问题
GPC 使用帮助, 有且只有小写 $g_, $p_, $c_ 才生效, 默认采用 $g_ 方式取值
关于形参默认值说明
<?php
class IndexService
{
public function indexAction($g_user = 'default_value')
{
var_dump($g_user); // default_value
}
}
<?php
class IndexService
{
public function indexAction($g_user)
{
var_dump($g_user); // null
}
}
<?php
use Asf\AbstractService as Service;
class IndexService extends Service
{
public function indexAction($g_user)
{
// No.1
var_dump($g_user);
// No.2
var_dump($this->getRequest()->getQuery());
// No.3
var_dump(Asf_Sg::$inputs);
}
}
$_GET, $_POST, $_COOKIE 参数获取变得很简单
<?php
class IndexService
{
public function indexAction($g_user, $p_pass, $c_cookieid, $orderid)
{
var_dump($g_user, $p_pass, $c_cookieid, $oderid);
}
}
<?php
class IndexService
{
public function indexAction($g_user = 'test', $p_pass = 123456, $c_cookieid = 'str', $orderid = 'mm100')
{
var_dump($g_user, $p_pass, $c_cookieid, $oderid);
}
}
Constants 文件的定义方法, 这里就不列举了
<?php
use Asf\Ensure;
class IndexService
{
public function indexAction($g_user, $p_pass, $c_cookieid, $orderid)
{
Ensure::notNULL($g_user, Constants::ERR_PARAMS_NAME);
Ensure::notNULL($p_pass, Constants::ERR_PARAMS_PASS);
Ensure::notNULL($c_cookieid, Constants::ERR_PARAMS_COOKIEID);
Ensure::notNULL($orderid, Constants::ERR_PARAMS_ORDERID);
var_dump($g_user, $p_pass, $c_cookieid, $oderid);
}
}
Asf 提供了两种解决方法
<?php
use Asf\Ensure;
use Asf\Sg;
use Asf\AbstractService as Service;
class IndexService extends Service
{
public function indexAction()
{
var_dump(Sg::$inputs);
var_dump(Sg::get('get.user'));
var_dump(Sg::get('post.user'));
var_dump(Sg::get('cookie.user'));
var_dump($this->getRequest());
}
}