每当保存文件时,PhpStorm都会在.env文件中更新版本文本

时间:2017-07-26 10:02:40

标签: php laravel phpstorm

我使用PhpStorm管理我的许多客户Laravel PHP项目,但随着这些项目变得越来越大,维护和显示系统中的版本信息变得非常重要我正在开发

为此,我使用.env文件来保存名为APP_VERSION的配置。

我想做的是每当文件保存在PhpStorm中时 - 任何文件 - 我想自动更新此配置变量的值(通过递增)。

但是,我似乎找不到办法,或者甚至可能。

我看过文件监视器,但这似乎并没有解决我遇到的问题,因为它只允许某些文件类型,甚至它想要运行编译器(例如Sass或较少的编译器等)这当然不是我之后的事。

有没有办法做到这一点,我不必手动增加我更新的每个文件的次要版本号?

更新

因此,通过使用@LazyOne的答案,我创建了一个小脚本,对相关文件执行必要的文本更新。

我使用了自定义文件监视器,该文件监视器是针对任何文件类型的更改而设置的,其中创建了自定义范围以排除我不想观看的某些文件和文件夹。

最终结果,当我保存一个有效范围内的文件时,我编写的脚本会执行以更新我的文件并进行必要的更改。

2 个答案:

答案 0 :(得分:3)

PhpStorm没有这样的功能(包括其他基于IDEA的IDE)。有一些票要求这样的功能..但它肯定不适用于你的场景(用例有不同)。

你必须这样做"手动"。我的意思是:

  • 要么实际手动编辑文件(如你的问题所示)......
  • 或者通过编写一些脚本(例如在PHP中)来自动执行它,然后根据需要执行它(例如外部工具或手动)或通过文件观察器(文件观察器基本上(简单地说)外部)在文件修改时运行的工具 - 您可以在那里运行任何程序,甚至是您自己的shell /批处理脚本。)

这样的脚本将打开你的.env文件,找到正确的行并在那里编辑值 - 一点点文件解析工作 - 没什么超重的。

提示:Laravel有artisan ..其中一个命令是key:generate(它改变了.env文件 - 至少在你创建新文件时至少运行一次Laravel app)。你可以用类似的方式来做 - 把你的脚本作为artisan命令(这样你就可以拥有完整的Laravel功能),并在需要时调用它(File Watcher或其他)。

PS 而不是编辑.env文件(更具体环境而不是全局设置,版本信息是什么)..为什么不将它存储在自定义配置文件< / strong>(例如config/version.php)其中仅包含该信息,因此更容易更改甚至从头开始生成(模板),因为它具有非常简单的结构,因此不需要维护其他现有信息(与.env文件有关)?

在一天结束时 - 您/程序员在调用env('APP_VERSION')config('version.app_version')之间在您的应用中获取该信息之间没有太大区别。

答案 1 :(得分:0)

我不确定这是否可能直接在PHPStorm内。但是,您可以自己编写一个小的PHP脚本来监视指定的目录以查找文件更改,当一个脚本发生时,您的脚本可以对所需的文件进行必要的更改。

请尝试查看inotify以获取更多信息。