Skip to content

Latest commit

 

History

History
69 lines (50 loc) · 2.79 KB

README.md

File metadata and controls

69 lines (50 loc) · 2.79 KB

Synopsis

This package is used to provide static asset versioning in a fashionly yet simple manner to developers. Other more complex static asset versioning systems exist built-in frameworks but many developers of other frameworks and codebase do not have the ability to benefit from the static asset versioning.

Requirements

- PHP 5.3.x
- PECL HTTP 

Example

Many static files as such as js, css, png, etc. are often included in the headers of web-apps and web-sites. To add versioning simply do the following:

    <?php require_once 'Orchestra/Versioning.php'; ?>
    <head>
      <script type="text/javascript" src="/path/to/file.js?<?php orchestra\Versioning::version('1');?>"></script>
      <script type="text/javascript" src="/path/to/file2.js?<?php orchestra\Versioning::version('2');?>"></script>
      <script type="text/javascript" src="/path/to/other.js?<?php orchestra\Versioning::version('1');?>"></script>
    </head>

The same has to be done for the included CSS files and images. A good example for us is that we use the latest svn or git version. If you do not wish to include different versions, you may want to set a variable, assign a value to it and use it consistantly across your application like this:

    <?php require_once 'Orchestra/Versioning.php'; $version = 'x1y2z3'; ?>
    <head>
      <script type="text/javascript" src="/path/to/file.js?<?php orchestra\Versioning::version($version);?>"></script>
      <script type="text/javascript" src="/path/to/file2.js?<?php orchestra\Versioning::version($version);?>"></script>
      <script type="text/javascript" src="/path/to/other.js?<?php orchestra\Versioning::version($version);?>"></script>
    </head>

The benefit from using Orchestra\Versioning instead of directly using the version number is that you can use various versions and easily manage them. You can also request a file to have no-cache like this:

    <?php require_once 'Orchestra/Versioning.php'; ?>
    <head>
      <script type="text/javascript" src="/path/to/file.js?<?php orchestra\Versioning::version();?>"></script>
    </head>

This will effectively create a new entry in the local cache of the versions with the current time() value. If you re-use this method later in your application, the time() function will not be invoked but directly retrieved from the local-cached map of versions.

License

This is released under the New BSD license. Should you require a copy of the license, it is included in this very repository.

Copyright

Orchestra Platform Ltd. 2011

Links

Orchestra.io Orchestra.io Caching Strategies Yahoo Performance Basics on Versioning