有哪几种PHP注册表模式
发表于:2026-11-01 作者:千家信息网编辑
千家信息网最后更新 2026年11月01日,本篇内容介绍了"有哪几种PHP注册表模式"的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!这里主要按作用
千家信息网最后更新 2026年11月01日有哪几种PHP注册表模式
本篇内容介绍了"有哪几种PHP注册表模式"的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!
这里主要按作用域介绍三种类别的注册表类(请求级别、会话级别、应用程序级别)。
namespace woo\base;//基类abstract class Registry { abstract protected function get($key); abstract protected function set($key,$val);}//请求级别,他的生存周期通常为从用户发起一个请求到后台程序回复这个请求为止class RequestRegistry extends Registry{ private $values = array(); private static $instance; private function __construct (){} static function instance(){ // 单例,即这个类只有一个唯一的实例 if(!isset(self::$instance)){ self::$instance = new self(); } return self::$instance; } protected function get($key){ if(isset($this->values[$key]){ return $this->values[$key]; } return null; } protected function set($key,$val){ $this->values[$key] = $val; } static function getRequest(){ return self::instance()->get('request'); } static function setRequest(\woo\controller\Request $request){ //\woo\controller\Request 主要功能是处理用户请求信息的一个类 return self::instance()->set('request',$request); }}//会话级别,此示例中类的生存周期主要还是看SESSION的生存时间class SessionRegistry extends Registry{ private static $instance; private function __construct (){ session_start(); } static function instance(){ if(!isset(self::$instance)){ self::$instance = new self(); } return self::$instance; } protected function get($key){ if(isset($_SESSION[__CLASS__][$key])){ return $_SESSION[__CLASS__][$key]; } return null; } protected function set($key,$val){ $_SESSION[__CLASS__][$key] = $val; } function setComplex(Complex $complex){ self::instance()->set('complex',$complex); } function getComplex(){ return self::instance()->get('complex'); }}//应用程序级别,此示例中因相关的值是保存在文本文件中,所以只要文件存在,保存的值也就一直存在 class ApplicationRegistry extends Registry{ private Static $instance; private $freezedir = 'data'; private $values = array(); private $mtimes = array(); private function __construct (){} static function instance(){ if(!isset(self::$instance)){ self::$instance = new self(); } return self::$instance; } protected function get($key){ $path = $this->freezedir . DIRECTORY_SEPARATOR . $key; // 保存值的文件的路径 if(file_exists($path)){ clearstatcache(); // 清除filemtime缓存的上次记录的文件修改时间 $mtime = filemtime($path); if(!isset($this->mtimes[$key])){ $this->mtimes[$key] = 0; } if($mtime > $this->mtimes[$key]){ // 文件内容假如被修改过,那么就要重新获取里面的值 $data = file_get_contents($path); $this->mtimes[$key] = $mtime; return ($this->values[$key] = unserialize($data)); } } if(isset($this->values[$key])){ return $this->values[$key]; } return null; } protected function set ($key,$val){ $this->values[$key] = $val; $path = $this->freezedir . DIRECTORY_SEPARATOR . $key; file_put_contents($path,serialize($val)); $this->mtimes[$key] = time(); } static function getDSN(){ return self::instance()->get('dsn'); } static function setDSN($dsn){ return self::instance()->set('dsn',$dsn); } }"有哪几种PHP注册表模式"的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注网站,小编将为大家输出更多高质量的实用文章!
级别
文件
注册表
内容
程序
模式
周期
应用程序
时间
更多
用户
知识
示例
应用
实用
学有所成
接下来
作用
信息
功能
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
山东特亿宝互联网科技有限公司
科技互联网企业
新华互联网科技学校
科技互联网产品
互联网和科技创新
互联网科技垄断
互联网科技未来
网络科技有限互联网
万易互联网科技
狮子座互联网科技
哈尔滨秒房互联网科技有限公司
互联网科技产品
茂名市互联网科技产业园
湖南诚度互联网科技有限公司
卓翼科技产业互联网合作
科技互联网海报
宁波跨境商互联网科技有限公司
云鲸互联网络科技有限公司
科技信息时代互联网发展
科技发展第三阶段互联网时代
广州紫鲸互联网科技有限公司
互联网科技公司税收优惠
广州善班互联网科技
重庆科技学院互联网
济南和联互联网科技有限公司
哈尔滨新华互联网科技学院
互联网科技公司实习生
未来五年的互联网科技
如何创新互联网科技
互联网科技对化妆品行业