Skip to content
/ shack Public

💍 If you like it then you should have put a sha on it.

License

Notifications You must be signed in to change notification settings

turanct/shack

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

14 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Turanct/Shack

A Stack middleware that will add a unique identifier (sha) to the application. It will set a custom header (X-Shack-Sha) containing the sha.

$ curl -I http://shack.dev
HTTP/1.1 200 OK
Date: Sat, 06 Dec 2014 17:29:49 GMT
Server: Apache/2.2.22 (Ubuntu)
X-Powered-By: PHP/5.3.10-1ubuntu3.15
Cache-Control: no-cache
X-Shack-Sha: 7c2796aa85d735874ec95c7b4e18a2e0f15d1456
Vary: Accept-Encoding
Content-Type: text/html; charset=UTF-8

Example

<?php

$app = new Silex\Application();

$app->get('/', function() use ($app) {
    return 'Hello World';
});

$stack = new Stack\Builder();
$stack->push('Turanct\Shack', new Turanct\Shack\Git());
$app = $stack->resolve($app);

Usage

Just pass in the right Sha type as argument to the Turanct\Shack constructor (Git, RevisionFile, String), and Shack will take care of the rest.

Options:

  • Turanct\Shack\Git will run a git command on your server, to retreive the current HEAD's sha
  • Turanct\Shack\RevisionFile will use the contents of a given file as sha. This is particulary handy when using Capistrano, as there's a Capistrano task to create these files. You can just pass the revision file path as a constructor parameter.
  • Turanct\Shack\String takes any string and uses that as the sha. This might be handy to use when you want to set the sha yourself, e.g. using ENV variables.

If you want to disable the html sha stamp on your html pages, just pass false to the Turanct\Shack constructor.

Inspiration

Ported from the ruby rack middleware by Piet pjaspers/shack

About

💍 If you like it then you should have put a sha on it.

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages