欢迎
Fluff 是一个为 web 应用打造的微框架。整合当今主流的实践标准,帮助你实现高可用性的应用程序。
与传统的全栈式框架不同,它的核心简单,功能纯粹,从而使自身变得易于扩展。正因如此,你必须为自己的应用做出一些决策,比如 选择哪一类数据抽象层、使用哪种模板引擎、甚至是搭配何种 HTTP 组件。这并不意味着应用的功能缺失,而是因为这些功能已经有很多类库实现过了,这些第三方的源码包可以通过 composer
轻松获得。
我们相信“让专业的人做专业的事”会带来最好的结果,在软件架构中也是如此。Fluff 专注于”融合各方的力量“来解决问题,使用 Fluff 的开发者也是如此,我们给与使用者最大限度的选择权,挑选最专业的或最适合的应用组件 将使你的程序更好更快的运转。
安装
推荐使用 PHP 的包管理工具 composer 安装 Fluff
composer require constanze-standard/fluff "^2.0"
另外,你也可以从 Github 上获得 Fluff 的源代码。
Fluff 的风格
Fluff 并不是“开箱即用”的框架,我们希望在合理的架构之下,对应用的各个层面做到最细粒度的控制。这就意味着相比传统意义上的 MVC
框架会有更多的前期准备,但随着工作的进行,应用程序也将更加符合你的预期。
use ConstanzeStandard\Fluff\Application;
use ConstanzeStandard\Fluff\Middleware\EndOutputBuffer;
use ConstanzeStandard\Fluff\RequestHandler\Handler;
use Psr\Http\Message\ServerRequestInterface;
use Nyholm\Psr7\Response;
use Nyholm\Psr7\ServerRequest;
require __DIR__ . '/vendor/autoload.php';
$handler = new Handler(function(ServerRequestInterface $request) {
return new Response(200, [], 'hello world');
});
$app = new Application($handler);
$app->addMiddleware(new EndOutputBuffer());
$request = new ServerRequest('GET', '/');
$app->handle($request);
Fluff 的开发是围绕处理器(Handler)
和中间件(Middleware)
进行的,不同组件相互配合,可以衍生出多种实践方案。
Fluff 的每个组件都只负责单一的功能,就连入口模块(Application) 也是如此。保持组件轻量化的同时,使用方式也可以是渐进式的,你可以选择只使用部分组件,用它来配合现有的架构,甚至成为程序中的一段逻辑;也可以从零开始构建一套复杂的应用系统。
Fluff 的编程思想
Fluff 的核心思想之一是:“不做多余的事情”。我们认为,在应用开发中也应该遵循这一哲学,不做多余的事情,意味着既有的经验得以复用,让你犯更少的错误,也使你拥有更充裕的时间去享受生活,你的工作也将更有价值。
Fluff 崇尚“以不变,应万变”的思维方式,在解决问题的过程中,应当尽可能的采用同一种(或少量的)模式加以应对,从长远发展的角度来看,这往往能使事物化繁为简,也让更多的人有机会参与进来。所以不要被表面价值所蒙蔽。