68publishers / tracy-git-version
Tracy 的 Git 版本面板。
v1.2.0
2023-08-26 03:02 UTC
Requires
- php: ^7.4 | ^8.0
- ext-json: *
- tracy/tracy: ^2.6.0
Requires (Dev)
- czproject/git-php: ^4.2
- friendsofphp/php-cs-fixer: ^3.13
- nette/application: ^3.1.0
- nette/bootstrap: ^3.1
- nette/di: ^3.0.10
- nette/tester: ^2.4.3
- phpstan/phpstan: ^1.9
- phpstan/phpstan-nette: ^1.1
- roave/security-advisories: dev-latest
- symfony/console: ^5.4 | ^6.0
Suggests
- nette/di: For an integration with the Nette Framework.
- symfony/console: If you want to use a git repository cloning for production build purposes.
Conflicts
- nette/di: <3.0
- nette/schema: <1.2
- nette/utils: <3.2.5
README
Tracy Git 版本
为 Tracy 提供简单且可扩展的面板,显示 Git 的信息。

目录
安装
安装 68publishers/tracy-git-version
的最佳方式是使用 Composer
$ composer require 68publishers/tracy-git-version
基本集成
独立 Tracy 集成
将面板注册到 Tracy 的最简单方法是创建一个默认实例并将其直接提供给 Bar。
use Tracy\Debugger; use SixtyEightPublishers\TracyGitVersion\Bridge\Tracy\GitVersionPanel; Debugger::getBar()->addPanel(GitVersionPanel::createDefault());
Nette 框架集成
Nette 的基本集成非常简单。只需注册一个扩展。
extensions: 68publishers.tracy_git_version: SixtyEightPublishers\TracyGitVersion\Bridge\Nette\DI\TracyGitVersionExtension
一切都会顺利的 😉
无 Git 的应用程序构建解决方案
通常,当我们将应用程序部署到生产环境时,由于尝试将构建尽可能小,Git 和 .git
目录都不可用。然而,在这个时候,我们没有关于当前版本的信息来源。解决方案是在 Git 仍可访问时导出一个包含所有重要信息的文件。
独立 Tracy 的设置
您必须手动创建存储库和面板,但工作量不大。
use Tracy\Debugger; use SixtyEightPublishers\TracyGitVersion\Bridge\Tracy\GitVersionPanel; use SixtyEightPublishers\TracyGitVersion\Repository\LocalGitRepository; use SixtyEightPublishers\TracyGitVersion\Repository\ExportedGitRepository; use SixtyEightPublishers\TracyGitVersion\Repository\ResolvableGitRepository; use SixtyEightPublishers\TracyGitVersion\Repository\RuntimeCachedGitRepository; use SixtyEightPublishers\TracyGitVersion\Bridge\Tracy\Block\CurrentStateBlock; # create a repository that reads from the .git directory: $localGitRepository = LocalGitRepository::createDefault(); # create a repository that reads from a JSON export: $exportedGitRepository = ExportedGitRepository::createDefault('/var/git-version/repository.json'); # combine there two repositories, if the .git directory is not accessible then try to read from the export file: $resolvableGitRepository = new ResolvableGitRepository([$localGitRepository, $exportedGitRepository]); # add runtime cache, commands results are stored so there are no duplicated calls to the real repository: $cachedGitRepository = new RuntimeCachedGitRepository($resolvableGitRepository); # add the panel into Tracy Debugger::getBar()->addPanel(new GitVersionPanel($cachedGitRepository, [new CurrentStateBlock()]));
Nette 框架设置
Nette 的设置更简单。只需将另一个扩展添加到您的 neon 配置中。
extensions: 68publishers.tracy_git_version: SixtyEightPublishers\TracyGitVersion\Bridge\Nette\DI\TracyGitVersionExtension 68publishers.tracy_git_version.export: SixtyEightPublishers\TracyGitVersion\Bridge\Nette\DI\TracyGitVersionExportExtension
导出文件的默认名称是 %tempDir%/git-version/repository.json
,但您可以更改它。
68publishers.tracy_git_version.export: export_filename: %tempDir%/my/custom/path.json
创建导出文件
导出文件应由位于 composer 的 bin
目录中的脚本创建。该脚本与应用程序无关,因此您必须提供导出文件的名称作为选项。
$ vendor/bin/tracy-git-version export-repository --output-file <your_temp>/git-version/repository.json -vv
高级指南
如果您想了解更多关于存储库、如何扩展它们或如何将自定义数据添加到面板的信息,请参阅 高级指南。
贡献
在打开拉取请求之前,请使用以下命令检查您的更改
$ make init # to pull and start all docker images
$ make cs.check
$ make stan
$ make tests.all
许可证
该软件包在 MIT 许可证下分发。有关更多信息,请参阅 LICENSE。