FuelPHP无法设置cookie前缀

时间:2013-12-21 14:38:14

标签: php cookies fuelphp

我通过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类扩展为自动添加名称前缀?

2 个答案:

答案 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);
}

前缀当然是使用您想要的任何方法加载的,您可以使用这种前缀方法将前缀添加到所需的方法中。