This is a very simple, fast and secure of slim-skeleton.
This skeleton is secured with CSRF, fast, simple and modular architecture.
- CSRF Guard >> slim/csrf
- TWIG Template >> slim/twig-view
- HTTP Cache >> slim/http-cache
- Flash Messages >> slim/flash
- Logger >> monolog/monolog
Install this package via Composer.
composer create-project aalfiann/slim-skeleton [my-app-name]
- Go to modules directory
- Create new folder
my-app
- To create routes, you should follow this pattern >>
*.router.php
- Put the view template to
templates/default
directory - Done
CSRF is already integrated in this skeleton :
- Create same two routes, GET and POST
use \Psr\Http\Message\ServerRequestInterface as Request;
use \Psr\Http\Message\ResponseInterface as Response;
// load contact page
$app->get('/contact', function (Request $request, Response $response) {
$body = $response->getBody();
return $this->view->render($response, "contact.twig", []);
})->setName("/contact")->add($container->get('csrf'));
// send message
$app->post('/contact', function (Request $request, Response $response) {
$body = $response->getBody();
return $this->view->render($response, "contact.twig", []);
})->add($container->get('csrf'));
- Put hidden input value in contact form HTML
<input type="hidden" name="{{csrf.keys.name}}" value="{{csrf.name}}">
<input type="hidden" name="{{csrf.keys.value}}" value="{{csrf.value}}">
- Done
Note:
- Documentation about
Slim
is available on slimframework.com. - This is a forked version from the original slimphp/Slim-Skeleton.
- There is swift project based from this skeleton which is already integrated with Flat-File, User Session, Authorization, Validation, etc.