关于在PHP

时间:2016-12-09 10:09:28

标签: php session

我需要有关使用php会话的意见。我正在使用会话来存储数据。例如 - 配置

  1. 首先我将数据从config.ini加载到$_SESSION['config']
  2. 然后我使用自定义会话类从$_SESSION['config'][$key];
  3. 获取特定数据

    这是配置功能:

    public static function load_config($process_sections = FALSE)
        {
            $array = parse_ini_file(CONFIG . DS . 'config.ini', $process_sections);
    
            if ($array)
            {
                $_SESSION['configuration'] = $array;
                return TRUE;
            }
            else
            {
                $_SESSION['configuration'] = array();
                return FALSE;
            }
        }
    
    function config($key, $default = NULL)
    {
        if (isset($_SESSION['configuration']))
        {
            if (isset($_SESSION['configuration'][$key]))
            {
                return $_SESSION['configuration'][$key];
            }
            else
            {
                return $default;
            }
        } 
    }
    

    用户对象也一样。我的用户数据不是来自数据库,而是来自API,并将其存储在$_SESSION['user']中。当用户对象构造时,我只是从$_SESSION['user'][...]归属所有属性,例如:

    public function __construct()
    {
        parent::__construct();
        $this->initUser();
    }
    
    private function initUser()
    {   
        if (Session::is('user'))
        {
            return $this->setUserData(Session::get('user'));
        }
        else
        {
            return FALSE;
        }
    }    
    
    private function setUserData($data)
    {
        foreach ($data as $key => $value)
        {
            if(property_exists($this->_name, $key))
            {
                $this->{$key} = $value;
            }
        }
        return TRUE;
    }
    

    属性在类中定义。当对象正在构建时,我正好按时完成它。这是正确的做法吗?它对我来说非常好,但我怀疑我的方法是否覆盖了服务器。

0 个答案:

没有答案