wonderwp / wonderwp
WonderWP 框架。一个将现代和工业级开发能力带给 WordPress 的框架
Requires
- php: >=7.1
- wonderwp/api: ^1.2
- wonderwp/asset: ^2.0
- wonderwp/autoload-wwp: ^1.3
- wonderwp/cache: ^1.1
- wonderwp/customposttype: ^1.3
- wonderwp/dependency-injection: ^1.1
- wonderwp/filter: ^1.1
- wonderwp/form: ^1.5
- wonderwp/functions: ^1.1
- wonderwp/generator-wwp: ^2.3
- wonderwp/hook: ^1.1
- wonderwp/http: ^1.1
- wonderwp/http-foundation: ^1.1
- wonderwp/logging: ^1.2
- wonderwp/mailing: ^1.3
- wonderwp/media: ^1.2
- wonderwp/notification: ^1.1
- wonderwp/panel: ^1.2
- wonderwp/plugin-skeleton: ^1.4
- wonderwp/repository: ^1.3
- wonderwp/routing: ^1.1
- wonderwp/sanitizer: ^1.0
- wonderwp/search: ^1.2
- wonderwp/service: ^1.1
- wonderwp/shortcode: ^1.1
- wonderwp/task: ^1.1
- wonderwp/template: ^1.2
Requires (Dev)
- johnpbloch/wordpress: ^4.7
- phpunit/phpunit: ^5.1
This package is auto-updated.
Last update: 2024-09-23 13:05:42 UTC
README
这是一个 WordPress 框架,其目标是赋予 WordPress 工业级开发能力。
适用于谁?
可能不是每个人。
如果您
- 愿意采用工业化和现代化的开发流程。
- 面临的项目既适合 CMS,又包含严重的代码挑战。
- 您有工业级开发需求,例如高产量、可重复的解决方案、内部生产团队。
- 您正在考虑利用以前的项目来构建可重用的插件和主题。使用 wonderwp 产生的插件和主题旨在是完整的对象、一致的、可预测的、可组合的、可测试的和持久的。
- 您习惯于使用框架,而不是 CMS
wonderwp 为 WordPress 增加了什么?
概述
- Composer 能力/自动加载
- 命名空间
- 依赖注入容器
- 将程序性概念转换为面向对象接口、PSRs 和实现,例如
- 路由
- 缓存
- 表单
- HTTP 基础
- 日志记录
- 电子邮件
- 媒体
- 通知
- 帖子面板
- 搜索引擎
- 服务,即可与之交互的类
- 激活/停用
- 路由
- 资产管理
- Ajax 端点
- 短代码
- WP-CLI 命令
- MVC 机制
- 插件蓝图(文件夹组织、命名约定、完整对象方法、空的 function.php 文件)
更深入一点
Composer
我们想确保基于 WonderWp 的工作能够很好地与 composer 一起使用。因此,此框架在此处: https://packagist.org.cn/packages/wonderwp/wonderwp
您可以这样安装
composer require wonderwp/wonderwp
对于基于 composer 的 WordPress 架构,我们推荐 https://roots.io/bedrock/。
Composer 还包含一个自动加载器,以避免在插件中的每个地方都需要引入文件。框架鼓励您遵循 PSR4 建议,并使用自动加载器。
依赖注入/接口和服务
我们希望我们的代码尽可能模块化,并将依赖注入能力带给 WordPress。
当使用依赖注入容器时,您可以切换到容器中请求的键背后的对象,只要它实现了给定的接口。因为如果实现了,您将确信该对象公开了您的代码正常运行所需的所有公共方法。
这就是为什么我们除了添加 DI 容器外,还添加了许多用于处理 WordPress 核心概念和更广泛编程概念的接口(电子邮件、路由、日志记录、缓存)...
服务
为了遵循良好的面向对象原则,我们鼓励开发者在通过使用此框架时采用一些概念。
- 完整的对象插件,没有程序性代码
- 每个任务类型一个对象,即服务,其目的是只有一个责任。这适用于钩子管理、短代码管理、资产管理、路由管理等。
MVC
遵循完整对象哲学,短代码或自定义路由导致公共或管理员输出的管理由控制器处理。控制器通过与服务协同工作来获取所需数据,并将其传递给视图。目前,视图默认不依赖于此框架的模板引擎,但您可以轻松地添加自己的。
插件蓝图
此框架提出了一种按照PSR4推荐组织类文件夹的方式,一个用于插件管理端的admin文件夹,一个用于插件公共端的public文件夹,但这些都是非强制性的,您可以按自己的意愿操作。
此外,还有一个插件生成器,可以帮助您快速开始插件开发。
文档
您可以在文档文件夹中找到更多详细的文档。
测试
启动测试的命令
vendor/bin/phpunit tests/suites --bootstrap tests/bootstrap.php --coverage-html tests/reports/coverage.html --whitelist src/WonderWp/Framework --log-junit tests/reports/phunit.xml
贡献
- 您可以通过Fork此存储库并提交Pull Requests来为此项目做出贡献
- 我们正在寻找单元测试的贡献者
更新日志
您可以在changelog.md下找到更新日志