Erstellung und Ausführung eines ThinkPHP 8 Projekts
Was ist ThinkPHP?
ThinkPHP ist ein von chinesischen PHP-Entwicklern entwickeltes, Open-Source PHP-Webframework. Es zielt darauf ab, Entwicklern ein einfaches und effektives Toolset zur Verfügung zu stellen, um moderne Webanwendungen zu erstellen. ThinkPHP bietet eine Fülle von Funktionen wie Routing, Sitzungen, Caching, Authentifizierung und mehr, die häufige Webentwicklungsaufgaben vereinfachen.
Hauptmerkmale und Vorteile von ThinkPHP
- Einfachheit und Effizienz: ThinkPHP hat eine einfache und effiziente Syntax, die den Code lesbarer und wartbarer macht.
- Umfangreiche Funktionssammlung: Enthält Funktionen wie Routing, Authentifizierung, Sitzungsverwaltung und Caching, die die Entwicklung erheblich vereinfachen.
- Leistungsstarkes ORM: ThinkPHP bietet leistungsstarke Datenbankoperationen, die den Umgang mit Datenbanken erleichtern.
- Modulares Design: Durch den Composer-Paketmanager können Drittanbieterbibliotheken und Erweiterungen einfach integriert werden.
- Starke Community-Unterstützung: Verfügt über eine große Entwicklergemeinschaft und ein reichhaltiges Ökosystem.
ThinkPHP kann Entwicklern helfen, qualitativ hochwertige Webanwendungen und APIs schnell zu erstellen, geeignet für Projekte jeder Größe, von kleinen Anwendungen bis hin zu großen Enterprise-Systemen.
Erstellung und Ausführung eines ThinkPHP 8 Projekts mit ServBay
In diesem Artikel verwenden wir die von ServBay bereitgestellte PHP-Umgebung, um ein ThinkPHP 8-Projekt zu erstellen und auszuführen. Wir nutzen die 'Host'-Funktion von ServBay, um den Webserver einzurichten und durch einfache Konfigurationen auf das Projekt zuzugreifen.
Hinweis: Wenn Sie ein ehemaliger NGINX- oder Apache-Nutzer sind
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 optimiert und getestet. Entwickler müssen den Caddy-Konfigurationsdateien nicht manuell ändern, sondern können den Server über die 'Host'-Funktion von ServBay verwalten.
Rewrite-Regeln und .htaccess
In NGINX und Apache müssen Entwickler in der Regel eigene Rewrite-Regeln und .htaccess-Dateien schreiben, um URL-Umschreibungen und andere Konfigurationen zu verwalten. ServBay hat Caddy-Regeln ab Werk konfiguriert, sodass Entwickler diese Regeln nicht selbst schreiben müssen, es sei denn, es gibt spezielle Anforderungen.
Erfahren Sie mehr
Weitere Informationen finden Sie unter Rewrite und htaccess, Wie man eine Apache-Website zu ServBay migriert und Wie man eine NGINX-Website zu ServBay migriert.
ThinkPHP-Projekt erstellen
TIP
ServBay empfiehlt Entwicklern, Websites im Verzeichnis /Applications/ServBay/www
zu platzieren, um die Verwaltung zu erleichtern.
Composer installieren
ServBay ist bereits mit Composer ausgestattet, eine separate Installation ist nicht erforderlich.
ThinkPHP-Projekt erstellen
Erstellen Sie ein neues ThinkPHP-Projekt mit Composer:
bashcd /Applications/ServBay/www composer create-project topthink/think servbay-thinkphp-app
1
2In das Projektverzeichnis wechseln
Wechseln Sie in das neu erstellte ThinkPHP-Projektverzeichnis:
bashcd /Applications/ServBay/www/servbay-thinkphp-app
1
Initialisierungskonfiguration
Umgebungsvariablen konfigurieren
Konfigurieren Sie die Datenbankverbindungsinformationen und andere Umgebungsvariablen in der Datei
config/database.php
. Stellen Sie sicher, dass folgende Konfigurationen korrekt eingestellt sind:php'type' => 'mysql', 'hostname' => '127.0.0.1', 'database' => 'servbay_thinkphp_app', 'username' => 'root', 'password' => 'password', 'hostport' => '3306',
1
2
3
4
5
6
Webserver konfigurieren
DANGER
ThinkPHP hat eigene Rewrite-Regeln, daher ist eine benutzerdefinierte Konfiguration erforderlich.
Verwenden Sie die 'Host'-Funktion von ServBay, um über den Webserver auf das ThinkPHP-Projekt zuzugreifen. Fügen Sie in den 'Host'-Einstellungen von ServBay einen neuen Host hinzu:
- Name:
My First ThinkPHP Dev Site
- Domain:
servbay-thinkphp-test.local
Klicken Sie dann oben rechts auf Benutzerdefinierte Optionen
, und geben Sie unten Folgendes ein:
encode zstd gzip
import set-log servbay-thinkphp-test.local
tls internal
@canonicalPath {
file {
try_files {path}/index.php
}
not path */
}
redir @canonicalPath {path}/ 308
root * /Applications/ServBay/www/servbay-thinkphp-app/public
route {
try_files {path} {path}/ /index.php?s={path}&{query}
php_fastcgi unix//Applications/ServBay/tmp/php-cgi-8.3.sock
}
file_server
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
TIP
Falls eine andere PHP-Version benötigt wird, ändern Sie php-cgi-8.3.sock
auf die jeweilige PHP-Version. Stellen Sie außerdem sicher, dass set-log
auf die entsprechende Domain der Website angepasst ist.
Detaillierte Konfigurationsschritte finden Sie unter Erstes Website hinzufügen.
Beispielcode hinzufügen
Fügen Sie in der Datei route/app.php
den folgenden Code hinzu, um "Hello ServBay!" auszugeben:
Route::get('servbay', function () {
return 'Hello ServBay!';
});
2
3
Zugriff auf die Website
Öffnen Sie Ihren Browser und rufen Sie https://servbay-thinkphp-test.local/servbay
auf, Sie sehen die Ausgabe Hello ServBay!
.
NoSQL-Datenbankbeispiele
Memcached-Beispiel
Memcached-Erweiterung installieren
In ServBay ist die Memcached-Erweiterung bereits vorinstalliert, eine zusätzliche Installation ist nicht erforderlich.
Memcached konfigurieren
Konfigurieren Sie die Memcached-Verbindungsinformationen in der Datei
config/cache.php
:php'type' => 'memcached', 'host' => '127.0.0.1',
1
2Verwendung von Memcached
Verwenden Sie den Cache in einem Controller:
phpuse think\facade\Cache; Route::get('/memcached', function () { Cache::set('key', 'value', 600); return Cache::get('key'); });
1
2
3
4
5
6
Redis-Beispiel
Redis-Erweiterung installieren
In ServBay ist die Redis-Erweiterung bereits vorinstalliert, eine zusätzliche Installation ist nicht erforderlich.
Redis konfigurieren
Konfigurieren Sie die Redis-Verbindungsinformationen in der Datei
config/cache.php
:php'type' => 'redis', 'host' => '127.0.0.1', 'port' => 6379, 'password' => '',
1
2
3
4Verwendung von Redis
Verwenden Sie den Cache in einem Controller:
phpuse think\facade\Cache; Route::get('/redis', function () { Cache::set('key', 'value'); return Cache::get('key'); });
1
2
3
4
5
6
Relationale Datenbankbeispiele
Erstellung der Datenbankstruktur und Migration
Installation des Datenbank-Migrationstools
Um das Migrationstool von ThinkPHP zu verwenden, müssen Sie es zuerst installieren:
bashcomposer require topthink/think-migration
1Migration-Datei erstellen
Erstellen Sie eine Migrationsdatei mit dem Befehlszeilentool von ThinkPHP:
bashphp think migrate:create CreateUserTable
1Migration-Datei bearbeiten
Finden Sie die neu erstellte Migrationsdatei im Verzeichnis
database/migrations
und bearbeiten Sie diese, um die Datenbankstruktur zu definieren:phppublic function up() { Schema::create('users', function (Blueprint $table) { $table->increments('id'); $table->string('name'); $table->string('email')->unique(); $table->timestamps(); }); }
1
2
3
4
5
6
7
8
9Migration ausführen
Führen Sie die Migration mit dem Befehlszeilentool von ThinkPHP durch, um die Datenbanktabellen zu erstellen:
bashphp think migrate:run
1
MySQL-Beispiel
MySQL konfigurieren
Konfigurieren Sie die MySQL-Verbindungsinformationen in der Datei
config/database.php
:php'type' => 'mysql', 'hostname' => '127.0.0.1', 'database' => 'servbay_thinkphp_app', 'username' => 'root', 'password' => 'password', 'hostport' => '3306',
1
2
3
4
5
6Nutzerdaten hinzufügen
Fügen Sie Nutzerdaten in einem Controller hinzu:
phpuse think\Db; Route::get('/mysql-add', function () { Db::table('users')->insert([ 'name' => 'ServBay', 'email' => '[email protected]', ]); return 'User added'; });
1
2
3
4
5
6
7
8
9Verwendung von MySQL
Rufen Sie die Datenbank in einem Controller auf:
phpuse think\Db; Route::get('/mysql', function () { $users = Db::table('users')->select(); return json($users); });
1
2
3
4
5
6
PostgreSQL-Beispiel
PostgreSQL konfigurieren
Konfigurieren Sie die PostgreSQL-Verbindungsinformationen in der Datei
config/database.php
:php'type' => 'pgsql', 'hostname' => '127.0.0.1', 'database' => 'servbay_thinkphp_app', 'username' => 'root', 'password' => 'password', 'hostport' => '5432',
1
2
3
4
5
6Nutzerdaten hinzufügen
Fügen Sie Nutzerdaten in einem Controller hinzu:
phpuse think\Db; Route::get('/pgsql-add', function () { Db::table('users')->insert([ 'name' => 'ServBay', 'email' => '[email protected]', ]); return 'User added'; });
1
2
3
4
5
6
7
8
9Verwendung von PostgreSQL
Rufen Sie die Datenbank in einem Controller auf:
phpuse think\Db; Route::get('/pgsql', function () { $users = Db::table('users')->select(); return json($users); });
1
2
3
4
5
6
Durch die oben genannten Schritte haben Sie erfolgreich ein ThinkPHP 8-Projekt erstellt und ausgeführt, mit den von ServBay bereitgestellten Funktionen verwaltet und auf das Projekt zugegriffen sowie mehrere Datenbanken verbunden und Daten abgerufen.