Skip to content

Releases: bethropolis/plugin-system

v1.0.9

24 Mar 20:04

Choose a tag to compare

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 inside vendor/.
  • LifeCycle::append() and LifeCycle::remove() deleted. Plugins are loaded in-memory only — no more modifying host application files.
  • System::linkPluginToHook() now enforces string $hook, callable $callback type declarations.

Bug Fixes

  • System::executeHook() no longer crashes on Closure callbacks or string function callbacks.
  • Autoloader no 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

  • System and Manager config paths are now configurable instead of hardcoded to __DIR__.
  • Added System::setConfigFile() for syncing config paths.

Plugins

  • Modernized addition plugin with $name/$version properties.
  • Added text_modifier plugin (hooks as filters).
  • Added logger plugin (events/actions).
  • Added closure_test plugin (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-schema for Astro 4.x compat.
  • Fixed code.svg import to respect Astro base path.

New Contributors

Full Changelog: 1.0.8...1.0.9

Milestone 1.0.8: Docs to Guide

27 Aug 01:21

Choose a tag to compare

What's Changed

Full Changelog: 1.0.7...1.0.8

Milestone 1.0.7: Locked and Loaded!

26 Jul 21:08
c4c089d

Choose a tag to compare

What's Changed

Full Changelog: 1.0.6...1.0.7

Milestone 1.0.6: Need more Info!

25 Jul 16:28
9329c9f

Choose a tag to compare

What's Changed

Full Changelog: 1.0.5...1.0.6

Milestone 1.0.5: It's a Life cycle!

21 Jul 21:08
c27bc16

Choose a tag to compare

What's Changed

Full Changelog: 1.0.4...1.0.5

Milestone 1.0.4: Gotcha!

15 Jul 21:00
4be1933

Choose a tag to compare

What's Changed

Full Changelog: 1.0.3...1.0.4

Milestone 1.0.3: A Bug in the Mix

14 Jul 22:29
80f34f2

Choose a tag to compare

Fixed an autoloading problem

What's Changed

New Contributors

Full Changelog: 1.0.2...1.0.3

Milestone 1.0.2: The Adventure Continues

14 Jul 20:57
429a126

Choose a tag to compare

Milestone 1: The Odyssey Begins

12 Jul 02:55

Choose a tag to compare

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.