Débuter avec slim

Installation ou configuration

La méthode recommandée pour installer le framework Slim consiste à utiliser composer.

  1. Créez un répertoire vide

Ce répertoire contiendra tous les fichiers nécessaires à l’exécution de notre application Slim. Nous appelons ce répertoire le répertoire racine afin de pouvoir adresser tous les autres fichiers et répertoires d’application relatifs au répertoire racine.

mkdir slim-app
  1. Installez le framework Slim et ses exigences à l’aide de composer

    cd slim-app composer require slim/slim “^3.0”

À partir de maintenant, nous supposons qu’il s’agit de notre répertoire de travail.

Une fois que composer a fini de télécharger les fichiers requis, il devrait y avoir deux fichiers composer.json et composer.lock et un répertoire nommé vendor qui inclut les fichiers téléchargés par composer. Nous sommes maintenant prêts à créer notre application. Pour organiser notre application, nous créons un autre répertoire :

mkdir public

Nous appelons cela le répertoire public et nous allons dire à notre serveur Web de servir notre application à partir de ce répertoire.

  1. Exemple d’application “Hello World”

Pour utiliser Slim, créez un index.php dans un répertoire public avec le code suivant :

public/index.php

<?php

include "../vendor/autoload.php";

$app = new \Slim\App();

$app->get('/', function ($request, $response, $args) {
    $response->getBody()->write("Hello world!");
});

$app->run();
  1. Démarrer le serveur PHP intégré

Nous pouvons maintenant utiliser le serveur PHP intégré pour servir notre application :

php -S localhost:8080 -t public

et exécutez le projet en ouvrant cette adresse dans un navigateur Web :

http://localhost:8080

Production

Bonjour le monde !

Configurez maintenant le serveur Web afin que toutes les requêtes soient transmises à ce fichier :

Configuration Apache pour des URL propres (facultatif)

Ce n’est pas obligatoire mais recommandé pour les projets minces de supprimer index.php dans l’URL de l’API.

Créez .htaccess dans le même dossier où se trouve votre index.php. Le fichier doit contenir le code suivant :

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^ index.php [QSA,L]

Assurez-vous que votre hôte virtuel Apache est configuré avec l’option AllowOverride afin que les règles de réécriture déclarées .htaccess puissent réellement être utilisées :

AllowOverride All

Configuration Ngnix

à déterminer

Premiers pas avec Slim Framework

Installation ou configuration du framework Slim

  • Installer Compositeur
  • Ouvrir cmd
  • Accédez au répertoire racine de votre dossier de projet et exécutez la commande suivante.

le compositeur requiert slim/slim “^3.0”

Vous aurez maintenant le répertoire des fournisseurs dans votre projet

Créez ensuite Index.php dans le dossier racine et ajoutez le code suivant

<?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();

Ensuite, exécutez le projet sur Localhost et essayez avec la commande suivante

http://localhost/project-root/index.php/hello/any-thing

Production

Bonjour n’importe quoi

Obtenir les données Json de la table de base de données (API REST)

use \Psr\Http\Message\ServerRequestInterface as Request;
use \Psr\Http\Message\ResponseInterface as Response;

require 'vendor/autoload.php';

$app = new \Slim\App;

$app->get('/employee/view', function ($req, $res) {

    $con = new mysqli('localhost','USERNAME','PASSWORD','DATABASE');

    $query = $con->query("SELECT * FROM employee"); 
    while ($row = $query->fetch_assoc()) {
        $data[] = $row;
    }
    return $res->withJson($data); 
});

$app->run();

Hello World Exemple

<?php

include "vendor/autoload.php";

$app = new \Slim\App();

$app->get('/hello', function () {
    echo "Hello, world";
});

$app->run();

Projet de squelette d’échafaudage avec composer et @akrabats Slim-Skeleton

  1. Selon que vous avez installé [composer][1] globalement ou localement.

    • Locally: php composer.phar create-project slim/slim-skeleton {my-app-name}
    • Globally: composer create-project slim/slim-skeleton {my-app-name}
  2. Si vous exécutez un serveur Web (ex. Apache ou nginx), pointez la racine de votre document virtualhost vers votre nouveau dossier public d’applications, par exemple. {nom-de-mon-application}/public.

  3. Assurez-vous que logs/ est accessible en écriture par la configuration de votre serveur Web.

Vous pouvez également exécuter tout le shebang en mode dev avec :

  • Localement : php composer.phar start
  • Globalement : composer start

Crédit : Rob Allen [@akrabat][2] et l’équipe SlimPHP.

PS: Je ne prends absolument AUCUN crédit pour cela. Presque textuellement de [slimphp/Slim-Skeleton][3]

[1] : https://getcomposer.org/doc/00-intro.md#installation-linux-unix-osx “composer” [2] : https://github.com/akrabat [3] : https://github.com/slimphp/Slim-Skeleton