decodelabs/fabric

使用 DecodeLabs 生态系统实现的一个轻量级 PHP 框架

v0.3.11 2024-08-22 02:53 UTC

README

PHP from Packagist Latest Version Total Downloads GitHub Workflow Status PHPStan License

使用 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