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 还提供

v1.0.0 2016-08-18 04:36 UTC

This package is not auto-updated.

Last update: 2024-09-14 19:20:11 UTC


README

Latest Stable Version License

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.phpsettings.phpsettings.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包内的示例用法。

致谢

Ibnu Syuhada

许可证

MIT 许可证