我曾经在composer.json
内指定应用版本,直到我在Stack Overflow中的某处读到这是一个不好的做法。在PHP Laravel应用程序上指定应用程序版本的标准文件是什么? (即: .NET ,它是配置文件,在 iOS 上,它是 info.plist ,在 Android 上,它是 Manifest 等......)
答案 0 :(得分:21)
config/app.php
绝对是获取此类信息的地方。
为什么?因为配置文件(或应该)包含在您的版本控制流程中,并且它们(应该)包含有关您的应用程序的非敏感信息。简单版本指示器的理想之地。
在数组的name
索引下,您可以像这样设置version
索引
/*
|--------------------------------------------------------------------------
| Application Version
|--------------------------------------------------------------------------
|
| This value is the version of your application. This value is used when
| the framework needs to place the application's version in a notification
| or any other location as required by the application or its packages.
*/
'version' => '1.0',
答案 1 :(得分:1)
我通常在我的.env文件中设置它,然后在配置中选择它。
e.g。 .env说:
'version' => env('APP_VERSION', '0.0.1-alpha'),
config / app.php说:
var numOfWorkersNames = ["worker1","worker2","worker3"]
答案 2 :(得分:0)
到目前为止,答案很好,但是每当您运行“ composer update”时,您的版本就会更改,要求您每次都更新.env或config.app文件(或指定版本的任何地方),以保持正确的版本。
还有另一种使用刀片的替代方法(如果使用刀片)。在您想要的任何位置(在.php文件中)添加以下示例代码,并且只要composer更新版本,该版本就会自动更新:
<p>My current Laravel version is: {{ app()::VERSION }}</p>
答案 3 :(得分:0)
@delatbabel
对于版本来说是一个很好的开始
config / app.php
'version' => env('APP_VERSION', '1.0.0'),
对于config / bugsnag:
'app_version' => env('APP_VERSION', '1.0.0'),
那么您可以简单地通过以下方式获取版本:
config('app.version')
现在在docker中,您可以在构建时设置默认版本:
ENV APP_VERSION=1.0.0
例如,使用圆圈CI,您可以添加内部编号:
ARG BUILD_NR
ENV APP_VERSION=1.0.$BUILD_NR
现在在config.yml中,您可以添加以下作业命令:
deliver-prod:
machine: true
steps:
- checkout
- docker build --build-arg BUILD_NR=$CIRCLE_BUILD_NUM .