继上一篇ccORM里的pdo操作类的代码, 再写一点可实例化这个操作类的基础模型代码, 笔者在yaf框架项目上使用的, 支持手动选择读写和事务连接, 供大伙参考用。
注意: php版本需求 > 7.0
class Pdo_Initiator { /** * 实例化容器 * @var array */ protected static $_container = []; /** * 获取对象单例 * @access public * @return self */ public static function instance() { if (empty(static::$_container[static::class]) || array_key_exists(static::class, static::$_container) == false) { static::$_container[static::class] = new static(); } return static::$_container[static::class]; } /** * 初始化配置 * @access private static * @return array */ private static function _initConfig(): array { $config = Yaf\Registry::get('config'); $db = $config->db; $redis = $config->redis; return [ 'host' => $db->host, 'port' => $db->port, 'user' => $db->user, 'password' => $db->password, 'charset' => $db->charset, 'dbname' => $db->dbname, 'prefix' => $db->prefix, 'persistent' => 0, 'log' => 1, 'redis_ip' => $redis->host, 'redis_port' => $redis->port, 'redis_auth' => $redis->auth, 'redis_db' => $redis->sql_cache, 'redis_log' => $redis->log, ]; } /** * 获取读数据用句柄 * @access protected * @return object */ protected function on() { return new \Pdo_Worker(self::_initConfig()); } }