Folgendes Script ist von der Composer Website kopiert.
Es erstellt eine composer.phar Datei und initialisiert Composer für das Projekt.
php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');"
php -r "if (hash_file('SHA384', 'composer-setup.php') === '544e09ee996cdf60ece3804abc52599c22b1f40f4323403c44d44fdfdd586475ca9813a858088ffbc1f233e9b180f061') { echo 'Installer verified'; } else { echo 'Installer corrupt'; unlink('composer-setup.php'); } echo PHP_EOL;"
php composer-setup.php
php -r "unlink('composer-setup.php');"
Mittels Composer lässt sich Slim nun als Dependency installieren.
Zusätzlich erstellt dies den Ordner vendor (ähnlich dem Ordner „node_modules“ bei Nodejs).
php composer.phar require slim/slim "^3.0"
Öffentliche Scripts sollten in den Ordner „public“ erstellt werden.
Nun wird die Datei „index.php“ mit folgendem Inhalt erstellt, welche das Grundgerüst einer Slim App darstellt.
<?php
require '../vendor/autoload.php'; //autoload feature
$app = new \Slim\App; //neue Slim App Instanz
$app->run(); //starten der App
Um API Routen definieren zu können, werden Request und Response benötigt, welche in den Callback injected werden.
Angepasste index.php Datei:
use \Psr\Http\Message\ServerRequestInterface as Request;
use \Psr\Http\Message\ResponseInterface as Response;
require '../vendor/autoload.php';
$app = new \Slim\App; //neue Slim App Instanz
$app->get('/', function (Request $request, Response $response) {
return $response->withJson("Hello Slim3 API");
});
$app->run(); //starten der App
Die Seite lässt sich nun je nach Installation (Wamp, Xamp,…) über localhost in einem SubFolder „slim-api-test“ wie folgt aufrufen.
localhost/slim-api-test/public/index.php/
Im Ordner Public wird die Datei „.htaccess“ erstellt.
Mittels .htaccess lässt sich das ständige Integrieren von dem Segment „index.php“ in der Url vermeiden.
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^ index.php [QSA,L]
Nun lässt sich die Seite ohne index.php Segment aufrufen
localhost/slim-api-test/public/
Während der Entwicklung ist es hilfreich auftretende Fehler anzuzeigen.
Dies lässt sich mittels folgender Konfigration im App Constructor erweitern.
$app = new \Slim\App(
['settings' => [
'displayErrorDetails' => true,
]]
);
Mittels einfachem manuellen Slim Setup lässt sich schnell eine PHP API definieren, welche im Gegensatz zur automatischen Erstellung (siehe Slim Website) weniger Dependencies beinhaltet.
Nachdem Slim mit Composer initialisiert wurde, kann der komplette Inhalt auf einem Server deployed werden (inklusive „vendor“)
Ersteller der Webseite MuchaDev. Selbstständiger IT Constultant für Frontend Technologien.