PHPixie-Projekt auf macOS mit ServBay erstellen und ausführen
PHPixie ist ein leichtgewichtiges und performantes PHP-Framework, das speziell für die schnelle Entwicklung von Webanwendungen konzipiert wurde. Es folgt dem HMVC-Muster (Hierarchical Model-View-Controller) und bietet eine klare Code-Struktur sowie effiziente Verarbeitung. PHPixie ist bekannt für seine Einfachheit, Flexibilität und hohe Performance und erfreut sich daher großer Beliebtheit unter Entwicklern.
Hauptmerkmale und Vorteile von PHPixie
- Leichtgewichtig: Das Kernsystem von PHPixie ist sehr schlank und enthält nur die notwendigen Komponenten, um Anwendungen zu erstellen. Die Initialisierung und Ausführung sind besonders schnell.
- Hohe Performance: Das Framework ist auf Effizienz ausgelegt und kann Anfragen mit hoher Parallelität verarbeiten – ideal für Anwendungen mit hohen Leistungsanforderungen.
- Einfach zu erlernen: PHPixie bietet eine klare und kompakte API sowie ausführliche Dokumentation, sodass sich Entwickler schnell zurechtfinden.
- Flexibilität: Die lose gekoppelten Komponenten ermöglichen es Entwicklern, je nach Projektbedarf frei Drittanbieter-Bibliotheken und Komponenten zu integrieren.
- Aktive Community: Eine engagierte Entwicklergemeinschaft sorgt für zahlreiche Erweiterungen und Support-Ressourcen.
Mit PHPixie können Entwickler effektiv leistungsstarke und qualitativ hochwertige Webanwendungen erstellen – vom kleinen Projekt bis hin zu großen Enterprise-Anwendungen.
Ein PHPixie-Projekt mit ServBay erstellen und ausführen
In dieser Anleitung erfahren Sie, wie Sie mit der lokalen Web-Entwicklungsumgebung von ServBay ein PHPixie-Projekt aufsetzen und starten. Wir nutzen die integrierte PHP-Umgebung von ServBay, den Composer als Paketmanager sowie die „Websites“-Funktion zur Webserver-Konfiguration und zeigen, wie Sie das Projekt lokal aufrufen und Datenbanken/Caching integrieren.
Voraussetzungen
- ServBay ist auf macOS installiert und läuft. ServBay beinhaltet PHP, Composer, verschiedene Datenbanken (MySQL, PostgreSQL, MongoDB, Redis usw.) sowie den Caddy-Webserver.
- Grundlegende Kenntnisse der Kommandozeile.
PHPixie-Projekt erstellen
Empfohlenes Verzeichnis für Websites
ServBay empfiehlt, Ihre lokalen Website-Projekte zentral im Verzeichnis /Applications/ServBay/www
abzulegen, um sie leichter verwalten und die Zugriffsrechte steuern zu können.
- Prüfen, ob Composer installiert ist: ServBay wird bereits mit Composer ausgeliefert, Sie müssen diesen nicht separat installieren. Öffnen Sie das Terminal und geben Sie
composer --version
ein, um dies zu überprüfen. - Projektverzeichnis erstellen: Erstellen Sie im empfohlenen Root-Verzeichnis von ServBay einen neuen Ordner für Ihr PHPixie-Projekt und wechseln Sie hinein: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 Projektordner den Composer-Befehl aus, um das PHPixie-Template zu holen:bashComposer lädt PHPixie und alle Abhängigkeiten in das aktuelle Verzeichnis.
composer create-project phpixie/project .
1
Webserver konfigurieren
Mit der ServBay-Websites-Funktion richten Sie den Caddy-Webserver so ein, dass er Ihr PHPixie-Projekt korrekt anzeigt und verarbeitet.
Öffnen Sie die ServBay-App.
Navigieren Sie zur Liste Websites.
Klicken Sie auf „Neue Website hinzufügen“.
Geben Sie die Konfigurationsdaten ein:
- Name: z. B.
My First PHPixie Dev Site
(interne Bezeichnung in ServBay). - Domain: z. B.
servbay-phpixie-test.local
(die lokale Entwicklungsdomain für den Browseraufruf). - Website-Typ: Wählen Sie
PHP
. - PHP-Version: z. B.
8.3
. - Document Root: Zeigen Sie auf das
web
-Verzeichnis Ihres Projekts:/Applications/ServBay/www/servbay-phpixie-app/web
.
Warum das
/web
-Verzeichnis?Die Einstiegspunkt-Datei eines PHPixie-Projekts befindet sich in
web/index.php
. Aus Sicherheits- und Best-Practice-Gründen sollte das Webserver-Root direkt auf dieses Verzeichnis zeigen und nicht auf das Projekt-Top-Level. So wird verhindert, dass sensible Dateien (z. B. Konfigurationen oder dervendor
-Ordner) über das Web erreichbar sind.- Name: z. B.
Speichern Sie die Konfiguration. ServBay konfiguriert Caddy und aktualisiert bei Bedarf Ihre lokale hosts-Datei, sodass
servbay-phpixie-test.local
auf Ihren lokalen ServBay-Server zeigt.
Detaillierte Informationen finden Sie unter Erste Website hinzufügen.
Beispielcode hinzufügen
Um zu testen, ob das Projekt korrekt läuft und um die Integration von Datenbank und Cache zu zeigen, fügen wir dem Projekt Beispielcode hinzu.
Beispiel-Controller erstellen: Fügen Sie folgenden Code in
src/App/HTTP/Controller/Home.php
ein. Erstellen Sie die Datei bzw. den Ordner ggfs. manuell.php<?php namespace App\HTTP\Controller; use PHPixie\HTTP\Request; use PHPixie\Template; use PHPixie\Database\Query; // Query-Klasse importieren class Home extends \PHPixie\Controller { protected $template; public function __construct(Template $template) { $this->template = $template; } // Standard-Homepage-Action public function action_index(Request $request) { // Rendert das Template 'assets/templates/app/home.php' return $this->template->render('app:home'); } // Memcached-Beispiel-Action public function action_memcached(Request $request) { $cache = $this->components->cache(); $cache->set('key', 'Hello Memcached from ServBay!', 60); // Setzt Daten, Gültigkeit 60 Sekunden $value = $cache->get('key'); // Holt Daten return $this->response()->string($value); // Gibt die String-Antwort zurück } // Redis-Beispiel-Action public function action_redis(Request $request) { $redis = $this->components->redis(); $redis->set('key', 'Hello Redis from ServBay!'); // Setzt Daten $value = $redis->get('key'); // Holt Daten return $this->response()->string($value); // Gibt die String-Antwort zurück } // MySQL/PostgreSQL: User hinzufügen (Beispiel-Action) public function action_add_user(Request $request) { // Holt den Query-Builder über die Datenbank-Komponente $query = $this->components->database()->query(); // Fügt einen neuen User-Datensatz zur 'users'-Tabelle hinzu $query->insert('users')->data([ 'name' => 'ServBay Demo User', 'email' => 'demo-' . uniqid() . '@servbay.test', // Nutzt eine eindeutige E-Mail ])->execute(); // Führt das Insert-Statement aus return $this->response()->string('User added successfully.'); // Gibt eine Erfolgsmeldung zurück } // MySQL/PostgreSQL: User-Liste abfragen (Beispiel-Action) public function action_list_users(Request $request) { // Holt den Query-Builder über die Datenbank-Komponente $query = $this->components->database()->query(); // Fragt alle Datensätze aus der 'users'-Tabelle ab $users = $query->select('*')->from('users')->execute()->fetchAll(); // Führt das Select aus und holt alle Ergebnisse return $this->response()->json($users); // Gibt die User-Liste als JSON zurück } }
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 erstellen: Fügen Sie den folgenden Code in
assets/templates/app/home.php
ein. Die Datei bzw. den Ordner ggf. manuell anlegen.php<!doctype html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Welcome to PHPixie on 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>Welcome to PHPixie on ServBay</h1> <p>This page is being generated dynamically by your PHPixie application running on ServBay.</p> <h2>Beispiel-Funktionslinks:</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>Stellen Sie sicher, dass Sie die entsprechenden Datenbank- und Cache-Konfigurationsschritte ausgeführt 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
Nach der Website-Konfiguration in ServBay und dem Hinzufügen des Beispielcodes können Sie Ihr Projekt nun im Browser aufrufen:
- Öffnen Sie den Browser und gehen Sie zu
https://servbay-phpixie-test.local
. - Sie sollten eine Seite sehen, auf der „Welcome to PHPixie on ServBay“ steht sowie einige Funktionslinks.
Falls die Seite nicht geladen wird, prüfen Sie:
- Läuft ServBay?
- Ist die Website-Konfiguration in ServBay korrekt, insbesondere Domain, Typ und Doc-Root?
- Ist der Eintrag in Ihrer lokalen hosts-Datei korrekt für
servbay-phpixie-test.local
? (ServBay übernimmt dies meist automatisch.) - Ist die gewählte PHP-Version in ServBay aktiviert?
Datenbank- und Cache-Integration (Beispiele)
PHPixie unterstützt verschiedene Datenbanken und Cache-Systeme von Haus aus. ServBay liefert MySQL, PostgreSQL, Redis und Memcached bereits mit, sodass Sie diese einfach in Ihr PHPixie-Projekt integrieren können.
Wichtiger Hinweis: Stellen Sie sicher, dass Sie den passenden Datenbankdienst (etwa MySQL oder PostgreSQL) in ServBay vor Datenbankoperationen gestartet und eine Datenbank für Ihr Projekt angelegt haben (Beispielname: servbay_phpixie_app
). Sie können dazu die von ServBay unterstützten Admin-Tools (Sequel Ace, Postico, TablePlus, usw.) oder das Kommandozeilentool nutzen. Der Standard-Datenbankuser ist im Regelfall root
, das Passwort password
(bitte ggf. an Ihre ServBay-Konfiguration anpassen).
Datenbankverbindung konfigurieren
Je nach Datenbanktyp (MySQL oder PostgreSQL) bearbeiten Sie die Datei assets/config/database.php
im Projekt-Root. Die Standardadresse für Datenbanken unter ServBay ist in der Regel 127.0.0.1
.
MySQL-Beispiel-Konfiguration (assets/config/database.php
):
php
<?php
return [
'default' => [
'driver' => 'pdo',
// Die Connection-String je nach Datenbanktyp und ServBay-Einstellungen anpassen
'connection' => 'mysql:host=127.0.0.1;dbname=servbay_phpixie_app',
'user' => 'root', // Standarduser von ServBay
'password' => 'password', // Standardpasswort von ServBay (ggf. anpassen)
'options' => []
]
];
1
2
3
4
5
6
7
8
9
10
11
12
2
3
4
5
6
7
8
9
10
11
12
PostgreSQL-Beispiel-Konfiguration (assets/config/database.php
):
php
<?php
return [
'default' => [
'driver' => 'pdo',
// Die Connection-String je nach Datenbanktyp und ServBay-Einstellungen anpassen
'connection' => 'pgsql:host=127.0.0.1;dbname=servbay_phpixie_app',
'user' => 'root', // Standarduser von ServBay
'password' => 'password', // Standardpasswort von ServBay (ggf. anpassen)
'options' => []
]
];
1
2
3
4
5
6
7
8
9
10
11
12
2
3
4
5
6
7
8
9
10
11
12
Datenbanktabellen anlegen (Migration)
PHPixie stellt ein CLI-Tool für Datenbank-Migrationen bereit; damit verwalten Sie die Tabellenstruktur versioniert.
- Terminal öffnen: Wechseln Sie in Ihr Projektverzeichnis:bash
cd /Applications/ServBay/www/servbay-phpixie-app
1 - Migration-Datei erzeugen: Generieren Sie eine neue Migration, z. B. für die Table 'users':bashIm Verzeichnis
php pixie generate:migration create_users_table
1assets/migrations
wird eine neue PHP-Datei mit Zeitstempel erstellt. - Migration-Datei bearbeiten: Öffnen Sie die neue Datei (z. B.
YYYY_MM_DD_HHMMSS_create_users_table.php
) und definieren Sie die Struktur der 'users'-Tabelle in den Methodenup()
unddown()
:php<?php use PHPixie\Database\Migration; use PHPixie\Database\Schema\Table; class CreateUsersTable extends Migration { public function up() { // 'users'-Tabelle über Schema-Builder erstellen $this->schema->create('users', function(Table $table) { $table->increments('id'); // Autoincrement-Primary-Key $table->string('name'); // Spalte für den Namen $table->string('email')->unique(); // E-Mail-Spalte, eindeutig $table->timestamps(); // Spalten für created_at/updated_at }); } public function down() { // 'users'-Tabelle über Schema-Builder löschen $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: Führen Sie im Projektverzeichnis die Migration aus:bashBei Erfolg sehen Sie eine Erfolgsmeldung im Terminal. Optional können Sie im Admin-Tool prüfen, ob die Tabelle angelegt wurde.
php pixie migrate
1
Mit relationalen Datenbanken (MySQL/PostgreSQL) arbeiten
Im oben gezeigten Beispiel-Controller (src/App/HTTP/Controller/Home.php
) finden Sie die Methoden action_add_user
und action_list_users
, die die Interaktion mit MySQL/PostgreSQL demonstrieren.
- Benutzer hinzufügen: Rufen Sie
https://servbay-phpixie-test.local/home/add_user
auf, um einen neuen Benutzer in die Tabelle einzufügen. - Benutzer auflisten: Gehen Sie zu
https://servbay-phpixie-test.local/home/list_users
, um alle Benutzer als JSON anzuzeigen.
NoSQL-Datenbanken (Memcached/Redis) konfigurieren und verwenden
ServBay bringt Memcached und Redis sowie die zugehörigen PHP-Erweiterungen mit. Sie müssen nur Ihr PHPixie-Projekt entsprechend konfigurieren.
Memcached-Konfiguration (assets/config/cache.php
):
Bearbeiten oder erstellen Sie die Datei assets/config/cache.php
und fügen Sie Folgendes ein:
php
<?php
return [
'default' => [
'driver' => 'memcached',
'servers' => [
[
'host' => '127.0.0.1', // Standardadresse für Memcached unter ServBay
'port' => 11211, // Standardport für Memcached unter ServBay
'weight' => 100,
],
],
],
];
1
2
3
4
5
6
7
8
9
10
11
12
13
14
2
3
4
5
6
7
8
9
10
11
12
13
14
Redis-Konfiguration (assets/config/redis.php
):
Bearbeiten oder erstellen Sie die Datei assets/config/redis.php
und fügen Sie Folgendes ein:
php
<?php
return [
'default' => [
'hostname' => '127.0.0.1', // Standardadresse für Redis unter ServBay
'port' => 6379, // Standardport für Redis unter ServBay
'timeout' => 0,
'database' => 0, // Redis-Datenbankindex
],
];
1
2
3
4
5
6
7
8
9
10
2
3
4
5
6
7
8
9
10
Memcached/Redis verwenden:
Im Beispiel-Controller src/App/HTTP/Controller/Home.php
sind die Methoden action_memcached
und action_redis
bereits enthalten, die den Zugriff auf die PHPixie-Cache-Komponente demonstrieren (je nach Konfiguration wird Memcached oder Redis verwendet).
- Memcached testen: Besuchen Sie
https://servbay-phpixie-test.local/home/memcached
, um eine Key-Value-Paar in Memcached zu schreiben und wieder auszulesen. - Redis testen: Besuchen Sie
https://servbay-phpixie-test.local/home/redis
, um dasselbe mit Redis zu tun.
Stellen Sie sicher, dass die jeweiligen Dienste in ServBay laufen.
Fazit
Sie haben nun ein PHPixie-Projekt lokal unter macOS mit ServBay erstellt, konfiguriert und gestartet. Sie kennen die Installation mit Composer, die Webserver-Konfiguration über ServBay-Websites, die Integration von Datenbank und Cache sowie die Überprüfung der Funktionen.
Das integrierte Umfeld von ServBay vereinfacht die Einrichtung Ihrer PHP-Entwicklungsumgebung erheblich, sodass Sie sich voll auf die Entwicklung konzentrieren können. Wir hoffen, dass Ihnen diese Anleitung den schnellen Einstieg mit PHPixie ermöglicht – viel Erfolg bei Ihren nächsten Webprojekten!