Erstellen und Ausführen eines Slim-Projekts
Was ist Slim?
Slim ist ein leichtgewichtiges PHP-Mikroframework, das für die schnelle Erstellung einfacher, aber leistungsstarker Webanwendungen und APIs entwickelt wurde. Es bietet grundlegende Routing-, Anforderungs- und Antwortbehandlungsfunktionen und ist besonders geeignet für Projekte, die schnell entwickelt und bereitgestellt werden müssen.
Hauptmerkmale und Vorteile von Slim
- Leichtgewichtig: Das Slim-Framework ist sehr klein und eignet sich für den Aufbau kleiner und mittlerer Anwendungen.
- Flexibilität: Kann mit beliebigen Drittanbieter-Komponenten oder -Bibliotheken integriert werden, was große Flexibilität bietet.
- Einfach zu verwenden: Eine einfache API und klare Dokumentation ermöglichen es Entwicklern, schnell loszulegen.
- Leistungsstarke Routing-Funktionalität: Unterstützt verschiedene HTTP-Methoden und komplexe Routing-Konfigurationen.
- Unterstützung für Middleware: Ermöglicht das einfache Hinzufügen von Middleware zur Behandlung von Anfragen und Antworten.
Slim ist die ideale Wahl für den Aufbau von RESTful-APIs und die schnelle Prototypentwicklung.
Erstellen und Ausführen eines Slim-Projekts mit ServBay
In diesem Artikel verwenden wir die von ServBay bereitgestellte PHP-Umgebung, um ein Slim-Projekt zu erstellen und auszuführen. Wir werden die "Host"-Funktion von ServBay nutzen, um den Webserver einzurichten und durch einfache Konfiguration das Projekt zugänglich zu machen.
Hinweis: Wenn Sie früher ein NGINX- oder Apache-Benutzer waren
ServBay verwendet standardmäßig Caddy als Webserver. Für Benutzer, die von NGINX und Apache zu ServBay wechseln, gibt es einige wichtige Änderungen zu beachten:
Caddy-Konfiguration
ServBay hat Caddy bereits integriert und die Standardkonfiguration wurde optimiert und getestet. Entwickler müssen nur die "Host"-Funktion von ServBay verwenden, um Websites zu verwalten, ohne die Caddy-Konfigurationsdateien manuell ändern zu müssen.
Rewrite-Regeln und .htaccess
In NGINX und Apache müssen Entwickler normalerweise eigene Rewrite-Regeln und .htaccess-Dateien schreiben, um URL-Rewrites und andere Konfigurationen zu bearbeiten. ServBay hat jedoch bereits die Caddy-Regeln vorkonfiguriert, sodass Entwickler diese Regeln nicht selbst schreiben müssen, es sei denn, es gibt spezielle Anforderungen.
Mehr erfahren
Weitere Informationen finden Sie unter Rewrite und htaccess, Wie migriere ich eine Apache-Website zu ServBay und Wie migriere ich eine NGINX-Website zu ServBay.
Erstellen eines Slim-Projekts
TIP
ServBay empfiehlt Entwicklern, ihre Websites im Verzeichnis /Applications/ServBay/www
abzulegen, um die Verwaltung zu erleichtern.
Composer installieren
ServBay hat Composer bereits vorinstalliert, daher ist keine separate Installation erforderlich.
Slim-Projekt erstellen
Erstellen Sie ein neues Slim-Projekt mit Composer:
bashcd /Applications/ServBay/www mkdir servbay-slim-app cd servbay-slim-app composer require slim/slim "^4.0" composer require slim/psr7 -W
1
2
3
4
5Wechseln zum Projektverzeichnis
Wechseln Sie in das neu erstellte Slim-Projektverzeichnis:
bashcd /Applications/ServBay/www/servbay-slim-app
1
Initialisierung der Konfiguration
Erstellen der Einstiegsdatei
Erstellen Sie eine Datei
public/index.php
im Root-Verzeichnis des Projekts und fügen Sie folgenden Code hinzu:php<?php require __DIR__ . '/../vendor/autoload.php'; use Psr\Http\Message\ResponseInterface as Response; use Psr\Http\Message\ServerRequestInterface as Request; use Slim\Factory\AppFactory; $app = AppFactory::create(); $app->get('/', function (Request $request, Response $response, $args) { $response->getBody()->write("Hello ServBay!"); return $response; }); $app->run();
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
Konfiguration des Webservers
Verwenden Sie die "Host"-Funktion von ServBay, um auf das Slim-Projekt über den Webserver zuzugreifen. Fügen Sie in den "Host"-Einstellungen von ServBay einen neuen Host hinzu:
- Name:
My First Slim Dev Site
- Domain:
servbay-slim-test.local
- Website-Typ:
PHP
- PHP-Version: Wählen Sie
8.3
- Root-Verzeichnis der Website:
/Applications/ServBay/www/servbay-slim-app/public
Detaillierte Anweisungen finden Sie unter Erstes Website hinzufügen.
Beispielcode hinzufügen
Fügen Sie den folgenden Code in die Datei public/index.php
ein, um "Hello ServBay!" auszugeben:
$app->get('/', function (Request $request, Response $response, $args) {
$response->getBody()->write("Hello ServBay!");
return $response;
});
2
3
4
Zugriff auf die Website
Öffnen Sie Ihren Browser und besuchen Sie https://servbay-slim-test.local
, um "Hello ServBay!" auf der Webseite zu sehen.
NoSQL-Datenbankbeispiel
Memcached-Beispiel
Installieren der Memcached-Erweiterung
Die Memcached-Erweiterung ist in ServBay bereits vorinstalliert, eine zusätzliche Installation ist nicht erforderlich.
Konfiguration von Memcached
Fügen Sie die Memcached-Abhängigkeit in der Datei
composer.json
hinzu:json{ "require": { "slim/slim": "^4.0", "memcached/memcached": "^3.1" } }
1
2
3
4
5
6Führen Sie dann
composer update
aus, um die Abhängigkeiten zu installieren.Konfiguration von Routen
Fügen Sie den folgenden Code in die Datei
public/index.php
ein:php$app->get('/memcached', function (Request $request, Response $response, $args) { $memcached = new Memcached(); $memcached->addServer('127.0.0.1', 11211); $cacheKey = 'my_cache_key'; $cachedData = $memcached->get($cacheKey); if ($cachedData === false) { $cachedData = 'Hello Memcached!'; $memcached->set($cacheKey, $cachedData); } $response->getBody()->write($cachedData); return $response; });
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15Verwendung von Memcached
Öffnen Sie Ihren Browser und besuchen Sie
https://servbay-slim-test.local/memcached
Redis-Beispiel
Installieren der Redis-Erweiterung
Die Redis-Erweiterung ist in ServBay bereits vorinstalliert, eine zusätzliche Installation ist nicht erforderlich.
Konfiguration von Redis
Fügen Sie die Redis-Abhängigkeit in der Datei
composer.json
hinzu:json{ "require": { "slim/slim": "^4.0", "predis/predis": "^1.1" } }
1
2
3
4
5
6Führen Sie dann
composer update
aus, um die Abhängigkeiten zu installieren.Konfiguration von Routen
Fügen Sie den folgenden Code in die Datei
public/index.php
ein:php$app->get('/redis', function (Request $request, Response $response, $args) { $redis = new Predis\Client([ 'scheme' => 'tcp', 'host' => '127.0.0.1', 'port' => 6379, ]); $cacheKey = 'my_cache_key'; $cachedData = $redis->get($cacheKey); if ($cachedData === null) { $cachedData = 'Hello Redis!'; $redis->set($cacheKey, $cachedData); } $response->getBody()->write($cachedData); return $response; });
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18Verwendung von Redis
Öffnen Sie Ihren Browser und besuchen Sie
https://servbay-slim-test.local/redis
Beispiel einer relationalen Datenbank
Erstellen der Datenbankstruktur und Migrationsdateien
Erstellen von Migrationsdateien
Verwenden Sie Phinx, um Migrationsdateien zu erstellen:
bashcomposer require robmorgan/phinx vendor/bin/phinx init
1
2Bearbeiten der Migrationsdateien
Erstellen Sie im Verzeichnis
db/migrations
eine neue Migrationsdatei und bearbeiten Sie diese, um die Tabellenstruktur der Datenbank zu definieren:phpuse Phinx\Migration\AbstractMigration; class CreateUsersTable extends AbstractMigration { public function change() { $table = $this->table('users'); $table->addColumn('name', 'string') ->addColumn('email', 'string', ['unique' => true]) ->create(); } }
1
2
3
4
5
6
7
8
9
10
11
12Ausführen der Migration
Verwenden Sie den Phinx-Befehl, um die Migration auszuführen und die Datenbanktabelle zu erstellen:
bashvendor/bin/phinx migrate
1
MySQL-Beispiel
Konfiguration von MySQL
Fügen Sie die MySQL-Abhängigkeit in der Datei
composer.json
hinzu:json{ "require": { "slim/slim": "^4.0", "illuminate/database": "^8.0" } }
1
2
3
4
5
6Führen Sie dann
composer update
aus, um die Abhängigkeiten zu installieren.Konfiguration von Routen
Fügen Sie den folgenden Code in die Datei
public/index.php
ein:phpuse Illuminate\Database\Capsule\Manager as Capsule; $capsule = new Capsule; $capsule->addConnection([ 'driver' => 'mysql', 'host' => '127.0.0.1', 'database' => 'servbay_slim_app', 'username' => 'root', 'password' => 'password', 'charset' => 'utf8', 'collation' => 'utf8_unicode_ci', 'prefix' => '', ]); $capsule->setAsGlobal(); $capsule->bootEloquent(); $app->get('/mysql-add', function (Request $request, Response $response, $args) { $user = Capsule::table('users')->insert([ 'name' => 'ServBay', 'email' => '[email protected]' ]); $response->getBody()->write('User added'); return $response; }); $app->get('/mysql', function (Request $request, Response $response, $args) { $users = Capsule::table('users')->get(); $response->getBody()->write($users->toJson()); return $response; });
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32Daten zum Benutzer hinzufügen
Öffnen Sie Ihren Browser und besuchen Sie
https://servbay-slim-test.local/mysql-add
undhttps://servbay-slim-test.local/mysql
PostgreSQL-Beispiel
Konfiguration von PostgreSQL
Fügen Sie die PostgreSQL-Abhängigkeit in der Datei
composer.json
hinzu:json{ "require": { "slim/slim": "^4.0", "illuminate/database": "^8.0" } }
1
2
3
4
5
6Führen Sie dann
composer update
aus, um die Abhängigkeiten zu installieren.Konfiguration von Routen
Fügen Sie den folgenden Code in die Datei
public/index.php
ein:phpuse Illuminate\Database\Capsule\Manager as Capsule; $capsule = new Capsule; $capsule->addConnection([ 'driver' => 'pgsql', 'host' => '127.0.0.1', 'database' => 'servbay_slim_app', 'username' => 'root', 'password' => 'password', 'charset' => 'utf8', 'prefix' => '', 'schema' => 'public', ]); $capsule->setAsGlobal(); $capsule->bootEloquent(); $app->get('/pgsql-add', function (Request $request, Response $response, $args) { $user = Capsule::table('users')->insert([ 'name' => 'ServBay', 'email' => '[email protected]' ]); $response->getBody()->write('User added'); return $response; }); $app->get('/pgsql', function (Request $request, Response $response, $args) { $users = Capsule::table('users')->get(); $response->getBody()->write($users->toJson()); return $response; });
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32Daten zum Benutzer hinzufügen
Öffnen Sie Ihren Browser und besuchen Sie
https://servbay-slim-test.local/pgsql-add
undhttps://servbay-slim-test.local/pgsql
Mit diesen Schritten haben Sie erfolgreich ein Slim-Projekt erstellt und ausgeführt und die von ServBay bereitgestellten Funktionen genutzt, um Ihr Projekt zu verwalten und darauf zuzugreifen, sowie Verbindungen zu verschiedenen Datenbanken herzustellen und Daten abzurufen.