eventerza / module-composer-installer
此包已废弃,不再维护。未建议替代包。
v1.0.0
2017-07-03 06:29 UTC
Requires
- php: ^7.0
- composer-plugin-api: ^1.0
- composer/composer: ^1.0
- eventerza/module-core: *
Requires (Dev)
- phpmd/phpmd: @stable
- phpunit/phpunit: ^5.4
- squizlabs/php_codesniffer: 2.*
This package is not auto-updated.
Last update: 2021-01-28 12:41:03 UTC
README
此模块注册了您所有的Slim 3模块,并加载了依赖项。
使用方法
Slim 3项目
将新的composer包添加到您的composer.json文件中
composer require mc388/slim-composer-installer
在Slim 3项目中创建一个App类 src/App.php
<?php namespace SlimTest; use Eventerza\ComposerInstaller\Autoloader; /** * Class App initialize the slim app * @package App */ class App extends \Slim\App { /** * App constructor. */ public function __construct() { parent::__construct([]); $this->loadModules(); } /** * Load all installed slim-modules */ private function loadModules() { $autoloader = new Autoloader(); // Get all modules foreach ($autoloader->getModules() as $module) { // Iterate over each module namespace foreach ($module['namespaces'] as $namespace) { // Build class name $moduleClass = $namespace . 'App'; // Instantiate module class new $moduleClass($this); } } } }
public/index.php文件应如下所示
<?php use SlimTest\App; session_start(); require __DIR__ . '/../vendor/autoload.php'; $app = new App(); $app->run();
Slim模块
要使用此包,您的Slim 3模块有几个要求。composer包类型为slim-module,并且设置了autoloader/psr-4属性。
以下是composer.json文件的示例
{
"name": "mc388/slim-test",
"type": "slim-module",
"autoload": {
"psr-4": {
"Mc388\\SlimTest\\": "src"
}
},
"require": {
"mc388/slim-composer-installer": "v1.0.0"
}
}
将所有依赖项放入src/App.php文件中,例如
<?php namespace Mc388\SlimTestModule; use Interop\Container\ContainerInterface; use Slim\App as SlimApp; class App { /** * App constructor. * @param SlimApp $app */ public function __construct(SlimApp $app) { /** @var ContainerInterface $container */ $container = $app->getContainer(); $container['view'] = function (ContainerInterface $container) { // Init twig }; $app->get('/test', function ($request, $response) { return 'Hello World!'; }); } }
安装模块后,应可访问路由/test