linio/tortilla

一个以速度和简单性为核心构建的高度有见地的微框架。

1.5.0 2023-03-22 13:15 UTC

README

Latest Stable Version License Build Status Scrutinizer Code Quality

Linio Tortilla 在 FastRoute 和 Pimple 的基础上提供了一层非常薄的 Web 抽象层。没有花哨的功能,轻量且高效。我们认为 Web 只是一个交付机制,没有任何框架应该规定你如何设计应用程序的架构。

就像美味的超薄玉米饼一样,你可以把它包在任何东西上。

安装

推荐通过 composer 安装 Linio Tortilla。

{
    "require": {
        "linio/tortilla": "~1.2"
    }
}

如果你需要帮助准备你的玉米饼,有一些食谱可供选择

$ composer create-project linio/burrito-recipe full_app
$ composer create-project linio/tortilla-recipe basic_app

测试

要运行测试套件,你需要通过 composer 安装依赖,然后运行 PHPUnit。

$ composer install
$ phpunit

目标

  • 不惜一切代价追求效率
  • 尽可能减少底层组件的数量
  • 处理复杂性

用法

准备你的玉米饼非常简单。这是一个简单的前端控制器示例

<?php

require '../vendor/autoload.php';

use Symfony\Component\HttpFoundation\Request;
use Symfony\Component\HttpFoundation\Response;
use Linio\Tortilla\Application;

$app = new Application();
$app->get('/hello/{name}', function (Request $request, $name) {
    return new Response('Hello ' . $name);
});

$app->run();

你也可以将控制器定义为服务而不是闭包。因为 Tortilla 应用程序也是一个 Pimple 容器

<?php

require '../vendor/autoload.php';

use Linio\Tortilla\Application;

$app = new Application();
$app['default'] = function () {
    return new Acme\Controller\DefaultController();
};
$app->get('/hello/{name}', 'default:indexAction');

$app->run();

定义操作

Linio Tortilla 调度器将始终将 HTTP 请求调度到你的控制器操作,作为第一个参数。方法签名如下所示

use Symfony\Component\HttpFoundation\Request;

public function yourAction(Request $request, $arg1, $arg2, ...);

我们这样做是为了保持调度过程的效率。如果我们决定使用 PHP 的反射机制来决定是否注入请求对象,我们会损失宝贵的毫秒。