Think3 ORM

4月30日,手痒,从老的TP 3.2 框架中,剥离了ORM的部分,发布了一个 composer 项目。

安装方式:

composer require x3d/think3-orm

还参照最新的 tp6 中的 think-orm 做了简单的phpunit测试,见 tests/HelloTest.php 文件。

这样的项目,有何价值呢?对个人而已,有二:假定某些遗留项目可以使用该库得到一些曾经的让开发者比较爽的新能力,拆分出来后引用副作用更少;Nodejs的 NPM社区所提倡的 package 化的印象的实践。

其中大概涉及到的一些点:

Db 、Storage、Cache、Log引擎,需要有各种框架的适配器及默认的Think3版本的适配器;

要解决的问题

  1. [x]C函数;及里面的配置项
    1. [x]DB_PREFIX;
    2. [x]DB_FIELDS_CACHE
    3. []READ_DATA_MAP
    4. []TOKEN_ON;
    5. []TOKEN_NAME
    6. []TOKEN_RESET;
    7. [x]DEFAULT_M_LAYER;
    8. [x]VAR_AUTO_STRING
    9. [x]URL_PATHINFO_DEPR
    10. [x]DEFAULT_FILTER
  2. [x]F 函数;
  3. [x]parse_name 函数
  4. [x]E;没必要封装,造成代码的错误定位环节会更低效;
  5. [x]L,及相关的定义内容;
    1. []OPERATION_WRONG
    2. []DATA_TYPE_INVALID
    3. []METHOD_NOT_EXIST
    4. []TOKEN_ERROR
    5. []CACHE_TYPE_INVALID
    6. []NO_DB_DRIVER
    7. []EXPRESS_ERROR
    8. []STORAGE_WRITE_ERROR
  6. [x]S 函数
  7. [x]xml_encode
  8. [x]APP_DEBUG 常量;
  9. [x]NOW_TIME 常量;
  10. [x]I 函数;
  11. [x]MAGIC_QUOTES_GPC 常量;
  12. [x]get_client_ip 函数;
  13. [x]Db 类
    1. []G
    2. []trace
    3. []N
    4. []ns
  14. []Think\Log 类
  15. [x]Think\Cache;
    1. []
  16. [x]DATA_PATH 常量
  17. [x]TEMP_PATH 常量;
  18. []Think\Storage;

函数库中的依赖

  1. []MODULE_NAME;应该改为 函数或方法调用;动态返回,就可以做小动作;
posted @ 2022-06-04 10:18  x3d  阅读(72)  评论(0编辑  收藏  举报