mediashare / modules-provider
模块提供者是用于自动化和简化不同项目中某些代码包含的对象自动加载器。您可以调用来自不同文件夹的对象,并创建一个包含多个对象的内容容器。
0.2.4
2020-01-06 22:35 UTC
Requires
- league/climate: ^3.5
Requires (Dev)
- tracy/tracy: ^2.7
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();