Charcoal 应用程序,基于 Slim 3

v5.0.0 2024-03-13 17:50 UTC

README

该应用程序包提供了与 SlimPimple 的集成,用于构建面向用户的 Web 应用程序和 API。

安装

composer require charcoal/app

概述

应用程序包是一组 模块路由模板操作脚本)、处理器服务,通过 配置服务容器服务提供者 连接在一起。

该框架具有以下内部和外部功能:

  • PSR-3 日志记录器
  • PSR-6 缓存系统[†]
  • PSR-7 内核(Web、API、CLI)
  • PSR-11 容器
  • 翻译层[†]
  • 文件系统层
  • 数据库层
  • 视图层[†]

注意

  • [†] 由外部 Charcoal 组件提供。

组件

Charcoal 应用程序的主要组件包括

了解更多关于 组件 的信息。

服务提供者

依赖和扩展由依赖容器处理,使用 Pimple,可以通过 服务提供者Pimple\ServiceProviderInterface)定义。

包含的服务提供者

Charcoal 应用程序附带一些内置的服务提供者。所有这些都在 Charcoal\App\ServiceProvider 命名空间内

外部服务提供者

Charcoal 应用程序需要一些来自独立组件的服务提供者。以下使用它们自己的命名空间,并通过 AppServiceProvider 自动注入

了解更多关于 服务提供者 的信息。

使用方法

典型的前端控制器 (www/index.php)

use Charcoal\App\App;
use Charcoal\App\AppConfig;
use Charcoal\App\AppContainer;

include '../vendor/autoload.php';

$config = new AppConfig();
$config->addFile(__DIR__.'/../config/config.php');
$config->set('ROOT', dirname(__DIR__) . '/');

// Create container and configure it (with charcoal/config)
$container = new AppContainer([
    'settings' => [
        'displayErrorDetails' => true,
    ],
    'config' => $config,
]);

// Charcoal / Slim is the main app
$app = App::instance($container);
$app->run();

有关使用 charcoal/app 的完整项目示例,请参阅 charcoal/boilerplate

资源