decodelabs / fabric
使用 DecodeLabs 生态系统实现的一个轻量级 PHP 框架
Requires
- php: ^8.1
- decodelabs/archetype: ^0.3
- decodelabs/clip: ^0.3.8
- decodelabs/coercion: ^0.2.7
- decodelabs/dovetail: ^0.2
- decodelabs/exceptional: ^0.4.4
- decodelabs/genesis: ^0.9
- decodelabs/glitch: ^0.18.9
- decodelabs/greenleaf: ^0.3
- decodelabs/harvest: ^0.3
- decodelabs/lucid: ^0.4.7
- decodelabs/systemic: ^0.11.9
- decodelabs/veneer: ^0.11.6
Requires (Dev)
- decodelabs/phpstan-decodelabs: ^0.6.7
- decodelabs/stash: ^0.5.6
README
使用 DecodeLabs 生态系统实现的一个轻量级 PHP 框架
Fabric 提供了使用 DecodeLabs 生态系统构建 Web 应用所需的架构、先决条件和约定。
在 DecodeLabs 博客 上获取新闻和更新。
安装
通过 Composer 安装
composer require decodelabs/fabric
用法
Fabric 应用看起来非常类似于标准包,大部分代码位于 src 文件夹中,在您选择的命名空间下,并通过 composer 加载。
它不需要自定义入口点,因为它将自动检测并加载应用,当框架通过内置的 Bootstrap 初始化时。
# Example nginx config server { listen 443 ssl; server_name my-app.localtest.me; root /var/www/my-app/; # Rewrite to fabric Bootstrap rewrite .* /vendor/decodelabs/fabric/src/Bootstrap.php last; include snippets/php81.conf; include snippets/ssl.conf; }
配置
Fabric 使用 Dovetail
进行配置加载 - 通过应用根目录下的私有 .env 文件和 /config 目录中的数据文件(尽管这可以根据需要自定义)。
最重要的配置文件是 Environment.php
文件,它为应用的其他部分定义了一些关键的初始化值。
appNamespace 值将允许您定义大多数应用代码所在的命名空间,并且在您的 composer 文件中已经定义了加载。
应用文件
应用文件是应用的主要入口点,您可以在此处覆盖应用关键区域中的默认行为。如果没有定义,将使用默认值。
由于处于早期开发阶段,该类的接口将发生很大变化,但是将在接口的通用实例中提供默认实现,以确保向后兼容性。
可以使用 Fabric Veneer 前端调用 App 实例
use DecodeLabs\Fabric; $app = Fabric::getApp();
结构
Fabric 提供了强大的 HTTP 和 CLI 内核,可以处理这两种环境中的请求。 Clip
用于 CLI 任务,Harvest
用于 HTTP。
HTTP 内核使用可扩展的中间件集来提供灵活的请求处理管道。默认实现由 Harvest
提供,对于大多数应用来说是一个良好的起点。
Greenleaf 用于路由,为 HTTP 动作提供了一个简单、灵活且强大的路由系统。
许可
Fabric 采用 MIT 许可证。有关完整的许可证文本,请参阅 LICENSE。