betterpress / wordpress-symfony-edition
Requires
This package is auto-updated.
Last update: 2024-08-25 06:40:53 UTC
README
警告:这是预_alpha,概念验证内容
用Symfony方式实现的Wordpress。
Wordpress是一个功能强大、易于使用的平台,用于内容编辑,但它并非没有缺陷。本项目旨在解决其中一些问题。它受到了symfony世界的启发,并使用了symfony组件,大致符合symfony/framework-standard-edition
的结构。
安装
composer create-project betterpress/wordpress-symfony-edition --stability=dev
。您将需要输入数据库参数 - 此数据库必须已经存在并可访问。
接下来设置您的web服务器,文档根目录为./wordpress
文件夹。Composer已为您创建此文件夹。如果您只是尝试使用它,您可以在本地运行PHP服务器(确保在项目目录中运行)
php -S 0.0.0.0:8081 -t ./wordpress
如果您提供的数据库详细信息是空的数据库,现在访问您的网站,您应该会看到Wordpress安装界面。按照这些说明操作,您就可以开始使用了。
特性
真正的面向对象Wordpress操作
合理、结构良好的面向对象接口,用于管理所有那些函数调用。
服务容器
所有这些用于访问Wordpress功能的优雅接口都可以从容器中访问,并可以注入到您的自己的类中。
更清晰的钩子
在容器中标记一个服务来运行钩子,而不是到处都是add_action
。
为什么不直接...
使用Wordpress插件而不是包?
我们并不是说完全不要使用插件。您仍然可以使用。我们说的是,如果您认真对待交付一个经过深思熟虑、可靠和可维护的系统,那么那些能够“扩展WordPress以做到几乎任何事情”的代码片段应该由开发人员添加,并经过您拥有的任何质量保证流程,而不是不加思考或测试地通过Web界面添加。
根据经验,我们知道以这种方式管理代码的最好方法之一是通过composer
,以及一个类似于symfony的扩展系统,它允许适当的依赖注入,这使得代码更易于维护。
开发
测试在哪里?
直接在本项目中,没有。大部分代码都是实验性的,并不是首先进行测试。随着它的演变,当我有了关于各个部分如何相互作用的思路时,我会将它们提取到具有适当测试的独立仓库中。例如,请参阅betterpress/wordpress-adapter
。
结构
本节更多的是一个备注,并且正在发生很大的变化。请参阅composer.json
以获取当前的架构。
包
adamquaile/php-global-abstraction
:围绕PHP影响全局作用域的功能的包装器betterpress/wordpress-adapter
:围绕基本Wordpress函数的包装器,例如钩子、全局设置betterpress/wordpress-settings-api
:围绕Wordpress设置API的包装器betterpress/wordpress-shortcode-api
:围绕Wordpress设置API的包装器betterpress/wordpress-symfony-extension
:将所有组件连接在一起的扩展