Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/franzwilding/last
Zero Configuration, Static Site Generator for any Symfony project.
https://github.com/franzwilding/last
php ssg static-site-generator symfony
Last synced: 2 months ago
JSON representation
Zero Configuration, Static Site Generator for any Symfony project.
- Host: GitHub
- URL: https://github.com/franzwilding/last
- Owner: franzwilding
- Created: 2018-08-13T07:44:36.000Z (over 6 years ago)
- Default Branch: master
- Last Pushed: 2018-08-31T16:54:42.000Z (over 6 years ago)
- Last Synced: 2024-05-06T10:20:16.087Z (8 months ago)
- Topics: php, ssg, static-site-generator, symfony
- Language: PHP
- Homepage:
- Size: 47.9 KB
- Stars: 11
- Watchers: 6
- Forks: 3
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# Last – static site generator for any Symfony project
[![Build Status](https://travis-ci.org/franzwilding/last.svg?branch=master)](https://travis-ci.org/franzwilding/last)
[![Test Coverage](https://api.codeclimate.com/v1/badges/e9334f9657fc4a65e24c/test_coverage)](https://codeclimate.com/github/franzwilding/last/test_coverage)Last is a minimalistic static site generator for Symfony 4 applications. Once installed, Last provides a
command that will simply create requests for all of your routes and dumps the result as a static file to a dist folder.## Installation
*(A symfony/flex recipe will be created soon. )*composer require fw/last-bundle
Last should get registered automatically to config/bundles.php. If not, add it by hand:...
Fw\LastBundle\FwLastBundle::class => ['all' => true],## Usage
Now you can run the dump command and your Symfony app gets exported as static html files.# will dump to the configured dist folder, defaults to %project%/dist
bin/console last:dump
# wil dump to the given folder
bin/console last:dump --dist=./custom_dist_folder
## Is it production ready?
Soon, however the following is missing yet:- [ ] Test with more real life projects
- [ ] Provide an symfony/flex recipe
- [ ] Automatically copy assets from public/build, public/bundles/* and other locations to dist folder after dumping## Configuration
fw_last:
dist_folder: '%kernel.project_dir%/dist' # this is the default dist folder, if you don't set it
providers:
static: true # Static provider is enabled per default, you can disable it here## Request providers
Last runs requests against your kernel. So in order to make it work, all desired requests must be defined. To make
things more easy, Last comes with a request provider for all static routes (routes without mandatory placeholders). So
you only need to implement a custom request provider if you want to include dynamic routes like *blog/article/{id}*. A
simple provider could look like this:use Fw\LastBundle\Router\RouteProvider;
class YourustomProvider implements RouteProvider
{
/**
* {@inheritdoc}
*/
public function getRoutes(): array
{
return [
Request::create('blog/article/1'),
Request::create('blog/article/2'),
Request::create('blog/article/3'),
];
}
}And needs to be a tagged service, in order to make it visible for Last.
Your\CustomBundle\Provider\CustomProvider:
tags: ['fw.last.route_provider']Of course you can inject any dependencies like an entity manager to create more advanced providers.
## Troubleshooting
### My links start with `http://localhost/` what should I do?
Use `{{ path() }}` instead of `{{ url() }}` in your templates to make your urls relative.