参考首页

介绍

本参考是所有 DuckPhp 类 的规范参考。不包含内部 trait 。

本参考也索引所有选项。

架构图

DuckPhp

图解:

灰色尖框为可单独使用类

方尖为 Trait

组件类用统一标志

按 DuckPhp 文件结构介绍的类

遵循 PSR-4 的文件结构,Core/App, Core/Kernel, Core/HttpServer 是连接性节点。 其他节点都是独立的。

链接指向参考文件。

  1. Core 目录是核心目录,核心框架。基本功能都在 Core 里实现 3. ComponentBase.php 组件基类 4. ComponentInterface.php 组件接口 5. App.php 核心应用类。 1. Kernel.php 核心Trait 以下是 核心必备组件 1. AutoLoader.php 自动加载类 2. Configer.php 配置组件 3. View.php 视图组件 4. Route.php 路由组件 5. SuperGlobal.php 超全局变量替换组件 6. Logger.php 日志组件 7. ExceptionManager.php 异常管理组件 8. RuntimeState.php 运行期数据保存组件 2. ExtendableStaticCallTrait.php 扩展静态调用的 trait 3. SystemWrapperTrait.php 替换系统同名函数的 trait 4. Functions.php 全局函数列表 6. **AppPluginTrait.php ** 这个Trait用于把独立工程 App 转成插件 7. HttpServer.php 单独的 Http 服务器
  2. Db 目录是数据库目录
    1. DbAdvanceTrait.php 这个 trait 增加了 Db类的高级功能
    2. DbInterface.php Db 类满足 DbInterface 接口
    3. Db.php Db类
  3. DuckPhp.php 加载了默认扩展的 DuckPhp 入口 ,扩展自 Core/App
  4. Ext 目录是扩展目录,按字母排序。粗体部分为默认加载的扩展
    1. Cache.php 空缓存类
    2. CallableView.php 可接受函数调用的视图组件
    3. DbManager.php 数据库管理组件
    4. EmptyView.php 空视图组件
    5. EventManager.php 事件管理器
    6. FacadesAutoLoader.php 门面组件用于偷懒
      1. FacadesBase.php 门面类的基类
    7. JsonRpcExt.php Json 远程调用组件
      1. JsonRpcClientBase.php
    8. Misc.php 杂项功能组件
    9. Pager.php 分页类
      1. PagerInteface.php 分页接口
    10. RedisCache.php redis 缓存组件
    11. RedisManager.php Redis管理器组件
    12. RouteHookDirectoryMode.php 多个目录基准的模式组件
    13. RouteHookManager.php 路由钩子管理器
    14. **RouteHookPathInfoCompat.php **无程序路由设计模式组件
    15. RouteHookRouteMap.php 路由映射组件
    16. RouteHookRewrite.php 路由重写组件
    17. StrictCheck.php 严格检查模式组件
  5. Helper 目录,各种助手类
    1. HelperTrait.php 助手类公用 Trait
    2. ControllerHelper.php 控制器助手类
    3. ModelHelper.php 模型助手类
    4. BusinessHelper.php 服务助手类
    5. ViewHelper.php 视图助手类
    6. AppHelper.php 工程应用助手类
  6. HttpServer 目录
    1. HttpServer.php Http 服务器。
  7. SingletonEx目录
    1. SingletonEx.php 可变单例trait
  8. ThrowOn目录
    1. ThrowOn.php 可抛 trait

