2017 © Pedro Peláez
 

library frozen-silex

Turn your Silex Application into static HTML

image

chh/frozen-silex

Turn your Silex Application into static HTML

  • Saturday, November 23, 2013
  • by chh
  • Repository
  • 1 Watchers
  • 20 Stars
  • 1,354 Installations
  • PHP
  • 0 Dependents
  • 0 Suggesters
  • 3 Forks
  • 2 Open issues
  • 4 Versions
  • 0 % Grown

The README.md

Frozen Silex

Static site generator built for Silex., (*1)

This is a proof of concept and may not work for you. Some known issues include:, (*2)

  • Generated sites only work at the root of the server.
  • Generated sites can not be browsed without a server because URLs are not rewritten to be relative.

Install

Require chh/frozen-silex in your Silex Application's composer.json., (*3)

Getting Started

Create a Freezer instance with your Silex\Application object and call its freeze method:, (*4)

<?php

$freezer = new \FrozenSilex\Freezer(require('app.php'));
$freezer->freeze();

This will create a build directory in your current working directory with your application's controllers dumped as static HTML files., (*5)

Finding URLs

Frozen Silex works by looking at all your defined Routes in Silex's routes service, getting the URL for the name from the UrlGenerator and then triggering a virtual request via the Symfony BrowserKit Component., (*6)

The following URLs can be found automatically:, (*7)

  • Silex Routes which respond to GET requests.
  • URLs generated by the url_generator service.

Pages which are not accessible via links generated by the url_generator can be made accessible by writing URL Generators., (*8)

URL Generators

URL Generators are callbacks which return an array of additional URLs which the Freezer should trigger. URLs can be either a simple string (which is then treated as URL) or a tuple of route name and params, which is feeded through the URL Generator., (*9)

Example: If you've users which are not accessible through an Index page:, (*10)

<?php

$app->get('/users/{id}', function($id) { /* Code here */ })->bind('show_user');

$freezer = new \FrozenSilex\Freezer($app);
$freezer->registerGenerator(function() use ($app) {
    $users = [];

    foreach ($app['db']->users->find() as $user) {
        $users[] = ['show_user', ['id' => (string) $user['_id']]];
    }

    return $users;
});

Configuration

The following configuration keys are used from the App instance:, (*11)

  • freezer.destination (default: build): Directory where static files are generated, defaults to build in the current working directory.
  • freezer.override_url_generator (default: true): Overrides the app's URL generator with a custom one, which freezes all generated URLs.

The Versions

23/11 2013

dev-master

9999999-dev

Turn your Silex Application into static HTML

  Sources   Download

MIT

The Requires

 

The Development Requires

silex

23/11 2013

dev-release/1.0

dev-release/1.0

Turn your Silex Application into static HTML

  Sources   Download

MIT

The Requires

 

The Development Requires

silex

23/11 2013

v1.0.1

1.0.1.0

Turn your Silex Application into static HTML

  Sources   Download

MIT

The Requires

 

The Development Requires

silex

21/11 2013

v1.0.0

1.0.0.0

Turn your Silex Application into static HTML

  Sources   Download

The Requires

 

The Development Requires

silex