ibnusyuhada / slim-tegar
Slim Tegar 是一个用于集成 PHP-DI 和 Slim 框架版本 3.x.x 的包。这个包是 http://php-di.org/doc/frameworks/slim.html 上的 Slim Bridge 的一个高级版本。您不需要扩展 PHP-DI 或 Slim 的任何类来配置容器。Slim Tegar 还提供
Requires
- php: >=5.5
- php-di/invoker: ^1.3
- php-di/php-di: ^5.3
- slim/slim: ^3.5
This package is not auto-updated.
Last update: 2024-09-14 19:20:11 UTC
README
Slim Tegar
Slim Tegar 是一个用于集成 PHP-DI 和 Slim 框架版本 3.x.x 的包。这个包是一个 Slim Bridge 的高级版本。您不需要扩展任何类来配置容器。Slim Tegar 还提供了实现闭包和 MVC 路由的简单方式。
要求
Slim Tegar 需要 PHP-DI 和 SlimFramework 版本 3.x.x。
安装
可以通过 Composer 安装 Slim Tegar
composer require ibnusyuhada/slim-tegar
使用
基本上,Slim Tegar 是用 PHP-DI 替换 Slim 的原始容器(Pimple)。您不需要扩展任何类来配置依赖项。一些高级用法已被添加到 http://php-di.org/doc/frameworks/slim.html 中的原始集成中。
基本用法
Slim Tegar 的使用简单易行。首先,创建一个示例项目,比如说 slimtegar。然后在该项目内安装 Slim Tegar。之后,创建一个名为 index.php 的文件,并包含以下简单的代码
<?php
require_once __DIR__ . '/vendor/autoload.php';
// call Slim Tegar
$app = new IS\Slim\Tegar\App();
// register route with Closure
$app->get("/", function($response){
$response->write("Welcome to Slim!");
return $response;
});
// run Slim
$app->run();
基本用法控制器
当您想实现 MVC 模式时,Slim Tegar 提供了一种简单的方式来注册所有控制器。首先,在 $app->run()
方法之前添加以下代码
// register route in MVC pattern
// just say the namespace controller and method
$app->get("/example", "App\Controllers\ExampleController@index");
其次,打开 composer.json 并添加以下代码
{
"autoload":
{
"psr-4": {
"App\\Controllers\\": "controllers"
}
}
}
别忘了 dumpautoload 以在 composer 中注册此命名空间。第三,在 slimtegar 项目中创建一个名为 controllers 的目录。然后在 controllers 目录中创建一个名为 ExampleController.php 的文件,并包含以下代码
<?php
namespace App\Controllers;
class ExampleController
{
public function index($response)
{
$response->write("Controller example with index as method");
return $response;
}
}
第四,打开您喜欢的浏览器,并访问 URI example。
配置
在 Slim Tegar 中,配置变得简单易行。您不需要扩展 Slim 或 PHP-DI 的任何类。您只需要创建一个目录,然后将所有配置文件放入其中。基本上,Slim Tegar 有一个必须的配置目录。该目录的名称为 defaultConfiguration。在该目录中,您将看到两个文件:defaultConfiguration.php 和 settings.php。settings.php 的意义与 Slim(见 [https://slim.php.ac.cn/docs/tutorial/first-app.html])和 PHP-DI(见 [http://php-di.org/doc/frameworks/slim.html])中相同。然而,在更新设置时,您不需要修改这些文件。您只需要在项目中创建另一个名为 config 的目录,然后在其中创建一个 PHP 文件。让我们将此文件命名为 config.php 并添加以下代码
<?php
return [
'settings' => [
'displayErrorDetails' => false,
'ibnu' => 'syuhada'
]
];
上面的代码将更新 displayErrorDetails
并添加新的设置项。之后,告诉 Slim Tegar 配置目录的位置。以下是在 index.php 中的示例代码
<?php
require_once __DIR__ . '/vendor/autoload.php';
// call Slim Tegar
$path = __DIR__ . '/config';
$app = new IS\Slim\Tegar\App($path);
// register route with Closure
$app->get("/", function($response){
$response->write("Welcome to Slim!");
return $response;
});
// run Slim
$app->run();
添加依赖项
如果您想添加其他依赖项,则只需创建一个返回数组的文件(见 http://php-di.org/doc/php-definitions.html),然后将该文件放入 config 目录中。然后 Slim Tegar 将自动为您注册依赖项。例如,假设我们想使用 Slim-Twig。首先,为 Slim 安装 Twig
composer require slim/twig-view
首先,在 config 目录下创建一个返回数组的文件。假设该文件的名称为 view.php。然后在文件中给出以下代码
<?php
return [
\Slim\Views\Twig::class => function (Interop\Container\ContainerInterface $c) {
$twig = new \Slim\Views\Twig('views', [
'cache' => 'cache'
]);
$twig->addExtension(
new \Slim\Views\TwigExtension(
$c->get('router'),
$c->get('request')->getUri()
)
);
return $twig;
}
];
其次,在控制器或闭包中注入Twig服务。以下是一个示例
$app->get('/', function ($response, Twig $twig) {
return $twig->render($response, 'home.twig');
});
别忘了自己创建 home.twig 文件。
接下来做什么?
要使用Slim Tegar,你需要做的一切都遵循 SlimFramework 文档。不同的地方在于你使用依赖注入容器的办法。你不再使用Pimple,而是使用PHP-DI。因此,阅读更多关于 PHP-DI 文档 的信息,以了解高级用法。为了更好地理解,请查看Slim Tegar包内的示例用法。
致谢
许可证
MIT 许可证。