brtriver/slim3-controller

为Slim3提供的匿名控制器和特性类

v0.1 2016-01-01 16:54 UTC

This package is not auto-updated.

Last update: 2024-09-14 18:09:45 UTC


README

Build Status

匿名控制器和特性类为Slim3(PHP7),我们可以在PHP7中使用匿名类。因此,我使用匿名类而不是匿名函数。现在Slim3支持PSR-7接口的Request和Response对象。Slim3使用扩展对象,并在匿名函数中使用它。我们直接使用Request和Response对象,因此我尝试使用匿名类来编写控制器动作逻辑,以便于阅读性。 了解更多

但我们在使用Request和Response对象,因此我尝试使用匿名类来编写控制器动作逻辑,并且易于阅读。 了解更多

需求

  • PHP 7.0或更高版本。
  • Slim3

安装

通过Composer安装

composer require brtriver/slim3-controller

使用方法

你可以阅读 示例代码

以下为示例代码:

use Brtriver\Controller\Controller;

$app->get('/hello/{name}', new class($app) extends Controller {

        public function action($args)
        {
            return $this->render($this->container['greet'] . $args['name']);
        }
});
  • 控制器类具有以下方法和类属性。
    • 方法
      • action($args): 你应该在该方法中编写你的控制器逻辑。
      • render($output): 辅助方法,用于以200状态渲染$ouput。
      • render404($output): 辅助方法,用于以404状态渲染$ouput。
    • 属性
      • $this->request
      • $this->response
      • $this->app
      • $this->container

如果使用模板引擎(PHP或Twig等),则Templatable特性中有一个renderWithT方法可用。

use Brtriver\Controller\Controller;
use Brtriver\Controller\Templatable;
$app->get('/hello/{name}', new class($app) extends Controller {
        use Templatable;

        public function action($args)
        {
            return $this->renderWithT('web.html', ['name' => $args['name']]);
        }
});

如果使用JSON响应,则JsonResponse特性中有一个renderWithJson方法可用。

use Brtriver\Controller\Controller;
use Brtriver\Controller\JsonResponse;
$app->get('/json/{name}', new class($app) extends Controller {
	    use JsonResponse;

        public function action($args)
        {
            return $this->renderWithJson(['name' => $args['name']]);
        }
});

许可证

slim3-controller采用MIT许可证。