Releases: bethropolis/plugin-system
Releases · bethropolis/plugin-system
v1.0.9
What's Changed
v1.0.9
Breaking Changes
Manager::initialize($dir, $configFile)now accepts an optional second parameter for the config file path. Config no longer writes insidevendor/.LifeCycle::append()andLifeCycle::remove()deleted. Plugins are loaded in-memory only — no more modifying host application files.System::linkPluginToHook()now enforcesstring $hook, callable $callbacktype declarations.
Bug Fixes
System::executeHook()no longer crashes on Closure callbacks or string function callbacks.Autoloaderno longer silently swallows exceptions on plugin load failures — errors are logged and re-thrown.
Security
- Removed
file_put_contents()calls that rewrote host application files (e.g.,index.php) during plugin install/uninstall.
Architecture
SystemandManagerconfig paths are now configurable instead of hardcoded to__DIR__.- Added
System::setConfigFile()for syncing config paths.
Plugins
- Modernized
additionplugin with$name/$versionproperties. - Added
text_modifierplugin (hooks as filters). - Added
loggerplugin (events/actions). - Added
closure_testplugin (verifies Closure and string callback handling).
Docs
- Updated all API docs, examples, and README to reflect new signatures.
- Added Hooks vs Events and Closures documentation sections.
- Migrated docs from npm to bun, pinned
zod-to-json-schemafor Astro 4.x compat. - Fixed
code.svgimport to respect Astro base path.
- Update .gitattributes by @totoprayogo1916 in #21
New Contributors
- @dependabot[bot] made their first contribution in #20
- @totoprayogo1916 made their first contribution in #21
Full Changelog: 1.0.8...1.0.9
Milestone 1.0.8: Docs to Guide
What's Changed
- Created CODE_OF_CONDUCT by @bethropolis in #8
- writing docs by @bethropolis in #9
- adding docs by @bethropolis in #10
- gooo by @bethropolis in #11
- Dev by @bethropolis in #12
- deploy fix by @bethropolis in #13
- bug fix by @bethropolis in #14
- writing docs by @bethropolis in #15
- fixes by @bethropolis in #16
Full Changelog: 1.0.7...1.0.8
Milestone 1.0.7: Locked and Loaded!
Milestone 1.0.6: Need more Info!
Milestone 1.0.5: It's a Life cycle!
Milestone 1.0.4: Gotcha!
Milestone 1.0.3: A Bug in the Mix
Fixed an autoloading problem
What's Changed
- psr-4 compliency by @bethropolis in #1
New Contributors
- @bethropolis made their first contribution in #1
Full Changelog: 1.0.2...1.0.3
Milestone 1.0.2: The Adventure Continues
Full Changelog: 1.0.0...1.0.2
Milestone 1: The Odyssey Begins
Features
-
Easy integration: The plugin system is designed to be easily integrated into your existing PHP projects.
-
Dynamic loading: Plugins can be loaded dynamically from a specified directory.
-
Hook-based architecture: Plugins can be linked to hooks, allowing them to execute actions when specific events occur.
-
Event-driven programming: Plugins can register events and define actions to be executed when those events are triggered.
-
Flexible and extensible: The system provides a flexible and extensible architecture, allowing you to add and manage plugins according to your application's needs.