aalfiann/slim-skeleton

This is a very simple, fast and secure of slim-skeleton.

1.6.2 2020-03-29 11:38 UTC

This package is auto-updated.

Last update: 2024-03-29 03:32:37 UTC


README

Version Total Downloads License

This is a very simple, fast and secure of slim-skeleton.
This skeleton is secured with CSRF, fast, simple and modular architecture.

Dependencies

  • CSRF Guard >> slim/csrf
  • TWIG Template >> slim/twig-view
  • HTTP Cache >> slim/http-cache
  • Flash Messages >> slim/flash
  • Logger >> monolog/monolog

Installation

Install this package via Composer.

composer create-project aalfiann/slim-skeleton [my-app-name]

Getting Started

How to create new application

  • 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

How to activate CSRF

CSRF is already integrated in this skeleton :

  1. 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'));
  1. 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}}">
  1. 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.