mc388 / slim-composer-installer
v1.0.0
2016-07-11 21:16 UTC
Requires
- composer-plugin-api: ^1.0
This package is not auto-updated.
Last update: 2024-09-24 22:55:27 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 Mc388\SlimComposerInstaller\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 应该可用