linio / tortilla
一个以速度和简单性为核心构建的高度有见地的微框架。
1.5.0
2023-03-22 13:15 UTC
Requires
- php: >=8.1
- linio/common: ^4.1
- linio/microlog: ~1.0
- linio/util: ~4.0
- monolog/monolog: ^2.3
- nikic/fast-route: ~1.1
- pimple/pimple: ~3.0
- symfony/event-dispatcher: ~6.1.9
- symfony/http-foundation: ~6.1.9
- symfony/http-kernel: ~6.2.4
Requires (Dev)
- friendsofphp/php-cs-fixer: ^3.0
- phpspec/prophecy: ^1.16
- phpspec/prophecy-phpunit: ^2.0
- phpunit/phpunit: ^9.0
This package is auto-updated.
Last update: 2024-08-28 18:46:46 UTC
README
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 的反射机制来决定是否注入请求对象,我们会损失宝贵的毫秒。