在Laravel应用程序上指定应用程序版本的位置?

时间:2015-08-18 00:31:12

标签: php laravel laravel-5

我曾经在composer.json内指定应用版本,直到我在Stack Overflow中的某处读到这是一个不好的做法。在PHP Laravel应用程序上指定应用程序版本的标准文件是什么? (即: .NET ,它是配置文件,在 iOS 上,它是 info.plist ,在 Android 上,它是 Manifest 等......)

4 个答案:

答案 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:&nbsp;&nbsp;&nbsp;{{ 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

现在在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 .