easyswoole - 基于swoole扩展实现的一款高性能php框架

ORM

EasySwoole 為了支持以 PHP 8 注解的方式來定義數據庫對象映射,于是開發了 fast-db 這個數據庫操作組件。

關于舊版本 ORM 文檔的用法可查看 GithubGitee

組件要求

  • EasySwoole >=3.7.1
  • php: >= 8.1
  • easyswoole/mysqli: ^3.0
  • easyswoole/pool: ^2.0
  • easyswoole/spl: ^2.0

安裝

composer require easyswoole/fast-db

連接池注冊

在 EasySwoole 中使用

首先我們在 EasySwoole 框架的 EasySwooleEvent 事件(即框架根目錄的 EasySwooleEvent.php 文件中)的 initialize 方法 或 mainServerCreate 方法中進行注冊連接,如下所示:

EasySwooleEvent.php

<?php

namespace EasySwoole\EasySwoole;

use EasySwoole\EasySwoole\AbstractInterface\Event;
use EasySwoole\EasySwoole\Swoole\EventRegister;
use EasySwoole\FastDb\FastDb;

class EasySwooleEvent implements Event
{
    public static function initialize()
    {
        date_default_timezone_set('Asia/Shanghai');

        // 注冊方式1:在 initialize 方法中注冊連接
        $config = new \EasySwoole\FastDb\Config([
            'name'              => 'default',    // 設置 連接池名稱,默認為 default
            'host'              => '127.0.0.1',  // 設置 數據庫 host
            'user'              => 'easyswoole', // 設置 數據庫 用戶名
            'password'          => 'easyswoole', // 設置 數據庫 用戶密碼
            'database'          => 'easyswoole', // 設置 數據庫庫名
            'port'              => 3306,         // 設置 數據庫 端口
            'timeout'           => 5,            // 設置 數據庫連接超時時間
            'charset'           => 'utf8',       // 設置 數據庫字符編碼,默認為 utf8
            'autoPing'          => 5,            // 設置 自動 ping 客戶端鏈接的間隔
            'useMysqli'         => false,        // 設置 不使用 php mysqli 擴展連接數據庫
            // 配置 數據庫 連接池配置,配置詳細說明請看連接池組件 http://www.zbjtqy.com/Components/Pool/introduction.html
            // 下面的參數可使用組件提供的默認值
            'intervalCheckTime' => 15 * 1000,    // 設置 連接池定時器執行頻率
            'maxIdleTime'       => 10,           // 設置 連接池對象最大閑置時間 (秒)
            'maxObjectNum'      => 20,           // 設置 連接池最大數量
            'minObjectNum'      => 5,            // 設置 連接池最小數量
            'getObjectTimeout'  => 3.0,          // 設置 獲取連接池的超時時間
            'loadAverageTime'   => 0.001,        // 設置 負載閾值
        ]);
        // 或使用對象設置屬性方式進行配置
        // $config->setName('default');
        // $config->setHost('127.0.0.1');
        FastDb::getInstance()->addDb($config);
        // 或在注冊時指定連接池的名稱
        // FastDb::getInstance()->addDb($config, $config['name']);
    }

