Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/emileperron/git-version-strategy
A custom version strategy for Symfony assets that uses the current Git commit short-hash as the version identifier.
https://github.com/emileperron/git-version-strategy
Last synced: about 8 hours ago
JSON representation
A custom version strategy for Symfony assets that uses the current Git commit short-hash as the version identifier.
- Host: GitHub
- URL: https://github.com/emileperron/git-version-strategy
- Owner: EmilePerron
- License: mit
- Created: 2020-04-19T20:42:11.000Z (over 4 years ago)
- Default Branch: master
- Last Pushed: 2023-03-21T12:05:00.000Z (over 1 year ago)
- Last Synced: 2024-10-29T07:50:45.558Z (10 days ago)
- Language: PHP
- Homepage:
- Size: 9.77 KB
- Stars: 0
- Watchers: 2
- Forks: 1
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- Funding: .github/FUNDING.yml
- License: LICENSE
Awesome Lists containing this project
README
# Symfony asset versioning based on Git
This is a small Symfony bundle that implements a custom version strategy which uses the current Git commit short-hash as the version identifier.This will turn the URL of your assets from this:
```
/css/style.css
```
to
```
/css/styles.css?v=b4703f8
```This will ensure that you assets always match the current version of your project by eliminating browser caching issues.
---
## Getting started
To get started, add the bundle to your project using Composer, like so:
```bash
composer require emileperron/git-version-strategy-bundle
```Then, in your `config/bundles.php` file, include the bundle like so:
```php
['all' => true],
];
```Once that's done, you should be all set!
The bundle automatically updates the configuration for `framework.assets.version_strategy` to use the `GitVersionStrategy`.---
## Manual configuration of the VersionStrategy
If for some reason the configuration is not set automatically, which can happen if another bundle also changes this configuration, define the following configuration in your `config/packages/framework.yaml`:
```yamlframework:
assets:
version_strategy: 'Emileperron\GitVersionStrategyBundle\Asset\GitVersionStrategy'
```---
## Safe mode, execution operator and `shell_exec()`
This bundle uses the [Execution Operator](https://www.php.net/manual/en/language.operators.execution.php) in order to get the current commit's hash. It is important to note that this **will not work** when [safe mode](https://www.php.net/manual/en/ini.sect.safe-mode.php#ini.safe-mode) is enabled or [shell_exec()](https://www.php.net/manual/en/function.shell-exec.php) is disabled.