全部文件一览

  1. export LC_ALL='C';tree src
  2. src
  3. |-- Core
  4. | |-- App.php
  5. | |-- AppPluginTrait.php
  6. | |-- AutoLoader.php
  7. | |-- ComponentBase.php
  8. | |-- ComponentInterface.php
  9. | |-- Configer.php
  10. | |-- ExceptionManager.php
  11. | |-- ExtendableStaticCallTrait.php
  12. | |-- Functions.php
  13. | |-- Kernel.php
  14. | |-- Logger.php
  15. | |-- Route.php
  16. | |-- RuntimeState.php
  17. | |-- SuperGlobal.php
  18. | |-- SystemWrapperTrait.php
  19. | `-- View.php
  20. |-- Db
  21. | |-- Db.php
  22. | |-- DbAdvanceTrait.php
  23. | `-- DbInterface.php
  24. |-- DuckPhp.php
  25. |-- Ext
  26. | |-- Cache.php
  27. | |-- CallableView.php
  28. | |-- DbManager.php
  29. | |-- EmptyView.php
  30. | |-- EventManager.php
  31. | |-- FacadesAutoLoader.php
  32. | |-- FacadesBase.php
  33. | |-- JsonRpcClientBase.php
  34. | |-- JsonRpcExt.php
  35. | |-- Misc.php
  36. | |-- Pager.php
  37. | |-- PagerInterface.php
  38. | |-- RedisCache.php
  39. | |-- RedisManager.php
  40. | |-- RouteHookApiServer.php
  41. | |-- RouteHookDirectoryMode.php
  42. | |-- RouteHookManager.php
  43. | |-- RouteHookPathInfoCompat.php
  44. | |-- RouteHookRewrite.php
  45. | |-- RouteHookRouteMap.php
  46. | `-- StrictCheck.php
  47. |-- Helper
  48. | |-- AppHelper.php
  49. | |-- BusinessHelper.php
  50. | |-- ControllerHelper.php
  51. | |-- HelperTrait.php
  52. | |-- ModelHelper.php
  53. | `-- ViewHelper.php
  54. |-- HttpServer
  55. | `-- HttpServer.php
  56. |-- SingletonEx
  57. | `-- SingletonEx.php
  58. `-- ThrowOn
  59. `-- ThrowOn.php

选项索引

按字母顺序,加粗表示默认选项。

@forscript genoptions.php#options-md-alpha

@forscript end

选项索引

按类名排序加粗表示默认选项。

