tjvb / laravel-githash
获取您项目的当前git哈希,显示在您的blade中或添加到您的日志中。
Requires
- php: ~8.0.0 || ~8.1.0 || ~8.2.0 || ~8.3.0
- laravel/framework: ^8.0 || ^9.0 || ^10 || ^11
- tjvb/githash: ^1.0
Requires (Dev)
- friendsofphp/php-cs-fixer: ^3.52
- infection/infection: ^0.25.3 || ^0.26.0 || ^0.27.0
- orchestra/testbench: ^6.21 || ^7.0 || ^8.0 || ^9.0
- phpmd/phpmd: ^2.10
- phpstan/phpstan: ^1.10
- phpunit/phpunit: ^9.5 || ^10.0
- slevomat/coding-standard: ^8.15
- squizlabs/php_codesniffer: ^3.7
- symplify/easy-coding-standard: ^12.1
README
目的
本项目的目标是提供一个简化获取代码中git哈希的方法。此哈希可以显示在管理界面中,添加到您的日志中,并用于您能想到的任何地方。
安装
基本安装是通过composer添加此项目:composer require tjvb/laravel-githash
。
手动注册服务提供者。
如果您禁用了包发现,您需要将TJVB\LaravelGitHash\GitHashServiceProvider::class,
添加到config/app.php中的提供者数组。
日志
该包提供了一种将githash添加到日志的方法,默认情况下启用。
Blade组件
此包添加了一个默认的blade组件,您可以使用<x-githash></x-githash>
在您的(管理)页面上显示短哈希和githash。此选项允许添加短版本或长版本声明,只显示其中之一。<x-githash version="short"></x-githash>
关于命令
如果Laravel关于命令可用,它将添加有关哈希和缓存状态的信息。这可以在配置中禁用。
其他用途
有很多选项可以将哈希添加到应用程序的其他部分。这可以通过注入\TJVB\LaravelGitHash\Contracts\GitHashLoader
来完成,它提供了返回TJVB\GitHash\Values\GitHash
值对象的getGitHash
函数,该对象提供了hash()
和short()
函数。
use TJVB\LaravelGitHash\Contracts\GitHashLoader;
public function example(GitHashLoader $gitHashLoader)
{
echo $gitHashLoader->getGitHash()->hash();
}
自定义和配置
使用php artisan vendor:publish
发布配置文件后,您可以更改不同类别的绑定。
将缓存文件指向一个在您的部署之间不共享的位置非常重要。
env文件变量
在默认配置中,有一些不同的ENV变量可以使用。
名称 | 默认值 | 描述 |
---|---|---|
GITHASH_REPO_PATH | base_path() | git仓库的路径,根据查找器,这需要是仓库的根目录,或者它可以是在仓库中的任何路径。 |
GITHASH_CACHE_ENABLED | null | 如果需要启用缓存,如果为null,则在没有禁用调试的情况下启用。 |
GITHASH_ABOUT_ENABLED | true | 如果需要在Laravel About命令中添加有关哈希和缓存状态的信息。 |
GITHASH_LOG_CONTEXT_ENABLED | true | 如果需要在日志上下文中添加哈希。 |
查找器
此包使用tjvb/githash
提供哈希。这提供了不同的查找器。您可以使用特定的查找器进行填充。如果您留空,它将添加默认查找器。(在默认工厂中,这意味着该项目的所有查找器。)
不同的blade组件视图
发布blade文件后,使用php artisan vendor:publish
,您可以更改blade。发布后的位置将是resources/views/vendor/githash/githash.blade.php
,在这里您可以按需编辑blade。
自定义实现
可以覆盖不同的类,这可以通过实现接口并更新配置文件来完成。配置文件包含实现,并带有注释,指向要实现的正确接口。
缓存
此包使用文件来缓存哈希。使用文件缓存是因为这应该比每次需要时获取缓存更快。(也取决于查找器和存储库大小)。它不使用构建Laravel缓存以防止使用共享缓存。通过这个文件缓存,可以看到例如一个队列运行者使用与其他运行者不同的代码版本。这有助于调试任何问题。
无git在服务器上的使用
根据您部署应用程序的方式,您可能无法获取存储库信息。为此,将哈希写入缓存文件也将很有用。
Envoyer 示例
如果您使用Envoyer,您服务器上没有git存储库。并且完整存储目录将在您的部署之间共享。这需要一些定制。
首先更新您的配置,以便缓存文件位于共享目录之外。
// in config/githash.php
'cache_file' => base_path('githash.cache'),
然后添加一个新的部署钩子,在您安装composer依赖项之前执行,以将哈希放置在缓存文件中
cd {{release}}
echo {{sha}} > githash.cache
通过这些更改,您将拥有缓存文件,而无需在服务器上拥有存储库,并且可以在所需位置使用哈希。
更新日志
我们(尝试)在更新日志中记录所有更改,所以请阅读以获取更多信息。
贡献
欢迎您贡献力量,有关信息请参阅贡献指南
许可证
MIT许可证(MIT)。有关更多信息,请参阅许可证文件