aalfiann / slim-skeleton
This is a very simple, fast and secure of slim-skeleton.
Installs: 377
Dependents: 0
Suggesters: 0
Security: 0
Stars: 2
Watchers: 3
Forks: 1
Open Issues: 0
Type:framework
Requires
- php: >=5.5
- monolog/monolog: ^1.22
- slim/csrf: ^0.8.3
- slim/flash: ^0.4.0
- slim/http-cache: ^0.4.0
- slim/slim: ^3.1
- slim/twig-view: ^2.1
- twig/twig: ~2.0
README
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 :
- 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.