Keep track of your Symfony2 application's version. Knowing what build/version number an application in staging/production is important.
Many projects have a VERSION or BUILD file created by the developer or CI server.
This bundle provides a block, twig function, and web debug toolbar panel to output
both the application's and Symfony's version. The version is available throughout
your project as a service. You can inject the current version in perhaps a meta
tag for your production environment.
Add this bundle to your Symfony2 project (ie vendor/bundles/Zenstruck/VersionBundle)
Add the Zenstruck namespace to your autoloader ('Zenstruck' => __DIR__.'/../vendor/bundles')
Add this bundle to your application's kernel (new Zenstruck\Bundle\VersionBundle\VersionBundle())
Create a VERSION file in your project's root directory
Configure the bundle:
# Example
# app/config_dev.yml
zenstruck_version:
enabled: true
toolbar: true
#app/config_staging.yml
zenstruck_version:
enabled: true
toolbar: false
block:
enabled: true
When enabled, this plugin defines two twig functions:
version(): outputs the current application version (as defined in your VERSION file)symfony(): outputs the current Symfony version (as defined in Symfony\Component\HttpKernel\Kernel::VERSION)And adds a service to Symfony's service container:
zenstruck.version.data_collectorAccess service in a controller:
...
public function indexAction()
{
$versionDC = $this->get('zenstruck.version.data_collector');
$appVersion = $versionDC->getVersion();
$symfonyVersion = $versionDC->getSymfony();
...
}
...
Render in template:
{# twig template #}
{{ version() }}
{{ symfony() }}
Render a meta tag with application version and Symfony version:
...
<meta name="version" content="{{ version() }}" />
<meta name="symfony" content="{{ symfony() }}" />
...
Overrride the default VersionDataCollector class:
// MyVersion.php
use Zenstruck\Bundle\VersionBundle\DataCollector\VersionDataCollector;
class MyVersion extends VersionDataCollector
{
public function getVersion()
{
return $myversion;
}
}
Set you VersionDataCollector class in app/config.yml:
// app/config.yml
parameters:
zenstruck.version.data_collector.class: \MyVersion
# config.yml
zenstruck_version:
enabled: false # enable/disable service
toolbar: false # show in web debug toolbar
file: %kernel.root_dir%/../VERSION # the file containing version info
suffix: ~ # suffix text (ie "-dev")
version: ~ # overrides file/text with custom version
block:
enabled: false # enable/disable block
position: vb-bottom-right # other values: vb-bottom-left, vb-top-right, vb-top-left
prefix: "Version: " # text added to beginning of block
© Copyright 2011 Kevin Bond. Powered by Symfony2 and Github. Hosted with ServerGrove