    public static function mainServerCreate(EventRegister $register)
    {
        // 注冊方式2:在 mainServerCreate 方法中注冊連接
//        $config = new \EasySwoole\FastDb\Config([
//            'name'              => 'default',    // 設置 連接池名稱,默認為 default
//            'host'              => '127.0.0.1',  // 設置 數據庫 host
//            'user'              => 'easyswoole', // 設置 數據庫 用戶名
//            'password'          => 'easyswoole', // 設置 數據庫 用戶密碼
//            'database'          => 'easyswoole', // 設置 數據庫庫名
//            'port'              => 3306,         // 設置 數據庫 端口
//            'timeout'           => 5,            // 設置 數據庫連接超時時間
//            'charset'           => 'utf8',       // 設置 數據庫字符編碼,默認為 utf8
//            'autoPing'          => 5,            // 設置 自動 ping 客戶端鏈接的間隔
//            // 配置 數據庫 連接池配置,配置詳細說明請看連接池組件 http://www.zbjtqy.com/Components/Pool/introduction.html
//            // 下面的參數可使用組件提供的默認值
//            'intervalCheckTime' => 15 * 1000,    // 設置 連接池定時器執行頻率
//            'maxIdleTime'       => 10,           // 設置 連接池對象最大閑置時間 (秒)
//            'maxObjectNum'      => 20,           // 設置 連接池最大數量
//            'minObjectNum'      => 5,            // 設置 連接池最小數量
//            'getObjectTimeout'  => 3.0,          // 設置 獲取連接池的超時時間
//            'loadAverageTime'   => 0.001,        // 設置 負載閾值
//        ]);
//        FastDb::getInstance()->addDb($config);
    }
}

上述2種注冊方式注冊結果是一樣的。如需注冊多個鏈接,請在配置項中加入 name 屬性用于區分連接池。

在其他框架中使用

<?php
use EasySwoole\FastDb\FastDb;
$config = new \EasySwoole\FastDb\Config([
    'name'              => 'default',    // 設置 連接池名稱,默認為 default
    'host'              => '127.0.0.1',  // 設置 數據庫 host
    'user'              => 'easyswoole', // 設置 數據庫 用戶名
    'password'          => 'easyswoole', // 設置 數據庫 用戶密碼
    'database'          => 'easyswoole', // 設置 數據庫庫名
    'port'              => 3306,         // 設置 數據庫 端口
    'timeout'           => 5,            // 設置 數據庫連接超時時間
    'charset'           => 'utf8',       // 設置 數據庫字符編碼,默認為 utf8
    'autoPing'          => 5,            // 設置 自動 ping 客戶端鏈接的間隔
    'useMysqli'         => false,        // 設置 不使用 php mysqli 擴展連接數據庫
    // 配置 數據庫 連接池配置,配置詳細說明請看連接池組件 http://www.zbjtqy.com/Components/Pool/introduction.html
    // 下面的參數可使用組件提供的默認值
    'intervalCheckTime' => 15 * 1000,    // 設置 連接池定時器執行頻率
    'maxIdleTime'       => 10,           // 設置 連接池對象最大閑置時間 (秒)
    'maxObjectNum'      => 20,           // 設置 連接池最大數量
    'minObjectNum'      => 5,            // 設置 連接池最小數量
    'getObjectTimeout'  => 3.0,          // 設置 獲取連接池的超時時間
    'loadAverageTime'   => 0.001,        // 設置 負載閾值
]);
FastDb::getInstance()->addDb($config);

配置項解析

\EasySwoole\FastDb\Config 繼承自 \EasySwoole\Pool\Config ,因此 ORM 具備連接池的特性。

  • autoPing
  • intervalCheckTime
  • maxIdleTime
  • maxObjectNum
  • minObjectNum
