locomotivemtl/charcoal-app

Charcoal 应用程序,基于 Slim 3


README

License Latest Stable Version Code Quality Coverage Status SensioLabs Insight Build Status

Charcoal App 是一个 PHP 框架,用于使用 Charcoal 组件创建 Web 应用程序和 API。

该框架基于 Slim 3Pimple 构建。

Charcoal App 是一系列 模块路由模板动作脚本)、处理器服务的集合,通过配置服务容器服务提供者相互关联。

该框架具有以下特性(内部和外部)

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

† 由外部 Charcoal 组件提供

目录

安装

安装 charcoal-app 的首选(且唯一支持的)方法是使用 composer

★ composer require locomotivemtl/charcoal-app

从样板开始

此模块旨在作为 Web 应用程序(如网站)的基础。

对于完整、可立即使用的项目,请从官方样板开始。

★ composer create-project locomotivemtl/charcoal-project-boilerplate

依赖项

要求

PSR

  • PSR-3:日志库的通用接口。由Monolog实现。
  • PSR-6:缓存库的通用接口。由Stash实现。
  • PSR-7:HTTP消息的通用接口。由Slim实现。
  • PSR-11:依赖容器的通用接口。由Pimple实现。

👉 在项目中使用 charcoal-app 时,开发依赖是可选的,它们在README文件的“开发”部分中描述。

阅读 composer.json 文件以获取更多依赖详情。

推荐模块

除了上述依赖项之外,这里还有推荐添加到项目中的模块列表。

使用 charcoal-project-boilerplate 确保完整的Charcoal应用设置确实是推荐的做法。

安装

★ composer create-project locomotivemtl/charcoal-project-boilerplate

组件

Charcoal App 的主要组件包括

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

服务提供者

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

包含的服务提供者

Charcoal App 默认附带了一些服务提供者。所有这些都在 Charcoal\App\ServiceProvider 命名空间中。

外部服务提供者

Charcoal App 需要从独立组件中获取一些服务提供者。以下使用它们自己的命名空间,并且通过 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-project-boilerplate

开发

安装开发环境

$ composer install

运行脚本(phplint、phpcs 和 phpunit)

$ composer test

API 文档

开发依赖

编码风格

charcoal-cache 模块遵循 Charcoal 编码风格

可以使用 composer phpcs 执行编码风格验证/强制执行。还有一个自动修复程序,可通过 composer phpcbf 使用。

致谢

许可

Charcoal 在 MIT 许可下发布。有关详细信息,请参阅 LICENSE