承接 bethropolis/plugin-system 相关项目开发

从需求分析到上线部署,全程专人跟进,保证项目质量与交付效率

邮箱:yvsm@zunyunkeji.com | QQ:316430983 | 微信:yvsm316

bethropolis/plugin-system

Composer 安装命令:

composer require bethropolis/plugin-system

包简介

A lightweight plugin system & manager for your PHP project

README 文档

README

PHP test CodeFactor Contributions GitHub version

This is a lightweight, flexible, hook and event based plugin manager and system.

It allows you to easily integrate plugins feature into your PHP applications, providing a modular and extensible architecture.

Features

  • Easy integration
  • Dynamic loading
  • Hook-based architecture
  • Event-driven programming
  • Flexible and extensible
  • plugin manager included
  • plugin life cycle

Installation

you will require composer to install. Run the following command in your project directory:

composer require bethropolis/plugin-system

you can also download the latest release and add it to your project directory.

note that if you do this you will have to require the autoloader file into your project scripts. example

require "plugin-system/src/autoload.php";

Usage

Loading Plugins

To load plugins from a specific directory, use the loadPlugins method:

require "vendor/autoload.php"; // for download installed method just replace this line with the autoloader.

use Bethropolis\PluginSystem\System;

$dir = __DIR__ . "/examples/"; # directory to load plugins from
System::loadPlugins($dir);

Linking Plugins to Hooks

Plugins functions can be linked to hooks using the linkPluginToHook method. This allows you to define actions that will be executed when a particular hook is triggered:

use Bethropolis\PluginSystem\System;

// Link a plugin function to a hook
System::linkPluginToHook('my_hook', $callback);

Triggering Hooks and Events

Hooks can be triggered using the executeHook() method, and events can be triggered using the triggerEvent() method. Here's an example:

use Bethropolis\PluginSystem\System;

// Trigger a hook
System::executeHook('my_hook', $pluginName, ...$args);

// trigger multiple hooks
System::executeHooks(['my_hook1', 'my_hook2'], $pluginName, ...$args);

# Events
// Register an event
System::registerEvent('my_event');

// Add an action to the event
System::addAction('my_event', function ($arg) {
    // Action code here
});

// Trigger the event
System::triggerEvent('my_event', ...$args);

plugin

here is an example of a plugin:

// eg. FILE: /plugins-folder/examplepugin.php

class ExamplePlugin extends \Bethropolis\PluginSystem\Plugin
{

    public function initialize()
    {
        $this->linkHook('my_hook', array($this, 'myCallback'));
    }



    public function myCallback($name = [])
    {
        $name = array_shift($name);
        return "hello {$name}";
    }
}

more Examples

The examples directory contains sample plugins that demonstrate the usage of the Plugin System.

Contributing

Contributions to the project are welcome! If you encounter any issues, have suggestions for improvements, or would like to add new features, please feel free to open an issue or submit a pull request.

About

this project was made to be a plugin management system for another one of my project but I hope it can help someone else out there.

License

this project is released under the MIT License. You can find more details in the LICENSE file.

bethropolis/plugin-system 适用场景与选型建议

bethropolis/plugin-system 是一款 基于 PHP 开发的 Composer 扩展包,目前已累计 26 次下载、GitHub Stars 达 6, 最近一次更新时间为 2023 年 07 月 12 日, 在 PHP 生态内属于活跃度较高的组件。

它主要适用于以下技术方向: 「plugin」 「plugin-manager」 「plugin-system」 等业务场景。在实际项目中,围绕这些方向常见需要落地的问题包括:接口对接、性能调优、并发安全、与既有框架(Laravel / ThinkPHP / Yii / Webman 等)的兼容适配,以及生产环境的日志埋点与稳定性保障。

我们在过去多个企业项目中使用过 bethropolis/plugin-system 或与其功能相近的方案,如果你在选型或落地过程中遇到问题,例如 版本兼容、二次改造、私有化封装、与内部系统对接、生产 BUG 排查,欢迎联系我们协助评估。

围绕 bethropolis/plugin-system 我们能提供哪些服务?
定制开发 / 二次开发

基于 bethropolis/plugin-system 在你已有业务上做功能扩展、字段裁剪、UI 适配、与内部账号 / 权限 / 日志系统的深度对接。

BUG 修复 & 性能优化

线上偶发问题、内存泄漏、慢查询、并发异常等排查修复;针对高流量场景做缓存、队列、索引层面的调优。

项目外包 & 长期维护

承接完整的项目从需求 → 设计 → 开发 → 上线 → 长期运维;也可按月提供技术保姆服务。

yvsm@zunyunkeji.com QQ:316430983 微信:yvsm316 西安尊云信息科技 · 专注 PHP / Go / 分布式系统研发

统计信息

  • 总下载量: 26
  • 月度下载量: 0
  • 日度下载量: 0
  • 收藏数: 6
  • 点击次数: 9
  • 依赖项目数: 0
  • 推荐数: 0

GitHub 信息

  • Stars: 6
  • Watchers: 2
  • Forks: 1
  • 开发语言: PHP

其他信息

  • 授权协议: MIT
  • 更新时间: 2023-07-12