mediashare/modules-provider

模块提供者是用于自动化和简化不同项目中某些代码包含的对象自动加载器。您可以调用来自不同文件夹的对象,并创建一个包含多个对象的内容容器。

0.2.4 2020-01-06 22:35 UTC

This package is auto-updated.

Last update: 2024-09-29 05:48:44 UTC


README

💫 模块提供者是用于自动化和简化不同项目中某些代码包含的对象自动加载器。您可以调用来自不同文件夹的对象,并创建一个包含多个对象的内容容器。

安装

composer require mediashare/modules-provider

基本用法

类自动加载

<?php
// ./index.php
require "vendor/autoload.php";
use Mediashare\ModulesProvider\Config;
use Mediashare\ModulesProvider\Modules;

$config = new Config();
$config->setModulesDir(__DIR__.'/modules/');
$config->setNamespace("Mediashare\\Modules\\");
$modules = new Modules($config);

模块

需求

  • 类名必须与php文件名匹配且唯一。
  • 如果您想在多个模块上执行自动化操作,则必须存在一个公共的run()函数。当您想通过PHP类来编排一系列事件时,可以使用此功能。
<?php
// ./modules/Hello.php
namespace Mediashare\Modules;

class Hello
{
    public $message;
    public function run() {
        if (empty($this->message)):
            $this->message = "Not message recorded :(";
        endif;
        echo $this->message;
        return $this;
    }

    public function setMessage(string $message) {
        $this->message = $message;
        return $this;
    }
}

执行

// ./index.php
require "vendor/autoload.php";
use Mediashare\ModulesProvider\Config;
use Mediashare\ModulesProvider\Modules;

$config = new Config();
$config->setModulesDir(__DIR__.'/modules/');
$config->setNamespace("Mediashare\\Modules\\");
$modules = new Modules($config);
$hello = $modules->get("Hello");
$hello->setMessage('Hello World!');
$hello->run();