rcrowe / turbo
Think turbolinks but for your PHP application. Powered by pjax.
Installs: 3 389
Dependents: 1
Suggesters: 0
Security: 0
Stars: 87
Watchers: 7
Forks: 6
Open Issues: 3
Requires
- php: >=5.3.0
This package is auto-updated.
Last update: 2024-10-29 04:03:54 UTC
README
Turbolinks but for your PHP application; powered by PJAX.
Installation
Turbo has only been tested installing through Composer.
Add rcrowe\turbo
as a requirement to composer.json:
{ "require": { "rcrowe/turbo": "0.2.*" } }
Update your packages with composer update
or install with composer install
.
Providers
Providers enable instant usage of Turbo within different frameworks, we currently provide the following integrations:
Laravel
Add Turbo\Provider\Laravel\TurboServiceProvider
to app/config/app.php
and your good to go.
The Laravel provider also registers a turbo.pjax
event so that other parts of your app can listen for a pjax request. For example:
Event::listen('turbo.pjax', function($request, $response) { $response->header('X-App-Msg', 'Hello world'); });
Fuelphp
Add class_alias('Turbo\\Provider\\Fuel\\Response', 'Response')
to the bottom of fuel\app\bootstrap.php
and your good to go.
Turbo also registers a turbo.pjax
event that you can listen for. For example:
Event::register('turbo.pjax', function() { echo 'This is a pjax request'; });
PJAX
To make this all work Turbo needs PJAX to get and set the response.
Just like Turbolinks we respond with the whole body, not just a section of it. In order to support this, you need
to setup PJAX to use the <body>
tag. A simple example of this would be:
$(function() { $(document).pjax('.js-pjax', 'body'); });
License
Turbo is released under the MIT public license.