主站蜘蛛池模板: 压缩强度测定仪-纸管平压强度测定仪-电脑拉力仪-杭州纸邦自动化技术有限公司 | 手持电能质量测量仪-TD-1168多功能高空接线钳-上海妙定电气有限公司 | 山东凯达起重机械有限公司-单梁行车,龙门吊,提梁机,门式起重机,悬臂起重机 | 智慧网格,智慧城市,智慧社区,精准扶贫,农村电商,网格化,网格化管理,智慧养老,北京瑞光极远数码科技有限公司 | 上海海外置业展_2024海外置业移民留学展_4月5-7日_企业参展处/免费领门票 | 生物发酵罐(细菌/植物/液体玻璃实验室发酵罐设备)CIP清洗罐,灭活罐「厂家」-安徽赛德齐瑞发酵罐品牌 | 卫生间隔断-东莞卫生间隔断-东莞卫生间隔断厂家-公共卫生间隔断-东莞市康丰家居建材有限公司 | 排水PVC管-PVC排污管-给水PVC管-电线PVC管-米阳建材pvc管厂 | 消防车厂家_东风水罐泡沫消防车价格图片吨位-湖北新东日专用汽车有限公司 | 深圳浪琴维修服务中心_浪琴售后保养服务网点_地址 | 垃圾分类,北京垃圾分类,有机废弃物处理,智慧环卫,垃圾分类展 | 吉林省新思路教育发展有限公司| 济宁市泓世新型建材有限公司,山东ALC墙板,GRC轻质隔墙板,预制化粪池,复合墙板加工厂家 | 宁波必沃纺织机械有限公司—优质针织电脑横机专业制造商 | 人工气候-智能-低温生化培养箱厂家|价格-上海予卓仪器 | 苏州氮气弹簧厂家_江浙沪氮气弹簧价格_江苏氮气弹簧规格_BelleFlex碟形弹簧_昆山三虑五金机械有限公司 | 合肥环氧地坪-合肥固化地坪施工-安徽地宽建筑装饰工程有限公司 | 陶瓷颗粒厂家_彩色路面_彩色陶瓷颗粒-山东顺驰道路材料有限公司 陶瓷复合钢管-专业提供江苏陶瓷钢管和陶瓷内衬复合钢管的生产厂家 | 聚合氯化铝pac-聚氯化铝-饮水级工业级聚合氯化铝-聚合氯化铝厂家价格 | 装盒机|全自动封盒机|纸盒子包装机|高速装盒机定制-温州胜泰机械有限公司 | 酒店设计_建筑设计_室内装修装饰-北极点酒店设计公司 | 联智通达_工控一体机_工业触摸一体机_工业一体机_工业触控一体机_POS机主板_工控主板_国产化主板_RK3588主板厂商-联智通达 | 内蒙古发电机厂家_呼和浩特发电机租赁_销售_维修_回收_置换|盈弘发电设备有限责任公司 | 四川方法数码科技有限公司 | 万彩办公大师官网-免费的办公工具百宝箱OfficeBox,绿色无广告无捆绑 | 菏泽市牡丹区双冠家具有限公司,菏泽办公家具, | 长沙思辰仪器科技有限公司 | 无锡心理咨询_江阴心理咨询_强迫症咨询_无锡笑一心理咨询有限公司 | 南洋电缆_南洋电线电缆_广州南洋电缆集团有限公司 | 蒸汽孔板流量计-法兰式孔板流量计-一体化标准孔板流量计-金湖中原仪表有限公司 | 十树品牌策划—品牌战略、品牌策划、品牌定位、品牌设计、包装设计、品牌营销-上海十树品牌管理咨询有限公司官网 | 美标球阀_美标闸阀-浙江川一阀门有限公司 | 基坑护栏,临边护栏网,爬架网,爬架网片,铁路防护栅栏,公路护栏网,河北昊坤金属制品有限公司 | 社会百态,七仙女思春完整版免费高清电影引发的思考 | 指纹锁_智能锁_指纹密码锁_智能锁十大品牌_智能门锁厂家-深圳市豪力士智能科技有限公司 | 启东华立石油化工机械设备有限公司|过滤器|混合机|消声器|混合器|管道过滤器|空气过滤器|精细过滤器 | 项目可行性研究报告_稳评能评节能报告_节能报告收费标准-智汇中经(上海)管理咨询有限公司 | 食品甲醛测定仪,啤酒甲醛测定仪,食盐碘测定仪,食品细菌检验仪,水质细菌检验仪-厦门欣锐仪器仪表有限公司 | 消防安装_消防安装施工_消防施工_北京消防安装公司-亿杰(北京)消防工程有限公司 | 上海纳美鞋业有限公司| 铝基板_铜基板_铝基板厂家诚之益电路—汽车灯铜基板行业制商 |