【问题标题】:Why do most PHP frameworks use set/get for Session variables?为什么大多数 PHP 框架对 Session 变量使用 set/get?
【发布时间】:2011-01-09 11:32:42
【问题描述】:

我很好奇为什么像 zend 这样的所有主要 PHP 框架都使用 setter 和 getter 方法来设置和获取基本的 $_SESSION['user'] 变量?我现在自己在做,但我真的不知道我为什么会这样做,除了我现在看到其他人经常这样做的事实。所以至少在理论上,将这些包装到一个类中似乎只会增加更多的开销,我只是想知道这种趋势背后是否有任何原因?

【问题讨论】:

    标签: php class session frameworks


    【解决方案1】:

    其中一个原因是它们中的大多数允许您以不同的方式存储会话,例如数据库。因此,无论您的会话如何处理,您都可以始终使用 get/set。

    编辑:例如,CodeIgniter 检查会话在被调用后是否有效(IP、浏览器)。因此,您不必在调用 session_start() 后立即调用“检查函数”。

    【讨论】:

    • 这正是我直到我意识到这可以在不将其包装在类中完成之前的确切原因,您可以将默认会话处理程序设置为使用数据库而不使用类或函数
    • 是的,您可以将默认会话处理程序设置为数据库驱动,但实现会话的类通常具有内置的附加功能,例如缓存或在数据库中存储会话数据的不同方法。跨度>
    【解决方案2】:

    这样您就可以延迟加载会话 - 通常您必须在访问任何会话变量之前运行 session_start(),通过使用 getter 和 setter,您可以按需执行此操作。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2018-04-08
      • 2021-09-07
      • 2021-10-16
      • 1970-01-01
      • 2010-12-23
      • 2018-08-27
      • 2010-10-10
      相关资源
      最近更新 更多