locomotivemtl / charcoal-app
Charcoal 应用程序,基于 Slim 3
Requires
- php: ^7.3 || ^8.0
- ext-pdo: *
- league/climate: ^3.2
- league/flysystem: ^1.0
- locomotivemtl/charcoal-cache: ~0.1
- locomotivemtl/charcoal-config: ~0.8
- locomotivemtl/charcoal-factory: ~0.4
- locomotivemtl/charcoal-translator: ~0.3
- locomotivemtl/charcoal-view: ~0.3
- monolog/monolog: ^1.17
- psr/http-message: ^1.0
- psr/log: ^1.0
- slim/slim: ~3.7
Requires (Dev)
- league/flysystem-aws-s3-v3: ^1.0
- league/flysystem-memory: ^1.0
- league/flysystem-sftp: ^1.0
- mockery/mockery: ^1.0
- mustache/mustache: ^2.11
- php-coveralls/php-coveralls: ^2.0
- phpunit/phpunit: ^9.0
- squizlabs/php_codesniffer: ^3.0
- tedivm/stash: ~0.16
- dev-master / 0.9.x-dev
- 0.9.2
- 0.9.1
- 0.9.0
- 0.8.5
- 0.8.4.1
- 0.8.4
- 0.8.3.3
- 0.8.3.2
- 0.8.3.1
- 0.8.3
- 0.8.2
- 0.8.1
- 0.8.0
- 0.7.1
- 0.7
- 0.6.1
- 0.6
- 0.5.3
- 0.5.2
- 0.5.1.3
- 0.5.1.2
- 0.5.1.1
- 0.5.1
- 0.5.0.1
- 0.5
- 0.4.8
- 0.4.7
- 0.4.6
- 0.4.5.3
- 0.4.5.2
- 0.4.5.1
- 0.4.5
- 0.4.4
- 0.4.3
- 0.4.2
- 0.4.1
- 0.4
- 0.3.1
- 0.3
- 0.2.8
- 0.2.7
- 0.2.6
- 0.2.5
- 0.2.4
- 0.2.3
- 0.2.2
- 0.2.1
- 0.2
- 0.1.1
- 0.1
- dev-mcaskill-patch-improve-script-args
- dev-mcaskill-patch-from-base-path
- dev-slim4
- dev-fix/template-init
- dev-joel-start-fixing-config-merge
- dev-mducharme-scripts
- dev-mcaskill-develop
- dev-mcaskill-psr11
This package is auto-updated.
Last update: 2024-09-10 20:41:34 UTC
README
Charcoal App 是一个 PHP 框架,用于使用 Charcoal 组件创建 Web 应用程序和 API。
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
依赖项
要求
- PHP 5.6+: 推荐使用 PHP 7。
- locomotivemtl/charcoal-cache: 用于 PSR-6 兼容缓存系统的服务提供者,使用 Stash。
- locomotivemtl/charcoal-config: 用于配置应用程序和设计控制器的数据对象。
- locomotivemtl/charcoal-factory: 用于创建提供者、处理器和控制器的工厂接口。
- locomotivemtl/charcoal-translator: 用于国际化应用程序的工具的服务提供者,使用 Symfony Translation。
- locomotivemtl/charcoal-view: 用于视图渲染和模板引擎适配器的服务提供者,适配 Mustache 和 Twig。
- league/climate: 用于设计应用程序控制台命令的命令行抽象。
- league/flysystem:用于处理本地和远程存储空间的文件系统抽象。
- monolog/monolog:符合PSR-3规范的日志记录客户端,用于记录应用请求、错误和信息。
- pimple/pimple:符合PSR-11规范的服务容器和提供者库。
- slim/slim:符合PSR-7规范的HTTP客户端和路由器。
PSR
- PSR-3:日志库的通用接口。由Monolog实现。
- PSR-6:缓存库的通用接口。由Stash实现。
- PSR-7:HTTP消息的通用接口。由Slim实现。
- PSR-11:依赖容器的通用接口。由Pimple实现。
👉 在项目中使用 charcoal-app 时,开发依赖是可选的,它们在README文件的“开发”部分中描述。
阅读 composer.json 文件以获取更多依赖详情。
推荐模块
除了上述依赖项之外,这里还有推荐添加到项目中的模块列表。
- locomotivemtl/charcoal-email:用于邮件管理的服务提供者,使用 PHPMailer(模板、队列、发送、跟踪)。
- locomotivemtl/charcoal-cms:内容管理(页面、新闻、事件)的预设计模型和基本实用工具。
- locomotivemtl/charcoal-admin:Charcoal应用的行政界面(添加/编辑/删除对象、文件管理器)。
使用
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 文档
- 自动生成的
phpDocumentorAPI 文档可在以下地址访问:
https://locomotivemtl.github.io/charcoal-app/docs/master/ - 自动生成的
apigenAPI 文档可在以下地址访问:
https://codedoc.pub/locomotivemtl/charcoal-app/master/
开发依赖
编码风格
charcoal-cache 模块遵循 Charcoal 编码风格
- PSR-1
- PSR-2
- PSR-4,因此自动加载由 Composer 提供。
- phpDocumentor 注释。
- 有关编码标准的 phpcs.xml.dist 和 .editorconfig。
可以使用
composer phpcs执行编码风格验证/强制执行。还有一个自动修复程序,可通过composer phpcbf使用。
致谢
许可
Charcoal 在 MIT 许可下发布。有关详细信息,请参阅 LICENSE。