Slim Framework


Molto spesso si ha la necessità di realizzare dei Servizi REST, questo per garantire che il proprio applicativo gira sulle diverse piattaforme che il mercato ci offre.
Slim Framework è appunto un framework PHP, il suo punto di forza rispetto agli altri framework è la sua semplicità di utilizzo, realizzare dei servizi REST con Slim è davvero semplice si entra facilmente nei meccanismi del framework.
Slim ci offre le seguenti funzionalità:

  • Routing engine
  • Gestione cookie
  • Cache HTTP
  • Messaggi Flash
  • Templating

Installazione:

L’installazione di slim framework è fortemente consigliata con  Composer. Quest’ultimo è un tool per gestire le dipendenze nei progetti php per capire meglio su cos’è composer cliccare qui.

Esempio di Route:

<?php
use \Psr\Http\Message\ServerRequestInterface as Request;
use \Psr\Http\Message\ResponseInterface as Response;

require '../vendor/autoload.php';

$app = new \Slim\App;
$app->get('/hello/{name}', function (Request $request, Response $response) {
    $name = $request->getAttribute('name');
    $response->getBody()->write("Hello, $name");

    return $response;
});
$app->run();

In questo esempio abbiamo creato la nostra prima route in get, quello che viene fatto è un semplice saluto se viene chiamato l’URL: ‘https://nostro_url/hello/nostro_nome’. Analizzando il codice la cosa fondamentale e  includere il file autoload.php presente nella cartella vendor, questo file ci carica in maniera automatica il framework Slim, subito dopo bisogna creare un’ istanza del framework ($app) attraverso quest’istanza creiamo la nostra prima route che come detto in precedenza e di tipo get che stamperà un saluto più la variabile name avvalorata.

Tipi di Route:

GET Route

Possiamo aggiungere route che gestiscono richieste di tipo Get il tutto avviente con il metodo get che slim ci mette a disposizione. Esso accetta due argomenti:

  1. Il pattern della route
  2. Una funzione di callback, che a sua volta prende tre argomenti (richiesta, risposta e args)
$app = new \Slim\App();
$app->get('/books/{id}', function ($request, $response, $args) {
    // Mostra il libro identificato dall' args['id']
});

POST Route

Possiamo aggiungere route che gestiscono richieste di tipo Post il tutto avviente con il metodo post che slim ci mette a disposizione. Esso accetta due argomenti:

  1. Il pattern della route
  2. Una funzione di callback, che a sua volta prende tre argomenti (richiesta, risposta e args)
$app = new \Slim\App();
$app->post('/books', function ($request, $response, $args) {
    // Crea un nuovo libro
});

PUT Route

Possiamo aggiungere route che gestiscono richieste di tipo Put il tutto avviente con il metodo put che slim ci mette a disposizione. Esso accetta due argomenti:

  1. Il pattern della route
  2. Una funzione di callback, che a sua volta prende tre argomenti (richiesta, risposta e args)
$app = new \Slim\App();
$app->put('/books/{id}', function ($request, $response, $args) {
    // Aggiorna il libro identifico dal args['id']
});

DELETE Route

Possiamo aggiungere route che gestiscono richieste di tipo Delete il tutto avviente con il metodo delete che slim ci mette a disposizione. Esso accetta due argomenti:

  1. Il pattern della route
  2. Una funzione di callback, che a sua volta prende tre argomenti (richiesta, risposta e args)
$app = new \Slim\App();
$app->delete('/books/{id}', function ($request, $response, $args) {
    // Elimina il libro identifico dal args['id']
});

Queste sono le operazioni CRUD che sono facilmente realizzabili con Slim Framework, ma vi voglio ricordare che con Slim si possono realizzare altre operazioni di cui non parlerò in quest’articolo.

Conclusioni:

L’ utilizzo di Slim credo non sia sempre da sconsigliare, anzi: la sua estrema semplicità lo rende ideale per prototipi o piccole applicazioni. Può anche essere utilizzato durante lo sviluppo front end, per sostituire uno strato di servizi reali con uno strato di servizi mock. Se invece la vostra applicazione è di dimensioni medio-grandi salterei direttamente ad un framework più strutturato (ma anche più complesso) come Laravel o Zend.

Link utili:
https://www.slimframework.com/


Leave a comment

Your email address will not be published. Required fields are marked *

2 thoughts on “Slim Framework