Ein PHPixie-Projekt auf macOS mit ServBay erstellen und ausführen
PHPixie ist ein leichtgewichtiges und leistungsstarkes PHP-Framework, das speziell für die schnelle Entwicklung von Webanwendungen konzipiert wurde. Es folgt dem HMVC-Designmuster (Hierarchical Model-View-Controller) und bietet eine saubere Code-Struktur sowie effiziente Performance. PHPixie überzeugt Entwickler aufgrund seiner Einfachheit, Flexibilität und hohen Geschwindigkeit.
Hauptmerkmale und Vorteile von PHPixie
- Leichtgewichtig: Das Kernsystem von PHPixie ist äußerst schlank und enthält nur die notwendigen Komponenten für den Aufbau von Anwendungen. Das sorgt für schnelle Start- und Laufzeiten.
- Hohe Performance: Die Framework-Architektur ist auf Effizienz ausgelegt und kann parallele Anfragen effizient verarbeiten – ideal für leistungsintensive Anwendungen.
- Einfach zu erlernen: Mit einer klaren, übersichtlichen API und ausführlicher Dokumentation können Entwickler schnell einsteigen.
- Flexibilität: Der lose gekoppelte Aufbau erlaubt es, je nach Projektanforderung Drittanbieter-Bibliotheken und -Komponenten frei zu wählen und einzubinden.
- Aktive Community: Eine lebendige Entwickler-Community bietet zahlreiche Erweiterungen und Support-Ressourcen.
PHPixie hilft Entwicklern, hochwertige und performante Webanwendungen effizient zu erstellen – vom kleinen Projekt bis hin zu großen Unternehmenslösungen.
Ein PHPixie-Projekt mit ServBay erstellen und betreiben
Diese Anleitung zeigt Ihnen Schritt für Schritt, wie Sie mit der lokalen Webentwicklungsumgebung von ServBay ein PHPixie-Projekt anlegen und zum Laufen bringen. Dabei nutzen wir die integrierte PHP-Umgebung, den Composer-Paketmanager sowie die "Websites"-Funktion für die Webserver-Konfiguration und erschließen uns den lokalen Zugriff inklusive Datenbank- und Cache-Integration.
Voraussetzungen
- ServBay ist auf Ihrem macOS installiert und läuft. ServBay vereint PHP, Composer, diverse Datenbanken (z. B. MySQL, PostgreSQL, MongoDB, Redis) sowie den Caddy-Webserver.
- Grundkenntnisse im Umgang mit dem Terminal.
Ein PHPixie-Projekt erstellen
Empfohlener Projektpfad
ServBay empfiehlt, lokale Webprojekte einheitlich im Verzeichnis /Applications/ServBay/www
abzulegen, um die Verwaltung und die Zugriffssteuerung durch ServBay zu erleichtern.
- Sicherstellen, dass Composer installiert ist: ServBay enthält bereits Composer; eine separate Installation ist nicht nötig. Überprüfen Sie dies im Terminal mit
composer --version
. - Projektverzeichnis anlegen: Erstellen Sie im empfohlenen Stammverzeichnis einen neuen Ordner für Ihr PHPixie-Projekt und wechseln Sie in das Verzeichnis:bash
cd /Applications/ServBay/www mkdir servbay-phpixie-app cd servbay-phpixie-app
1
2
3 - PHPixie-Projekt mit Composer erstellen: Führen Sie im Projektverzeichnis folgenden Composer-Befehl aus, um das PHPixie-Template herunterzuladen:bashComposer lädt PHPixie und alle erforderlichen Abhängigkeiten in das aktuelle Verzeichnis.
composer create-project phpixie/project .
1
Webserver konfigurieren
Nutzen Sie die Websites-Funktion von ServBay, um den Caddy-Webserver so einzurichten, dass Ihr PHPixie-Projekt korrekt angesprochen und ausgeführt wird.
Öffnen Sie die ServBay-Oberfläche.
Navigieren Sie zur Websites-Übersicht.
Klicken Sie auf "Neue Website hinzufügen".
Füllen Sie die Webseiten-Konfiguration wie folgt aus:
- Name: Zum Beispiel
My First PHPixie Dev Site
(nur für die interne Kennzeichnung in ServBay). - Domain: Z. B.
servbay-phpixie-test.local
(diese Domain nutzen Sie später im Browser). - Website-Typ: Wählen Sie
PHP
. - PHP-Version: Wählen Sie z. B.
8.3
. - Stammverzeichnis (Document Root): Zeigt auf das
web
-Verzeichnis Ihres Projekts:/Applications/ServBay/www/servbay-phpixie-app/web
.
Warum das
/web
-Verzeichnis?Die Einstiegsdatei Ihres PHPixie-Projekts liegt unter
web/index.php
. Aus Gründen der Sicherheit und Best Practice sollte der Webserver als Stammverzeichnis direkt auf diesesweb
-Verzeichnis zeigen, damit sensible Dateien (z.B. Konfigurationsdateien, vendor-Ordner usw.) nicht direkt über den Browser zugänglich sind.- Name: Zum Beispiel
Speichern Sie die Konfiguration. ServBay richtet den Caddy-Webserver automatisch ein und aktualisiert – falls nötig – Ihre lokale Hosts-Datei, sodass
servbay-phpixie-test.local
auf Ihren lokalen ServBay-Server verweist.
Einen detaillierten Ablauf finden Sie unter Erste Website hinzufügen.
Beispielcode hinzufügen
Um die Funktionalität zu prüfen und die Datenbank-/Cache-Anbindung zu demonstrieren, ergänzen wir das Projekt mit Beispielcode.
Beispiel-Controller anlegen: Legen Sie folgende Datei an – falls nötig, erstellen Sie dazu das Verzeichnis
src/App/HTTP/Controller/Home.php
.php<?php namespace App\HTTP\Controller; use PHPixie\HTTP\Request; use PHPixie\Template; use PHPixie\Database\Query; // Query-Klasse einbinden class Home extends \PHPixie\Controller { protected $template; public function __construct(Template $template) { $this->template = $template; } // Standard-Action für die Startseite public function action_index(Request $request) { // Rendert das Template assets/templates/app/home.php return $this->template->render('app:home'); } // Memcached-Beispiel public function action_memcached(Request $request) { $cache = $this->components->cache(); $cache->set('key', 'Hello Memcached from ServBay!', 60); // Wert für 60 Sekunden speichern $value = $cache->get('key'); // Wert abrufen return $this->response()->string($value); // Rückgabe als String-Antwort } // Redis-Beispiel public function action_redis(Request $request) { $redis = $this->components->redis(); $redis->set('key', 'Hello Redis from ServBay!'); // Wert speichern $value = $redis->get('key'); // Wert abrufen return $this->response()->string($value); // Rückgabe als String-Antwort } // Beispiel: Benutzer zu MySQL/PostgreSQL hinzufügen public function action_add_user(Request $request) { // Abruf des Query-Builders via Datenbank-Komponente $query = $this->components->database()->query(); // Einen neuen Benutzer in die Tabelle "users" einfügen $query->insert('users')->data([ 'name' => 'ServBay Demo User', 'email' => 'demo-' . uniqid() . '@servbay.test', // Eindeutige E-Mail verwenden ])->execute(); // Einfügen ausführen return $this->response()->string('User added successfully.'); // Erfolgsnachricht zurückgeben } // Beispiel: Benutzerliste aus MySQL/PostgreSQL auslesen public function action_list_users(Request $request) { // Abruf des Query-Builders via Datenbank-Komponente $query = $this->components->database()->query(); // Alle Benutzer aus der Tabelle "users" abfragen $users = $query->select('*')->from('users')->execute()->fetchAll(); // Ergebnisse abrufen return $this->response()->json($users); // Rückgabe der Nutzerliste als JSON } }
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
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67Beispiel-Template anlegen: Legen Sie unter
assets/templates/app/home.php
folgende Datei an (erstelle Ordner gegebenenfalls neu).php<!doctype html> <html lang="de"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Willkommen bei PHPixie auf ServBay</title> <style> body { font-family: sans-serif; line-height: 1.6; margin: 20px; } h1 { color: #333; } p { margin-bottom: 15px; } code { background-color: #f4f4f4; padding: 2px 5px; border-radius: 4px; } ul { list-style: none; padding: 0; } li { margin-bottom: 10px; } li a { text-decoration: none; color: #007bff; } li a:hover { text-decoration: underline; } </style> </head> <body> <h1>Willkommen bei PHPixie auf ServBay</h1> <p>Diese Seite wird dynamisch von Ihrer PHPixie-Anwendung auf ServBay generiert.</p> <h2>Links zu Beispiel-Funktionen:</h2> <ul> <li><a href="/home/memcached">Memcached testen</a></li> <li><a href="/home/redis">Redis testen</a></li> <li><a href="/home/add_user">Benutzer zur Datenbank hinzufügen</a></li> <li><a href="/home/list_users">Benutzer aus der Datenbank auflisten</a></li> </ul> <p>Bitte stellen Sie sicher, dass Sie die notwendigen Schritte zur Datenbank- und Cache-Konfiguration abgeschlossen haben.</p> </body> </html>
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
32
33
Die Website aufrufen
Sobald die ServBay-Konfiguration und der Beispielcode erstellt wurden, können Sie die Website wie folgt im Browser aufrufen:
- Öffnen Sie Ihren Browser und gehen Sie zu
https://servbay-phpixie-test.local
. - Es sollte nun eine Seite erscheinen, die "Willkommen bei PHPixie auf ServBay" anzeigt und mehrere Beispiel-Links bietet.
Sollte der Zugriff nicht funktionieren, prüfen Sie bitte:
- Läuft ServBay?
- Ist die Konfiguration der Website in ServBay korrekt (Domain, Typ, Document Root etc.)?
- Wird in Ihrer lokalen Hosts-Datei
servbay-phpixie-test.local
richtig aufgelöst (ServBay übernimmt dies in der Regel automatisch)? - Ist die gewünschte PHP-Version in ServBay aktiviert?
Beispiele für Datenbank- und Cache-Integration
PHPixie unterstützt verschiedene Datenbanken und Cachesysteme out-of-the-box. ServBay stellt Pakete für MySQL, PostgreSQL, Redis, Memcached u.v.m. bereit, sodass Sie diese direkt in Ihr PHPixie-Projekt einbinden können.
Wichtiger Hinweis: Bevor Sie mit Datenbankoperationen starten, sorgen Sie dafür, dass der entsprechende Datenbankdienst (z. B. MySQL oder PostgreSQL) in ServBay läuft und eine passende Datenbank für das Projekt existiert (z. B. servbay_phpixie_app
). Sie können die Datenbank über ein Tool wie Sequel Ace, Postico, TablePlus oder per Kommandozeile anlegen. Der voreingestellte Benutzer bei ServBay ist üblicherweise root
, das Passwort lautet password
(prüfen Sie Ihre eigenen Einstellungen!).
Datenbankverbindung konfigurieren
Bearbeiten Sie – abhängig von Ihrem verwendeten Datenbanktyp (MySQL oder PostgreSQL) – die Datei assets/config/database.php
im Projektstamm. Die Standard-Adresse lautet meist 127.0.0.1
.
MySQL-Beispielkonfiguration (assets/config/database.php
):
<?php
return [
'default' => [
'driver' => 'pdo',
// Passen Sie den connection-String entsprechend Ihrer Datenbank und ServBay-Config an
'connection' => 'mysql:host=127.0.0.1;dbname=servbay_phpixie_app',
'user' => 'root', // Standard-Benutzer von ServBay
'password' => 'password', // Standard-Passwort von ServBay (ggf. anpassen)
'options' => []
]
];
2
3
4
5
6
7
8
9
10
11
12
PostgreSQL-Beispielkonfiguration (assets/config/database.php
):
<?php
return [
'default' => [
'driver' => 'pdo',
// Passen Sie den connection-String entsprechend Ihrer Datenbank und ServBay-Config an
'connection' => 'pgsql:host=127.0.0.1;dbname=servbay_phpixie_app',
'user' => 'root', // Standard-Benutzer von ServBay
'password' => 'password', // Standard-Passwort von ServBay (ggf. anpassen)
'options' => []
]
];
2
3
4
5
6
7
8
9
10
11
12
Datenbanktabellen anlegen (Migration nutzen)
PHPixie stellt ein CLI-Tool für Migrationen bereit, um die Datenbankstruktur versionskontrolliert zu verwalten.
- Terminal öffnen: Wechseln Sie ins Stammverzeichnis Ihres PHPixie-Projekts:bash
cd /Applications/ServBay/www/servbay-phpixie-app
1 - Migrationsdatei erstellen: Generieren Sie eine neue Migration (hier für die Tabelle
users
):bashEs wird eine neue Datei im Ordnerphp pixie generate:migration create_users_table
1assets/migrations
angelegt (benannt nach Zeitstempel). - Migration bearbeiten: Öffnen Sie die Datei (z. B.
YYYY_MM_DD_HHMMSS_create_users_table.php
) und passen Sie die Methodenup()
unddown()
an:php<?php use PHPixie\Database\Migration; use PHPixie\Database\Schema\Table; class CreateUsersTable extends Migration { public function up() { // Erstellt die Tabelle "users" mittels Schema-Builder $this->schema->create('users', function(Table $table) { $table->increments('id'); // Auto-Increment-Primärschlüssel $table->string('name'); // Name-Spalte $table->string('email')->unique(); // E-Mail-Spalte, eindeutig $table->timestamps(); // Spalten created_at und updated_at }); } public function down() { // Löscht die Tabelle "users" mittels Schema-Builder $this->schema->drop('users'); } }
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24 - Migration ausführen: Starten Sie die Migration im Terminal, um die Tabelle zu erstellen:bashNach erfolgreicher Ausführung sollte die Tabelle
php pixie migrate
1users
in Ihrerservbay_phpixie_app
-Datenbank erscheinen (überprüfbar z. B. mit einem DB-Tool).
Relationale Datenbanken verwenden (MySQL/PostgreSQL)
Mit den Methoden action_add_user
und action_list_users
im Beispiel-Controller src/App/HTTP/Controller/Home.php
wurde bereits demonstriert, wie Sie mittels PHPixie mit der Datenbank interagieren:
- Benutzer hinzufügen: Besuch von
https://servbay-phpixie-test.local/home/add_user
fügt der Tabelleusers
einen User hinzu. - Benutzer auflisten: Besuch von
https://servbay-phpixie-test.local/home/list_users
listet alle Benutzer als JSON auf.
NoSQL-Datenbanken konfigurieren und nutzen (Memcached/Redis)
ServBay bringt Memcached und Redis inkl. der passenden PHP-Erweiterungen mit. Ihre Konfiguration im PHPixie-Projekt ist unkompliziert:
Memcached-Konfiguration (assets/config/cache.php
):
Bearbeiten oder erstellen Sie assets/config/cache.php
und fügen Sie folgende Zeilen hinzu:
<?php
return [
'default' => [
'driver' => 'memcached',
'servers' => [
[
'host' => '127.0.0.1', // Standard Memcached-Adresse bei ServBay
'port' => 11211, // Standard-Port bei ServBay
'weight' => 100,
],
],
],
];
2
3
4
5
6
7
8
9
10
11
12
13
14
Redis-Konfiguration (assets/config/redis.php
):
Bearbeiten oder erstellen Sie assets/config/redis.php
wie folgt:
<?php
return [
'default' => [
'hostname' => '127.0.0.1', // Standard Redis-Adresse bei ServBay
'port' => 6379, // Standard-Port bei ServBay
'timeout' => 0,
'database' => 0, // Redis-Datenbankindex
],
];
2
3
4
5
6
7
8
9
10
Memcached/Redis verwenden:
Im Beispiel-Controller src/App/HTTP/Controller/Home.php
finden Sie bereits die Methoden action_memcached
und action_redis
, die zeigen, wie Sie den Cache (je nach Konfiguration Memcached oder Redis) nutzen können.
- Memcached-Test: Aufruf von
https://servbay-phpixie-test.local/home/memcached
speichert und liest einen Wert per Memcached. - Redis-Test: Aufruf von
https://servbay-phpixie-test.local/home/redis
speichert und liest einen Wert via Redis.
Vergewissern Sie sich, dass die entsprechenden Dienste (Memcached und Redis) in ServBay laufen.
Zusammenfassung
Mit diesen Schritten haben Sie erfolgreich ein PHPixie-Projekt in Ihrer lokalen macOS-ServBay-Umgebung erstellt, konfiguriert und ausgeführt. Sie haben gelernt, wie Sie mit Composer ein Projekt anlegen, wie Sie mit der Websites-Funktion von ServBay den Webserver konfigurieren, grundlegende Datenbank- und Cache-Einstellungen vornehmen und diese Funktionen verifizieren.
Durch die integrierte Umgebung von ServBay wird das Einrichten eines PHP-Entwicklungs-Setups enorm vereinfacht – so können Sie sich ganz auf die eigentliche Entwicklung konzentrieren. Wir hoffen, diese Anleitung erleichtert Ihnen den Einstieg mit PHPixie bei Ihrem nächsten Webprojekt!