charcoal / charcoal
Charcoal 框架的单一代码仓库
Requires
- php: ^7.4 || ^8.0
- ext-fileinfo: *
- ext-json: *
- ext-mbstring: *
- ext-pdo: *
- ext-simplexml: *
- ext-spl: *
- barryvdh/elfinder-flysystem-driver: ^0.3
- erusev/parsedown: ^1.7
- guzzlehttp/guzzle: ^6.0 || ^7.0
- kriswallsmith/assetic: ^1.4
- laminas/laminas-permissions-acl: ^2.8
- league/climate: ^3.2
- league/flysystem: ^1.0
- mcaskill/php-html-build-attributes: ^1.0
- monolog/monolog: ^1.17
- phpmailer/phpmailer: ~6.0
- pimple/pimple: ^3.0
- psr/cache: ^1.0
- psr/container: ^1.0
- psr/http-message: ^1.0
- psr/log: ^1.0
- seld/jsonlint: ^1.9
- slim/slim: ^3.7
- studio-42/elfinder: 2.1.64
- symfony/translation: ^3.4
- tedivm/stash: ~0.16
- vlucas/phpdotenv: ^5.4
Requires (Dev)
- cache/void-adapter: ^1.0
- league/csv: ^9.5
- 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.2
- phpstan/phpstan: ^1.6
- phpunit/phpunit: ^9.5
- squizlabs/php_codesniffer: ^3.5
- symfony/yaml: ^3.0
- symplify/monorepo-builder: ^10.2
- twig/twig: ^3.4
Replaces
- charcoal/admin: v5.0.0
- charcoal/app: v5.0.0
- charcoal/attachment: v5.0.0
- charcoal/cache: v5.0.0
- charcoal/cms: v5.0.0
- charcoal/config: v5.0.0
- charcoal/core: v5.0.0
- charcoal/email: v5.0.0
- charcoal/factory: v5.0.0
- charcoal/image: v5.0.0
- charcoal/object: v5.0.0
- charcoal/property: v5.0.0
- charcoal/queue: v5.0.0
- charcoal/translator: v5.0.0
- charcoal/ui: v5.0.0
- charcoal/user: v5.0.0
- charcoal/view: v5.0.0
- locomotivemtl/charcoal-admin: *
- locomotivemtl/charcoal-app: *
- locomotivemtl/charcoal-attachment: *
- locomotivemtl/charcoal-cache: *
- locomotivemtl/charcoal-cms: *
- locomotivemtl/charcoal-config: *
- locomotivemtl/charcoal-core: *
- locomotivemtl/charcoal-email: *
- locomotivemtl/charcoal-factory: *
- locomotivemtl/charcoal-image: *
- locomotivemtl/charcoal-object: *
- locomotivemtl/charcoal-property: *
- locomotivemtl/charcoal-queue: *
- locomotivemtl/charcoal-translator: *
- locomotivemtl/charcoal-ui: *
- locomotivemtl/charcoal-user: *
- locomotivemtl/charcoal-view: *
- dev-main / 5.x-dev
- v5.0.0
- v4.1.0
- v4.0.8
- v4.0.7
- v4.0.6
- v4.0.5
- v4.0.4
- v4.0.3
- v4.0.2
- v4.0.1
- v4.0.0
- v3.1.7
- v3.1.6
- v3.1.5
- v3.1.4
- v3.1.3
- v3.1.2
- v3.1.1
- v3.1.0
- v3.0.16
- v3.0.15
- v3.0.14
- v3.0.13
- v3.0.12
- v3.0.11
- v3.0.10
- v3.0.9
- v3.0.8
- v3.0.7
- v3.0.6
- v3.0.5
- v3.0.4
- v3.0.3
- v3.0.2
- v3.0.1
- v3.0.0
- v2.3.0
- v2.2.5
- v2.2.4
- v2.2.3
- v2.2.2
- v2.2.1
- v2.2.0
- v2.1.2
- v2.1.1
- v2.1.0
- v2.0.1
- v2.0.0
- v1.3.4
- v1.3.3
- v1.3.2
- v1.3.1
- v1.3.0
- v1.2.0
- v1.2.0-beta.25
- v1.2.0-beta.24
- v1.2.0-beta.23
- v1.2.0-beta.22
- v1.2.0-beta.21
- v1.2.0-beta.20
- v1.2.0-beta.19
- v1.2.0-beta.18
- v1.2.0-beta.17
- v1.2.0-beta.16
- v1.2.0-beta.15
- v1.2.0-beta.14
- v1.2.0-beta.13
- v1.2.0-beta.12
- v1.2.0-beta.11
- v1.2.0-beta.10
- v1.2.0-beta.9
- v1.2.0-beta.8
- v1.2.0-beta.7
- v1.2.0-beta.6
- v1.2.0-beta.5
- v1.2.0-beta.4
- v1.2.0-beta.3
- v1.2.0-beta.2
- v1.2.0-beta.1
- v1.1.1
- v1.1.1-beta.1
- v1.1.0
- v1.1.0-beta.4
- v1.1.0-beta.3
- v1.1.0-beta.2
- v1.1.0-beta.1
- v1.0.1-beta.5
- v1.0.1-beta.4
- v1.0.1-beta.3
- v1.0.1-beta.2
- v1.0.1-beta.1
- v1.0.0
- v1.0.0-beta.3
- v1.0.0-beta.2
- v1.0.0-beta.1
- dev-joel/feature/tabulator-input
- dev-feature/tabulator-input
- dev-feature/slim4
- dev-fix/gruntfile-path
- dev-joel_feat_event-dispatcher
- dev-beta
- dev-feature/admin-view
- dev-fix-paths
- dev-develop
- dev-joel/feat/migrate-tool
- dev-joel/feat/package-mapping
This package is auto-updated.
Last update: 2024-09-13 19:09:09 UTC
README
由 Locomotive 🚂 提供
Charcoal 是一个适应所有项目需求的网络框架和内容管理系统。
此存储库是一个单一代码仓库,包含整个网络框架。Charcoal 可以作为一个全栈框架使用,也可以作为独立的包使用,可以独立使用。
Charcoal 包
核心包位于 packages
目录中。
安装
首选(也是唯一支持)的方法是使用 Composer
composer require charcoal/charcoal
从工作骨架开始
composer create-project charcoal/boilerplate
独立包
Charcoal 框架被分割成可以独立使用的独立包。例如,一个项目可能不需要管理面板、队列系统或发送电子邮件。
composer require charcoal/app charcoal/api custom/admin
将项目迁移到 charcoal/charcoal
以下内容有助于将项目从 locomotivemtl/charcoal-*
转换为 charcoal/*
。
ℹ️ 以前所有核心包都独立维护自己的版本号。
单一代码仓库框架使用共享版本号对所有核心包,以实现一致和预期的互操作性。
ℹ️ contrib 包继续维护其现有的独立版本号。
选项 A — 如果你想用全栈框架包替换所有包
-
在
composer.json
文件中删除核心包(locomotivemtl/charcoal-*
)的要求。 -
在
composer.json
文件中,用来自charcoal/contrib-*
的等效包替换对 contrib 包(locomotivemtl/charcoal-contrib-*
)的要求。 -
运行
composer require charcoal/charcoal
以安装框架。 -
运行
composer update
以确保所有要求都是最新的。 -
运行以下迁移脚本
./vendor/charcoal/charcoal/build/script/migrate-project
migrate-project
脚本将更新项目中配置文件中的所有元数据路径。之后,它将编辑或创建一个包含键PACKAGES_PATH
设置为:vendor/charcoal/charcoal/packages
的.env
环境变量文件。这允许
%packages.path%
字符串模板扩展到charcoal/charcoal
中的包位置,否则它将导致在vendor
目录中。
选项 B — 如果你想用新的独立包替换所有包
- 在
composer.json
文件中替换核心包(locomotivemtl/charcoal-*
)的要求。 - 在
composer.json
文件中,用来自charcoal/contrib-*
的等效包替换对 contrib 包(locomotivemtl/charcoal-contrib-*
)的要求。 - 运行
composer require charcoal/config charcoal/core…
以安装包。 - 运行
composer update
以确保所有要求都是最新的。 - 将配置文件中的
vendor/locomotivemtl/charcoal-*
出现替换为vendor/charcoal/*
。
依赖
⚠️ 必需
- PHP 7.4 或 8.0
⚙️ 配置
[待办事项]
使用
[待办事项]
开发
开发在一个与 main
分支分开的分支上进行。
⚠️
main
分支受到保护,不允许直接推送更改。
安装开发环境
composer install
运行脚本(phplint、phpcs 和 phpunit)
composer test
提交信息格式
Charcoal 使用 semantic-release 来处理发布过程。
它使用提交信息来确定代码库中更改对消费者的影响。遵循提交信息的正式化约定,semantic-release 自动确定下一个 语义版本 号码,生成变更日志并发布版本。
当前配置使用 常规提交 用于提交信息。您可以查阅它以获取更多信息。
此存储库对 Commitizen 友好,并配置为使用 常规提交 标准,因此您可以在全局范围内安装它,以简化编写提交的过程。
或者,有一些代码编辑器插件可以帮助创建常规提交
vscode
phpstrom
以下是根据一些提交信息得出的发布类型示例
-
补丁(修复)版本发布
fix(pencil): stop graphite breaking when too much pressure applied
-
小版本(功能)发布
feat(pencil): add 'graphiteWidth' option
-
大版本(破坏性)发布
perf(pencil): remove graphiteWidth option BREAKING CHANGE: The graphiteWidth option has been removed. The default graphite width of 10mm is always used for performance reasons.
✍🏻 注意,
BREAKING CHANGE:
标记必须位于提交的底部。
开发指南
开发应基于分支进行,提交信息应遵循常规提交。
维护和自动化
Symplify 的 MonorepoBuilder 用于处理核心存储库及其包之间的合规性。它将同步 composer.json
文件和包版本。
[待办] .releaserc 中的语义发布配置
[待办] 常规提交
[待办] Commitizen
开发依赖
- symplify/monorepo-builder
- 保持包版本同步。
- 配置位于 monorepo-builder。它允许定义更多的依赖项
- semantic-release
- 通过 Github action 处理发布流程。
开发历史
此单代存储库使用此指南和工具以多对单方法创建
GitHub Actions
脚本
create-pr
此脚本简化了创建拉取请求的过程。当您的分支准备好被拉入 main
或其他 [目标]
分支时,此工具将为您生成它,请求 @charcoalphp/reviewers 的审查,并添加一个从两个分支之间的差异生成的美观且易于阅读的发布说明。
文档
Description
Create a pull request on the github repository on the requested branch.
Default branch: main
Usage
./create-pr
Options
-b, --base The base branch to merge into for the pull request. [Default: main]
-h, --head The branch to compare against the base branch. [Default: The current branch]
示例
# target: the target branch for the pull request. Defaults to [main]
./create-pr -b main -h user:feat-branch
create-release-notes (可选工具)
此脚本在请求时生成发布说明,返回基于请求的 提交范围
或 分支
的变更日志。
文档
./build/script/create-release-notes --help
示例
./build/script/create-release-notes -g --from main
输出
更改
功能
- create-pr: 添加脚本以在远程触发拉取请求(3016115)
错误修复
贡献
与 Charcoal 互动的每个人都应遵循 行为准则。
请参阅我们的贡献指南,了解如何为Charcoal做出贡献。
如果您试图报告Charcoal可能的安全漏洞,请参阅我们的安全策略获取更多信息。
✍🏻 作者
- Locomotive 🚂
- Mathieu Ducharme 👨🏻💻
- Chauncey McAskill 👨🏻💻
- Joel Alphonso 👨🏻💻
- Dominic Lord 👨🏻💻
- Benjamin Roch 👨🏻💻
🎉 贡献者
使用contrib.rocks制作。
变更日志
查看CHANGELOG。
变更日志符合Keep a Changelog规范,并从自动发布的版本中自动生成。
许可
Charcoal遵循MIT许可协议。有关详细信息,请参阅LICENSE。