整体架构图

DuckPhp 的源代码

遵循 PSR-4 的文件结构,节点文件是 Core/Singleton 是所有非辅助类都以来的可变单例类。 Core/App, Core/Kernel, Core/HttpServer 是连接性节点。 其他节点都是独立的。

链接指向参考文件。

  1. App.php 是加载了扩展的 DuckPhp 入口 ,扩展至 Core/App

  2. HttpServer.php 是 加了 Swoole 的 Http 服务器。

  3. Core/ 目录是核心目录,基本功能都在 Core 里实现

    1. SingletonEx.php
    2. ThrowOn.php 注意这个 trait 也被 Helper使用
    3. App.php 是核心,引用
      1. Kernel.php 核心Trait 组件
        1. AutoLoader.php
        2. Configer.php
        3. View.php
        4. Route.php
        5. 以上是核心必备组件
        6. SuperGlobal.php
        7. Logger.php
        8. ExceptionManager.php
        9. RuntimeState.php
      2. ExtendableStaticCallTrait.php 注意这个 trait 也被 Helper使用
      3. SystemWrapperTrait.php
      4. ComponentInterface.php 组件类接口
    4. **AppPluginTrait.php ** 这个Trait用于把独立工程 App 转成插件
  4. HttpServer.php 单独的 Http 服务器

  5. DB/ 是数据库

    1. DBAdvance.php
    2. DBInterface.php
    3. DB.php
  6. Ext/ 目录是各种扩展,粗体为默认

    1. DBManager.php
    2. Misc.php
    3. Pager.php
      1. PagerInteface.php
    4. RouteHookRewrite.php
    5. RouteHookRouteMap.php
    6. CallableView.php
    7. DBReusePoolProxy.php
    8. FacadesAutoLoader.php
      1. FacadesBase.php
    9. HookChain.php 这个独立文件没用到。
    10. JsonRpcExt.php
      1. JsonRpcClientBase.php
    11. PluginForSwooleHttpd.php
    12. RedisManager.php
    13. RedisSimpleCache.php
    14. RouteHookDirectoryMode.php
    15. RouteHookPathInfoCompat.php
    16. StrictCheck.php
      1. StrictCheckModelTrait.php
      2. StrictCheckServiceTrait.php
    17. Lazybones.php
  7. Helper/ 助手类

    1. HelperTrait.php
    2. ControllerHelper.php
    3. ModelHelper.php
    4. ServiceHelper.php
    5. ViewHelper.php
    6. AppHelper.php

DuckPhp 全框架架构图

画成引用 SVG,下载查看大图 (源文件 duckphp.gv) 如下:

钻石表示核心节点

DuckPhp

  1. ExtendableStaticCallTrait
  2. SystemWrapperTrait 用于 同名函数替代系统系统函数。
  3. 比如 header(); ThrowOn 提供了 实用的 ThrowOn
  4. HttpServer 提供了 HttpServer 的实现。