Here is the documentation page about how to upgrade a plugin to the new common setup including the framework.
It's comprehensive but not complete yet.
Here's a Markdown checklist for the upgrade steps. This can be copied for each plugin, for example in a GitHub issue or pull request description.
- [ ] Create GitHub repository
- [ ] Basic setup: Copy common files from example plugin
- [ ] Local development site
- [ ] Unit tests with PHPUnit
- [ ] End-to-end tests with Playwright
- [ ] Upgrade Framework
- [ ] Upgrade Build Pipeline
- [ ] Upgrade Assets Bundler
- [ ] Code formatter using Roller (CSS, Sass, JavaScript, TypeScript) and PHP Beautify
Previously..
This document tracks the progress of upgrading to the new modules in the Framework and Template System, from the deprecated Interface module and Plugin Framework v2.
See documentation pages for:
This is relevant for Loops & Logic, Tangible Blocks, and all plugins as they transition to using the new framework.
Rationale
Here are some reasons why the Plugin Framework and Interface modules were deprecated.
- A lot of unused code, such as legacy plugin updater and licenser based on EDD server
- Monolithic build setup that builds all internal modules at once
- Written in old code design pattern (See framework/object)
The new modules are individual packages that can be documented, tested, built and published on their own.
How to upgrade
Open pull request for each plugin and perform the upgrade.
Replace Interface module
- Replace methods under
tangible_interface() with namespaced functions
Replace Plugin Framework
- Update
composer.json
Use the new Template System, or the Framework module by itself
- Replace methods under
tangible() or tangible_plugin_framework() with namespaced functions under tangible\framework
Interface module
Here are the features that were in the Interface module. These are now consolidated with other Template System modules.
Plugin framework
Here are the features that were in the old plugin framework. They're being moved and rewritten into new modules.
Server-side utilities
Plugin features
Post type extensions
Here is the documentation page about how to upgrade a plugin to the new common setup including the framework.
It's comprehensive but not complete yet.
Here's a Markdown checklist for the upgrade steps. This can be copied for each plugin, for example in a GitHub issue or pull request description.
Previously..
This document tracks the progress of upgrading to the new modules in the Framework and Template System, from the deprecated Interface module and Plugin Framework v2.
See documentation pages for:
This is relevant for Loops & Logic, Tangible Blocks, and all plugins as they transition to using the new framework.
Rationale
Here are some reasons why the Plugin Framework and Interface modules were deprecated.
The new modules are individual packages that can be documented, tested, built and published on their own.
How to upgrade
Open pull request for each plugin and perform the upgrade.
Replace Interface module
tangible_interface()with namespaced functionsReplace Plugin Framework
composer.jsonUse the new Template System, or the Framework module by itself
tangible()ortangible_plugin_framework()with namespaced functions undertangible\frameworkInterface module
Here are the features that were in the Interface module. These are now consolidated with other Template System modules.
modules/chartmodules/date-pickermodules/embedmodules/glidermodules/prismmodules/selectmodules/slidermodules/sortablemodules/tablePlugin framework
Here are the features that were in the old plugin framework. They're being moved and rewritten into new modules.
framework/ajaxframework/dateframework/hjsonframework/htmlframework/preactframework/formatframework/logServer-side utilities
Plugin features
Post type extensions
admin/post-types/sortable-post-typeadmin/post-types/duplicate-post