整体架构图
DuckPhp 的源代码
遵循 PSR-4 的文件结构,节点文件是 Core/Singleton
是所有非辅助类都以来的可变单例类。 Core/App
, Core/Kernel
, Core/HttpServer
是连接性节点。 其他节点都是独立的。
链接指向参考文件。
App.php 是加载了扩展的 DuckPhp 入口 ,扩展至 Core/App
HttpServer.php 是 加了 Swoole 的 Http 服务器。
Core/ 目录是核心目录,基本功能都在 Core 里实现
- SingletonEx.php
- ThrowOn.php 注意这个 trait 也被 Helper使用
- App.php 是核心,引用
- Kernel.php 核心Trait 组件
- ExtendableStaticCallTrait.php 注意这个 trait 也被 Helper使用
- SystemWrapperTrait.php
- ComponentInterface.php 组件类接口
- **AppPluginTrait.php ** 这个Trait用于把独立工程 App 转成插件
HttpServer.php 单独的 Http 服务器
DB/ 是数据库
Ext/ 目录是各种扩展,粗体为默认
- DBManager.php
- Misc.php
- Pager.php
- RouteHookRewrite.php
- RouteHookRouteMap.php
- CallableView.php
- DBReusePoolProxy.php
- FacadesAutoLoader.php
- HookChain.php 这个独立文件没用到。
- JsonRpcExt.php
- PluginForSwooleHttpd.php
- RedisManager.php
- RedisSimpleCache.php
- RouteHookDirectoryMode.php
- RouteHookPathInfoCompat.php
- StrictCheck.php
- Lazybones.php
Helper/ 助手类
DuckPhp 全框架架构图
画成引用 SVG,下载查看大图 (源文件 duckphp.gv) 如下:
钻石表示核心节点
ExtendableStaticCallTrait
SystemWrapperTrait 用于 同名函数替代系统系统函数。
比如 header(); ThrowOn 提供了 实用的 ThrowOn
HttpServer 提供了 HttpServer 的实现。