@forscript genoptions.php#options-md-class

  • DuckPhp\Core\App
    • ‘close_resource_at_output’ => false, 在输出前关闭资源(DB,Redis)
    • ‘default_exception_do_log’ => true, 错误的时候打开日志
    • ‘default_exception_self_display’ => true, 错误的时候打开日志
    • ‘error_404’ => NULL, 404 页面
    • ‘error_500’ => NULL, 500 页面
    • ‘error_debug’ => NULL, 错误调试页面
    • ‘ext’ => array ( ), 默认开启的扩展
    • ‘handle_all_dev_error’ => true, 接管一切开发错误
    • ‘handle_all_exception’ => true, 接管一切异常
    • ‘is_debug’ => false, 是否调试状态
    • ‘namespace’ => NULL, 命名空间
    • ‘override_class’ => ‘’, 重写类名
    • ‘path’ => NULL, 基础目录
    • ‘platform’ => ‘’, 平台
    • ‘skip_404_handler’ => false, 跳过404处理
    • ‘skip_exception_check’ => false, 跳过异常检查
    • ‘skip_plugin_mode_check’ => false, 跳过插件模式检查
    • ‘use_autoloader’ => false, 使用系统自带加载器
    • ‘use_flag_by_setting’ => true, 从设置文件里再入is_debug,platform.
    • ‘use_short_functions’ => true, 使用短函数, __url, __h 等 ,详见 Core\Functions.php
    • ‘use_super_global’ => true, 使用super_global 类。关闭以节约性能
  • DuckPhp\Core\AutoLoader
    • ‘autoload_cache_in_cli’ => false, 在 cli 下开启缓存模式
    • ‘autoload_path_namespace_map’ => array ( ), 自动加载的目录和命名空间映射
    • ‘namespace’ => ‘’, 命名空间
    • ‘path’ => ‘’, 基础目录
    • ‘path_namespace’ => ‘app’, 命名空间目录
    • ‘skip_app_autoload’ => false, 跳过 自动加载
  • DuckPhp\Core\Configer
    • ‘all_config’ => array ( ), 所有配置
    • ‘config_ext_files’ => array ( ), 额外的配置文件数组
    • ‘path’ => ‘’, 基础目录
    • ‘path_config’ => ‘config’, 配置目录
    • ‘setting’ => array ( ), 设置,预先载入的设置
    • ‘setting_file’ => ‘setting’, 设置文件
    • ‘use_env_file’ => false, 使用 .env 文件
    • ‘use_setting_file’ => false, 使用设置文件
  • DuckPhp\Core\ExceptionManager
    • ‘default_exception_handler’ => NULL, 默认异常句柄
    • ‘dev_error_handler’ => NULL, 默认开发错误句柄
    • ‘handle_all_dev_error’ => true, 接管一切开发错误
    • ‘handle_all_exception’ => true, 接管一切异常
    • ‘system_exception_handler’ => NULL, 接管系统的异常管理
  • DuckPhp\Core\Logger
    • ‘log_file_template’ => ‘log_%Y-%m-%d_%H_%i.log’, 日志文件名模板
    • ‘log_prefix’ => ‘DuckPhpLog’, 日志前缀
    • ‘path’ => ‘’, 基础目录
    • ‘path_log’ => ‘logs’, 日志目录
  • DuckPhp\Core\Route
    • ‘controller_base_class’ => NULL, 控制器基类
    • ‘controller_class_postfix’ => ‘’, 控制器类名后缀
    • ‘controller_enable_slash’ => false, 激活兼容后缀的 /
    • ‘controller_hide_boot_class’ => false, 控制器标记,隐藏特别的入口
    • ‘controller_methtod_for_miss’ => ‘_missing’, 控制器,缺失方法的调用方法
    • ‘controller_path_ext’ => ‘’, 扩展名,比如你要 .html
    • ‘controller_prefix_post’ => ‘do_‘, 控制器,POST 方法前缀
    • ‘controller_use_singletonex’ => false, 控制器使用单例模式
    • ‘controller_welcome_class’ => ‘Main’, 控制器默认欢迎方法
    • ‘namespace’ => ‘LazyToChange’, 命名空间
    • ‘namespace_controller’ => ‘Controller’, 控制器的命名空间
    • ‘skip_fix_path_info’ => false, 跳过 PATH_INFO 修复
  • DuckPhp\Core\RuntimeState
    • ‘use_output_buffer’ => false, 使用 OB 函数缓冲数据
  • DuckPhp\Core\SuperGlobal
  • DuckPhp\Core\View
    • ‘path’ => ‘’, 基础目录
    • ‘path_view’ => ‘view’, 视图目录
    • ‘path_view_override’ => ‘’, 覆盖视图目录
    • ‘skip_view_notice_error’ => true, 跳过 View 视图的 notice
  • DuckPhp\Ext\CallableView
    • ‘callable_view_class’ => NULL, callableview 视图类
    • ‘callable_view_foot’ => NULL, callableview 页脚
    • ‘callable_view_head’ => NULL, callableview 页眉
    • ‘callable_view_prefix’ => NULL, callableview 视图函数模板
    • ‘callable_view_skip_replace’ => false, callableview 可调用视图跳过默认视图替换
    • ‘path’ => ‘’, 基础目录
    • ‘path_view’ => ‘view’, 视图目录
    • ‘path_view_override’ => ‘’, 覆盖视图目录
    • ‘skip_view_notice_error’ => true, 跳过 View 视图的 notice
  • DuckPhp\Ext\Cache
  • DuckPhp\Ext\DbManager
    • ‘database’ => NULL, 单一数据库配置
    • ‘database_list’ => NULL, 数据库列表
    • ‘database_list_reload_by_setting’ => true, 从设置里读取数据库列表
    • ‘database_list_try_single’ => true, 尝试使用单一数据库配置
    • ‘database_log_sql_level’ => ‘debug’, 记录sql 错误等级
    • ‘database_log_sql_query’ => false, 记录sql 查询
  • DuckPhp\Ext\EmptyView
    • ‘empty_view_key_view’ => ‘view’, 给View 的key
    • ‘empty_view_key_wellcome_class’ => ‘Main/‘, 默认的 Main
    • ‘empty_view_skip_replace’ => false, 跳过默认的view
    • ‘empty_view_trim_view_wellcome’ => true, 跳过 Main/
    • ‘path’ => ‘’, 基础目录
    • ‘path_view’ => ‘view’, 视图目录
    • ‘path_view_override’ => ‘’, 覆盖视图目录
    • ‘skip_view_notice_error’ => true, 跳过 View 视图的 notice
  • DuckPhp\Ext\EventManager
  • DuckPhp\Ext\FacadesAutoLoader
    • ‘facades_enable_autoload’ => true, 使用 facdes 的 autoload
    • ‘facades_map’ => array ( ), facade 映射
    • ‘facades_namespace’ => ‘Facades’, facades 开始的namespace
  • DuckPhp\Ext\JsonRpcExt
    • ‘jsonrpc_backend’ => ‘https://127.0.0.1‘, json 的后端
    • ‘jsonrpc_check_token_handler’ => NULL, 设置 token 检查回调
    • ‘jsonrpc_enable_autoload’ => true, json 启用 autoload
    • ‘jsonrpc_is_debug’ => false, jsonrpc 是否开启 debug 模式
    • ‘jsonrpc_namespace’ => ‘JsonRpc’, jsonrpc 默认的命名空间
    • ‘jsonrpc_service_interface’ => ‘’, json 服务接口
    • ‘jsonrpc_service_namespace’ => ‘’, json 命名空间
    • ‘jsonrpc_wrap_auto_adjust’ => true, jsonrpc 自动调整 wrap
  • DuckPhp\Ext\Misc
    • ‘path’ => ‘’, 基础目录
    • ‘path_lib’ => ‘lib’, 库目录
  • DuckPhp\Ext\RedisCache
    • ‘redis_cache_prefix’ => ‘’, redis cache 缓存前缀
    • ‘redis_cache_skip_replace’ => false, redis cache 跳过 默认 cache替换
  • DuckPhp\Ext\RedisManager
    • ‘redis’ => NULL, 单一Redisc配置
    • ‘redis_list’ => NULL, redis 配置列表
    • ‘redis_list_reload_by_setting’ => true, redis 使用 settting 文件
    • ‘redis_list_try_single’ => true, 尝试使用单一Redis配置
  • DuckPhp\Ext\RouteHookApiServer
    • ‘api_server_404_as_exception’ => false, API服务器, 404 引发异常的模式
    • ‘api_server_base_class’ => ‘’, API服务器, 接口,或基类, ~ 开始的表示是当前命名空间
    • ‘api_server_class_postfix’ => ‘’, API服务器, 类名后缀
    • ‘api_server_namespace’ => ‘Api’, API服务器, 命名空间,配合 namespace选项使用
    • ‘api_server_use_singletonex’ => false, API服务器, 使用可变单例模式,方便替换实现
    • ‘namespace’ => ‘’, 命名空间
  • DuckPhp\Ext\RouteHookDirectoryMode
    • ‘mode_dir_basepath’ => ‘’, 目录模式的基类
  • DuckPhp\Ext\RouteHookPathInfoCompat
    • ‘path_info_compact_action_key’ => ‘_r’, GET 动作方法名的 key
    • ‘path_info_compact_class_key’ => ‘’, GET 模式类名的 key
    • ‘path_info_compact_enable’ => false, 使用 _GET 模拟无 PathInfo 配置
  • DuckPhp\Ext\RouteHookRewrite
    • ‘rewrite_map’ => array ( ), 目录重写映射
  • DuckPhp\Ext\RouteHookRouteMap
    • ‘route_map’ => array ( ), 路由映射
    • ‘route_map_by_config_name’ => ‘’, 路由配置名,使用配置模式用路由
    • ‘route_map_important’ => array ( ), 重要路由映射
  • DuckPhp\Ext\StrictCheck
    • ‘controller_base_class’ => NULL, 控制器基类
    • ‘is_debug’ => false, 是否调试状态
    • ‘namespace’ => ‘LazyToChange’, 命名空间
    • ‘namespace_business’ => ‘’, strict_check 的business目录
    • ‘namespace_controller’ => ‘Controller’, 控制器的命名空间
    • ‘namespace_model’ => ‘’, strict_check 的model 目录
    • ‘postfix_batch_business’ => ‘BatchBusiness’, batchbusiness
    • ‘postfix_business_lib’ => ‘Lib’, businesslib
    • ‘postfix_ex_model’ => ‘ExModel’, ExModel
    • ‘postfix_model’ => ‘Model’, model
    • ‘strict_check_context_class’ => NULL, 不用传输过来的 app类,而是特别指定类
    • ‘strict_check_enable’ => true, 是否开启 strict chck

@forscript end

其他选项

这几个选项,不是放在 $options 的,所以特地在这里参考

DuckPhp\Core\AppPluginTrait

  1. 'plugin_path_namespace' => null,
  2. 'plugin_namespace' => null,
  3. 'plugin_routehook_position' => 'append-outter',
  4. 'plugin_path_conifg' => 'config',
  5. 'plugin_path_view' => 'view',
  6. 'plugin_search_config' => false,
  7. 'plugin_use_helper' => true,
  8. 'plugin_files_config' => [],
  9. 'plugin_url_prefix' => '',

DuckPhp\HttpServer\HttpServer

  1. 'host' => '127.0.0.1',
  2. 'port' => '8080',
  3. 'path' => '',
  4. 'path_document' => 'public',

DuckPhp\Ext\Pager

  1. 'url' => null,
  2. 'current' => null,
  3. 'page_size' => 30,
  4. 'page_key' => 'page',
  5. 'rewrite' => null,
  6. 'pager_context_class' => null,