我通过FuelPHP文档搜索但未找到cookie前缀配置。
我使用此代码扩展了fuel / app / classes / extension / cookie.php中的类。
namespace Extension;
class Cookie extends \Fuel\Core\Cookie
{
private static $config = array(
'expiration' => 0,
'path' => '/',
'domain' => null,
'secure' => false,
'http_only' => false,
'prefix' => '', // added prefix to cookie.
);
public static function _init()
{
static::$config = array_merge(static::$config, \Fuel\Core\Config::get('cookie', array()));
}
public static function set($name, $value, $expiration = null, $path = null, $domain = null, $secure = null, $http_only = null)
{
// add prefix to cookie.
$prefix = '';
is_null($prefix) and $prefix = static::$config['prefix'];
$name = $prefix . $name;
parent::set($name, $value, $expiration, $path, $domain, $secure, $http_only);
}
}
当我调用\ Extension \ Cookie :: set('name','value');它返回错误。
Cannot access private property Extension\Cookie::$config
COREPATH/classes/cookie.php @ line 92
Line 92 is_null($expiration) and $expiration = static::$config['expiration'];
如何在设置,获取和删除时将cookie类扩展为自动添加名称前缀?
答案 0 :(得分:2)
这是一个拼写错误,在FuelPHP中,类属性永远不应该被定义为private
,因为这会干扰可扩展性,正如您所注意到的那样。
目前的发展部门已对此进行了纠正。
答案 1 :(得分:0)
您无需复制和粘贴任何代码。您可以扩展所需的方法并执行以下操作:
public static function set($name, $value, $expiration = null, $path = null, $domain = null, $secure = null, $http_only = null)
{
$name = '<my prefix here>' . $name;
parent::set($name, $value, $expiration, $path, $domain, $secure, $http_only);
}
前缀当然是使用您想要的任何方法加载的,您可以使用这种前缀方法将前缀添加到所需的方法中。