代码拉取完成,页面将自动刷新
v1.3.1 变更
2024-04-10 20:04:27
改变巨大。可以使得应用调用更方便。引入了相位概念。
各种变更难以来得及说明
v1.2.12 变更
2021-07-23 10:07:57
添加了新的开发范式。
增加了 Foundation 目录,可以作为系统工程常用基本类和 trait
包括
SessionManagerBase
SimpleControllerTrait
SimpleModelTrait
SqlDumper
ThrowOnableTrait
自带例子 SimpleAuth 基本完美, SimpleBlog 系统完善
2021-06-20 09:06:27
对上一版本有积累了几个月的大改动
文档方面:
文档自动化增强,现在所有 选项和函数都会跑脚本导出到 reference 里
代码方面:
AppPluginTrait 增加读取资源文件功能,修复 mime_content_type 的 bug 统一动态组件
AppPluginTrait 为做插件做了不少优化
命令行,覆盖的 httpserver 改为 --http-server 参数
App : getDynamicComponentClasses 归入 KernelTrait
添加 IsAjax() ,Json() Render() SessionSet CookieSet
setting_file_ignore_exists
controller_strict_mode 严格大小写路由
Db 添加 table(); quoteAndArray
添加 RouteHookFunctionRoute
添加 SimpleModelTrait
添加 SqlDumper
Helper 改成 HelperTrait 来实现
v1.2.11 变更
2021-04-09 20:04:24
Console 支持 --a-b => $a_b
DuckPhpCommand 了兼容 workerman 使用 -override-class 切换 httpserver 类
App handler 放入 kernerl
为 Route 添加 controller_path_prefix ,前缀
全部通过 PATH_INFO 传递 用 (__SUPERGLOBAL_CONTEXT)()-> 代替之前的 superglobal
AppPluginTrait 继续优化,并改为 Component 目录 添加了资源目录
增加了几个全局函数
HelperTrait 删除
ViewHelper 函数删除,
SuperGobal 用宏的形式回归
HttpServer添加相关 Interface
其他改进
v1.2.10 变更
目录结构调整
所有 Trait 都以 Trait 结尾
常用组件抽入 Component 目录
ext 目录则是默认不加载的目录
Console 命令行组件独立化, 和 DuckPhp 相关内容放入 DuckPhpCommand 组件
RouteHookRouteMap,ExtendableStaticCallTrait, 回调的 ->,@,添加区分度 @ 表示 ::G()->
App SuperGlobal 类删除 ExitJson() header 变更,XCall => XpCall
AppPluginTrait ,view 目录在类名目录底下
AutoLoader::G()->runAutoLoader 方便同名操作
RuntimeState 统一用 reset()
DuckPhp 优化不必要的类加载
Ext 扩展
加回了 ExceptionWrapper,HookChain
FacadesAutoLoader 前缀改加 MyFacadesAutoLoader
添加中间件 MyMiddlewareManager
原先 SuperGlobal 的部分功能划入新类 StaticReplacer
使用 LibCoverage 来做全覆盖测试
v1.2.9 变更
AppPluginTrait 微调(下个版本解决 view 不明显问题
ComponentBase 简化
ExtendableStaticCallTrait::CallExtendStaticMethod 调用方式用@分割对象和方法
Kernel 内核简化,减少不必要东西 取消 use_super_global 选项
Route prepare($serverData); 统一为 reset
DuckPhp 精简东西,不再需要载入太多东西
Console 支持 cli_mode
Installer 尝试支持 windows
JsonView 新增 JsonView
Pager 去掉 SuperGlobal
其他因去掉 SuperGlobal 做了一些改动
ToDo ,下个版本完善并加入 SuperGlobalReplacer 类
SingletonEx 添加一个集中式处理的 SimpleReplacer 类。
添加了 doc 页面查看页面
v1.2.8 变更
添加了比较完善的命令行模式
调整了好些选项
助手类的注入现在必须是显式注入
添加 __db(),调试用的类也变成 全局函数
路由现在有了阻止静态方法的选项, 可以用 G 方法修改实现了
DbManager 的获得 Db 类被抽了出来
添加了安装器扩展。而不是单独的安装器文件
扩展文件,如果有扩展App类静态方法的都加了开关选项
删除了旧的示例
例子都大有调整
感谢 gitee 的各位给我的鼓励
v1.2.7 变更
修复上一版本默认不加载任何扩展的严重 bug
完善自动文档脚本
Controller 可以用 G 函数了。 第三方库提供者的控制器可以让人热修改了。
相应的是 'controller_use_singletonex' 选项 和 replaceControllerSingelton($old_class, $new_class)
debug_log($str,$arg=[]) 不要考虑 App::Logger()->info,debug 还是什么。
添加了手动关闭数据库的 DbCloseAll();
默认不再和额外命名空间 LazyToChange 有任何联系
设置文件的手动选项, 'use_setting_file' 'use_env_file' 不再默认必须有设置文件了。
Kernel 方面,override_class 选项不再和 namespace 相关。path , namespace 这两项默认不需要提供了。
Kernel 增加了 onAfterRun 事件处理。
Route 析出内部 trait Route_UrlManager 处理 url , skip_fix_path_info 现在是由 Route 类处理
Db 丰富了 Object 方式的查询 。setObjectResultClass (链式) ,fetchObject ,fetchObjectAll
RouteHookPathInfoByGet 改名 RouteHookPathInfoCompat
RouteHookApiServer 完善可用
JsonRpcClientBase 修复了代理的 init(),isInit() 函数
AppPluginTrait 修复 OnUrl,希望没出其他额外事
ComponentBase 多了 getComponenetNamespace
示例文件更精简。
其他一些可虎烈的小改动。
v1.2.6 变更
1 支持 windows
2 架构更新, 原先的 Service 重命名为 Business 导致模板目录变更
3 更新测试套件
4 规范函数名字里的缩写词,统一用大写开头全小写形式, 如 URL => Url
5 有了部分自动文档脚本。
6 添加了事件系统。
代码变更
DuckPhp\Core\App
core_options
有了自己的核心配置(但你不必动用他们
XCall
添加 XCall
ThrowOn
ThrowOn 方法重写
Cache
添加了 Cache 类
Db, Event
DB_R ,DB_W 改为 DbForRead,
Event
添加了事件系统
Show()
调整
Route()
添加了获取 Route 类的代理方法
SG() => SuperGlobal()
引发了其他类一些变化
GET(),POST()
从 Helper实现变成 App实现。
DuckPhp\Core\AutoLoader
支持windows
DuckPhp\Core\ComponentBase
内嵌 SingletonEx 实现
支持windows
DuckPhp\Core\Kernel
默认命名空间改为 LazyToChange
onInit() 等有同名属性接挂
DuckPhp\Core\Route
'controller_class_postfix' => '',
'controller_enable_slash' => false,
'controller_path_ext' => '',
DuckPhp\Core\ThrowOn
已经删除
DuckPhp\Core\View
尝试严格化
添加 getViewData
DuckPhp\DuckPhp
不再调用扩展类的方法
DuckPhp\Ext\Cache
新的空 cache 类
DuckPhp\Ext\DbManager
重写以化简 DbManager 类,现在是和 DuckPhp\Db\Db 强相关的类。
要替换默认 Db 类,请重写 Db 方法。
DuckPhp\Ext\EventManager
新增事件系统
DuckPhp\Ext\PulginForSwooleHttpd
已移除,未来在其他附属工程里添加
DuckPhp\Ext\RedisCache
从 RedisSimpleCache 重写
DuckPhp\Ext\RedisManager
调整选项
DuckPhp\Ext\RouteHookApiServer
新增API服务器路由钩子。(不够成熟,但可用)
DuckPhp\Ext\RouteHookPathInfoByGet
重命名自 RouteHookOneFileMode 并且默认内置
DuckPhp\Ext\StritCheck
重写并不再需要辅助类
DuckPhp\HttpServer\HttpServer
从Core 中移出,完成 windows 支持
DuckPhp\SingletoEx\SingletoEx
从Core 中移出,成为孤立的类
DuckPhp\ThrowOn\ThrowOn
从Core 中移出,成为孤立的类
v1.2.5 变更
最大的不兼容变更是 Duckhp\App 入口类重命名成了 DuckPhp\DuckPhp 类
DuckPhp\Core\App
现在是组件类 Platform() IsDebug() 可接管。
DB($tag),DB_R(),DB_W() 有默认抛出异常的实现。
add404RouteHook dumpAllRouteHooksAsString 新增
setViewHeadFoot
GET ,POST 等移动到 App 类里。
AppPluginTrait
新增选项 plugin_url_prefix
新增事件函数 onPluginModePrepare onPluginModeInit onPluginModeBeforeRun onPluginModeRun
新增 方法 pluginModeBeforeRun
pluginModeGetOldRoute
OnURL _OnURL
AutoLoader
孤立化 autoload_cache_in_cli autoload_path_namespace_map
spl_autoload_register(self::class.'::AutoLoad');
DuckPhpSystemAutoLoader
ComponentBase
DuckPhpSystemAutoLoader
Configerr
exitWhenNoSettingFile
Functions
修复 __url
Kernel
$options 通用化
添加 use_autoloader 选项
initAfterOverride initDefaultComponents
onInit 拆分纯空函数
Logger
调整使用 选项 'path_log' ,'log_file_template'
Route
减少公开属性 dumpAllRouteHooksAsString
RuntimeState
添加属性 use_output_buffer
去掉 begin/end 用run/clear代替
View
添加 reset(),给主流程用
setViewWrapper => etViewHeadFoot
DB
getPDO => PDO($new)
beforeQueryHandler 的参数多了个 $this
DBInterface
public function PDO($object = null);
public function rowCount();
public function lastInsertId();
CallableView
修复 _Display;
EmptyView
新增扩展
RouteHookManager
新增路由钩子管理类
AppHelper
新增一些管理函数
ControllerHelper
移动 GPC 函数的实现
HelperTrait
使用 SingletonEx
ModelHelper
DB函数显化
示例代码修改
v1.2.2 发布。通过 phpstan level7 的检查,php-cs-fixer 的格式化。phpunit 的 100%覆盖测试。
应用层方面,C::Parameters() 改成 C::getParameters() ,这个只用于自定义路由。
其他都是上层的改动。
用于各种自定义的路由 RouteHookRouteMap 拆分成 route_map 和 route_map_important 两选项, 后者在默认文件路由前钩挂,用于比较重要的自定义路由。 前者用于默认文件路由后 404 处理
把当前站点改成组件化用的 AppPluginTrait 重写。如果没特殊使用,不需要改动。
Logger 类 放入核心目录。
Helper 类从 Core 核心目录移出。 核心框架不再包含。
App 类额外方法都咔嚓。 由 Ext 扩展类自行扩充。
Swoole 的支持方式变更,ext 扩展 + core/app 类方式完成。
随行 demo 更新。
要做的:
错误处理现在复杂化了,需要重新简化以更清晰。
需要添加 init 后 缓存,直接读取到 run 运行的 更快速运行方式。
AppPlugin 组件化的初始化默认应该加上 lazyload 模式,使得多加组件不影响启动效率。
需要添加适配各家框架 nginx 配置的插件 。各家 nginx 配置居然都有不同 :( 。
1.1.4到 1.1.5 变更
2019-12-02 15:12:13
添加了插件模式,添加了 log ,还有一堆东西,准备改名了。
1.1.3到 1.1.4 变更
2019-10-07 20:10:25
添加了 全覆盖测试。SwooleHttpd 以外的常用文件都全部覆盖。
修复了之前一些 bug.
添加了 .env 模式
1.1.2 到 1.1.3 变更
2019-09-22 22:09:20
DNMVCS 类的 很多功能移动到了 Core/App
autoload 不再用闭包,为了方便 profile
最低要求 PHP 7.1
架构图更新 ExModel 不再引用Model
删除了单独的 core 架构图(SwooleHttpd 依然保留。
swooleHttpd 的例子移动到相应目录
添加了单元测试
Helper 从 Base 目录抽出成 Helper 目录
ClassExt 不再需要 , Core/App 里使用 extendComponents
Core/App 变更
Core/App 和 Helper 一样 都扩展 ExtendableStaticCallTrait
优化了 init() 过程
和 SwooleExt 相关代码移动到 DNMVCS
SuperGlobal 下方到 Core
SwooleHttpd去掉 短名称
修复了很多 Bug,按 PHPStan level 7 来
TODO
抽出 SystemWraper
getStaticComponent 回到 App
1.0.9 到 1.0.10 变更
添加了 快速扩展的 DNClassExt
配置大更新
路由调整
OnBeforeShow 等 静态化
和 swoole DNSwooleExt 调整.
1.0.9 到 1.0.10 变更
2019-02-24 18:02:44
添加了 LICENSE 文件
DB 添加 driver_options 配置。
删除 DNDI.php DNSingleton.php DNThrowQuick.php ,以后将在外加项目里加这些类
DNMVCSExt 各功能类和 DNMVCS 主类 引用分离
DNSwooleHttpServer => DNSwooleExt 并做了可用性调整
SwooleHttpServer 做了大量变动,准备独立成 SwooleHttpd 项目
增加了 DNMVCS::Platform()
DNExceptionManager 防止多重载入
swoole 选项成了内置 SwooleHttpServer 的选项
一些 BUG 的修复
其他大量内部实现的变更。
基本稳定了。
1.0.8 到 1.0.9变更
大量的调整
DBExt => DBAdvance
Pager 集中 SG 方法到一个方法,方便迁移
文档结构大调整
RouteHookeRewriteAndMap 收入 DNMVCExt
SuperGlobal 改为 DNSuperGlobal 收入 DNMVCS
DNSuperGlobal 增加了 _FILES 的实现。增加了 globals 语法, static 语法 类内 static 语法替换
RouteHookSuperGlobal 不需要了
拆解 DNSwooleHttpServer 成 SwooleHttpServer 和 DNMVCS 无关系
两者关系现在用 DNSwooleBridge 连接
SystemWrapper 融合进 DNMVCS ,并且在 SwooleHttpServer 有自己的实现。-- 两者共同实现 DNSystemWrapperInterface;
OneFile 模式的 SG::G() 也都改为 DN::SG();
DNDI 移入 DNMVCExt
spl_autoload_register 都不再用闭包,以增加 SwooleHttpServer 的方便
DNRoute 主功能重构。一大堆修改,需要多测试。为自动运行模式增加了效率。
default_method_for_miss
base_controller_class
_ShowBlock 修复
添加回 GetDBHandler
调整 DNRuntimeState
exit 用 exit_system 替代
HasInclude 移动到Toolkit
OneFileMode 调整
添加了 __callStatic 从当前类替换的类的静态方法里找
Run 函数里添加了 beforeRouteRun,删除 before_run_handler
RouteHookMapAndRewrite 重构
RouteHookOneFileMode 重构,利用了 RouteHookOneFileMode 部分代码
RouteHookDirectoryMode 添加了 mode_dir
DBReusePoolProxy 原来 DBPoolProxy ,移动到 ext 里
FacadesAutoLoader FacadesBase 添加了 facades 门面的实现
SetSessionName 已经取消
module-action 方式已处理 rewrite.
2019-02-05 20:02:14
----
1.0.7 到 1.0.8变更
DBExt 单独提成文件 ,MedooDB 因此变更
DNDI 可外放
namespace 选项 影响 base_class ,namespace_controller
DNRoute 添加 stopRunDefaultHandler
DNView 删除 includeShowFiles 添加 prepareFiles ,FunctionView 由此改动
主类 DI() 改成由 DNMVCSExt 实现。
主类 添加 StartSession,删除 SystemWrapper 的函数
DNMVCSEXt key_for_simple_route=>key_for_action,添加 key_for_module
StrictService , StrictModel 改 trait ,外放
SwooleSuperGlobal,SwooleSESSION,SwooleSessionHandler 收入 DNSwooleHttpServer.php
StartSession 可添加选项
改了 template 。
TODO module-action 方式未处理 rewrite.
TODO SetSessionName 要取消
----
1.0.6 到 1.0.7变更
DBThrownQuickly 可外放成独立文件
Done 添加 DNDBInterface
DB 类 实现 DBInterface 接口 DBInterface 是希望数据库类实现的接口。
StrictService 部分无效,StrictModel 部分无效修复 ,use_strict_db_manager 部分无效修复。
use_function_dispatch 模式如果函数不存在则退回类的模式
Ext 模式添加 session_auto_start session_name
Done swoole 模式, handler 模式 加www 目录文件 兼容选项
TODO OneFile 模式,添加类选项。
Done OneFile 模式里添加 $init_function 参数
//swoole 选项里加 use_http_handler_root 以附加。
需要 DB_W , DB_R ,考虑后不会去掉。
----
1.0.5 到 1.0.6变更
修复 prefix_post 应该为 do_ 而不是 _do
----
1.0.4 到 1.0.5变更
DNDB 类改成 DB 类, DNMedoo 改成 MedooDB
DNDB 类和 DBExt 类合并
DNRoute 类 添加选项 prefix_post
ShowBlock 现在可加 .php 后缀,也可以省
修复 DB_R ,现在 database_list 可以加键名 DB() 方法会默认使用第一个键名。
SuperGlobal 删除操作方法,现在只有用数组变量方式调用
只支持 swoole 4.2.0 及以上版本。
开始 swoole 服务前会有判断
删除了 DNService DNModel 类
start_server.php 加了默认端口 9528
TODO swoole 模式, handler 模式 加www 目录文件 兼容选项
TODO OneFile 模式,添加类选项。
TODO 不再需要 DB_W , DB_R
TODO ,添加 DNDBInterface ,规范数据库最小子集
----
1.0.3 到 1.0.4变更
SuperGlobal::SetSessionName($name) 代替 session_name($name);
ComposerScripts 添加 PostInstall
默认模版变更,现在头文件更清晰。直接运行工程模板将提示请勿直接运行,并且忽略设置文件
修复可能存在的合并 options 错误。 array_merge_recursive => array_replace_recursive
RunOneFileMode 添加参数 $init_function 用于初始化后修改方法
修复 SimpleRouteHook 错误导致 OneFile.php 演示不能进行。
首次使用 defer
修复 SuperGlobal 默认 session 错误
----
1.0.2 到 1.0.3变更
ComposerScripts 添加 PostUpdate 方法,用于 update 更新模板
析出 DNDB 自 DNMVCS.php ,明确 DNDB 不是 DNMVCS 的核心组件。
修复 因 DNMVCS_DNSINGLETON_REPALACER 宏不正确导致 swoole 协程单例无效
DNAutoLoader->namespace_paths =>public
增加 DNRoute->prefix_post 可调整post 方法前缀
DNRoute->getRouteHandlerByFile 抽出 getCurrentClassAndMethod 方法
DNView->header 调整到 DNMVCS::header(DNSystemWrapper->header)
相关的 DNView->setHeaderHandler 调整到 DNMVCS->setHandlerForHeader
DNView->onBeforeShow => DNView->setBeforeShowHandler
重写了 DNDBManager
$options['rewrite_list']=$options['rewrite_map']
$options['route_list']=$options['route_map'];
DNMVCS::Debugging => DNMVCS::Developing
添加
InSwoole
IsRunning
setDBHandler
setBeforeGetDBHandler
header
setcookie
setHandlerForHeader
setHandlerForSetCookie
添加
DNRuntimeState
删除 $options['skip_db']
添加 DNRuntimeState 类保存运行时间系统状态
class StrictDBManager 去掉,用 setBeforeGetDBHandler DNMVCSExt CheckDBPermission 代替
未使用的 MedooSimpleInstaller 移动到 Toolkit.php
修复 $options['ext']['use_ext_db'] 无效
添加 CoroutineSingleton::DumpString
删除无用的 IRouteHook.php
RouteHookSuperGlobal 添加 $fakeRoot $fakeIndex 可在 swoole 下设定伪路径
重写 SuperGlobal 删除子类。
相应的 SwooleSuperGlobal 重写
模板文件的包含部分变更。
todo session_name($name) 改变 session 默认名字在 swoole 下无效。
----
1.0.1 到 1.0.2 变更
ShowBlock 由类方法变成静态方法
添加了 setmultiexception
---
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。