您(可能)从未听说过的5个PHP框架
#编程 #开源 #php #framework

如果您熟悉编程框架的概念,那么您可能听说过Django,Ruby on Rails或Laravel等框架。所有框架都有其优点和缺点。甚至PHP的创建者也教您not to use frameworks。例如,Laravel 可以在某些情况下很棒,但是它并不是要解决所有问题。正如孔子所说:

不要使用大炮杀死蚊子。

因此,我想花一些时间来谈论一些鲜为人知的PHP框架!

Fat-Free

Fat Free Framework

这个小宝石已经存在了十多年。它被吹捧为轻型全栈框架,非常轻巧,入门非常简单。它没有其他依赖性,因为它使用了自己的库,例如SMTP,Web插座和购物车篮子。它带有一个ORM(称为映射器),模板,缓存和CLI开箱即用。

作者使用的是几个不同的副项目,在完成工作方面取得了巨大成功。该文档很容易理解,并且在使用方面有很多很好的示例,但是像所有文档一样,可以改进。

它已经在第3版中持续了近9年,一些编码样式显示了其年龄,但是它仍然兼容至PHP 8.2。

示例“ Hello World”示例:

<?php
$f3 = require('path/to/base.php');
$f3->route('GET /', function() {
    echo 'Hello World';
});
$f3->run();

Mako

Mako Framework Logo

Mako由创作者freost源于挪威的土地。虽然许多框架被称为“轻”和“快速”,但实际上是轻快的,其中包括厨房水槽!

它具有从基本路由到加密/签名,ORM,i18n,日志记录,会话,模板等等!

版本9已从12/2022发行,它丢弃了对PHP 7.4的支持。版本8仍可用于支持7.4版。

示例“ Hello World”示例:

app/routing/routes.php

<?php
/** @var \mako\http\routing\Routes $routes */
$routes->get('/', function() {
    return "Hello World";
});

Flight

Flight PHP Logo

这是来自Mike Cao的微型框架,这意味着它没有其他所有较大的框架可能拥有的所有其他铃铛。尽管功能弥补了速度!

,但缺乏功能。

,它具有出色的路由平台,一个基本的模板系统,并且如果您选择覆盖现有功能,则易于扩展接口。

从撰写本文起,大约一年就没有对其进行更新,但确实支持PHP 8.1!

示例“ Hello World”示例:

<?php
require 'flight/Flight.php';

Flight::route('/', function(){
  echo 'Hello World';
});

Flight::start();

Nette

Nette Framework Components

Nette实际上已经在捷克共和国的一段时间内一直在安静。这是一个完整的堆栈“框架”或您可以用来构建Web应用程序的组件系统。他们遵循典型的MVC设置,但在Controller上选择Presenter的名称。作为额外的奖励,您可以在

上添加“插件”。

您可能已经在您从事过的其他项目中使用了Nette的一些工具!有非常可扩展的Tracy用于调试类似于Whoosh,而Latte用于直观的HTML模板。

版本3.1.8发布了11/2022,支持PHP 7.2-8.2。版本4(在其中)将支持PHP 8+。

示例“ Hello World”示例:

app/Presenters/RouterFactory.php

<?php
declare(strict_types=1);

namespace App\Router;

use Nette;
use Nette\Application\Routers\RouteList;

final class RouterFactory
{
    use Nette\StaticClass;

    public static function createRouter(): RouteList
    {
        $router = new RouteList;
        $router->addRoute('/', 'Homepage:view');
        return $router;
    }
}

app/Presenters/HomepagePresenter.php

<?php
declare(strict_types=1);

namespace App\Presenters;

use Nette;

final class HomepagePresenter extends Nette\Application\UI\Presenter
{
    public function renderView() {
        $this->sendResponse(new \Nette\Application\Responses\TextResponse('Hello World'));
    }
}

FOMO

Fomo Logo

FOMO由伊朗开发商amirfaramarzi创建。该框架位于异步事件驱动的框架swoole之上,该框架从应用程序中创造出疯狂的性能级别(我们在谈论/rust的性能水平)!在the Web Frameworks Benchmark上查看表演。

这是一个微型框架,具有类似于Slimphp的基本路由,控制器和中间件。您必须安装swoole扩展程序才能正常工作,以使其增加复杂性(尽管希望使用您的设置很容易)。

示例“ Hello World”示例:

router/router.php

<?php

use Fomo\Facades\Route;

Route::get('/', function () {
    return response()->plainText('Hello World');
});

启动Swoolee服务器:

php engineer server:start

结论

您可以看到,在框架方面有很多选择,每个选择都有自己的一组权衡。您是在创建简单的API吗?好吧,您可能不需要全部吹牛/蛋糕/YII应用程序。您是否在与成千上万个活跃客户的繁华工作环境中建立强大的企业软件?对于Laravel或Symfony来说,这可能更有意义。