Création et exécution d'un projet ThinkPHP 8
Qu'est-ce que ThinkPHP ?
ThinkPHP est un framework PHP open source créé par des développeurs PHP chinois. Il vise à fournir aux développeurs un ensemble d'outils simplifiés et efficaces pour construire des applications Web modernes. ThinkPHP offre une richesse de fonctionnalités, telles que le routage, les sessions, le cache, l'authentification, etc., simplifiant ainsi les tâches courantes de développement Web.
Principales caractéristiques et avantages de ThinkPHP
- Simplicité et efficacité : La syntaxe de ThinkPHP est simple et efficace, rendant le code plus lisible et maintenable.
- Richesse fonctionnelle : Inclut le routage, l'authentification, la gestion des sessions et le cache, simplifiant considérablement le travail de développement.
- ORM puissant : ThinkPHP propose des fonctionnalités puissantes de manipulation de base de données, facilitant les opérations sur celle-ci.
- Conception modulaire : Intégrez facilement des bibliothèques et extensions tierces via le gestionnaire de paquets Composer.
- Support communautaire fort : Bénéficiez d'une grande communauté de développeurs et d'un écosystème riche.
ThinkPHP peut aider les développeurs à construire rapidement des applications Web et des API de haute qualité, adaptées à des projets de toutes tailles, des petites applications aux grands systèmes d'entreprise.
Créer et exécuter un projet ThinkPHP 8 avec ServBay
Dans cet article, nous utiliserons l'environnement PHP fourni par ServBay pour créer et exécuter un projet ThinkPHP 8. Nous exploiterons la fonctionnalité 'Host' de ServBay pour configurer le serveur Web et accéder au projet via une configuration simple.
Attention : Si vous êtes un utilisateur de NGINX ou Apache
Par défaut, ServBay utilise Caddy comme serveur Web. Pour les utilisateurs qui migrent de NGINX ou Apache vers ServBay, quelques points clés sont à remarquer :
Configuration de Caddy
ServBay intègre déjà Caddy, avec une configuration par défaut optimisée et déboguée. Les développeurs n'ont besoin que de gérer le site via la fonctionnalité 'Host' de ServBay sans avoir à modifier manuellement les fichiers de configuration de Caddy.
Règles de réécriture et .htaccess
Sous NGINX et Apache, les développeurs créent habituellement leurs propres règles de réécriture et fichiers .htaccess pour gérer le réécriture d'URL et autres configurations. Cependant, ServBay configure déjà les règles de Caddy, donc, sauf cas particuliers, il n'est pas nécessaire de créer ces règles soi-même.
Pour en savoir plus
Pour plus d'informations, consultez Rewrite-et-htaccess, Comment migrer un site Apache vers ServBay et Comment migrer un site NGINX vers ServBay.
Création du projet ThinkPHP
TIP
ServBay recommande aux développeurs de placer le site dans le répertoire /Applications/ServBay/www
pour faciliter la gestion.
Installer Composer
ServBay est livré avec Composer déjà pré-installé, inutile donc de l'installer séparément.
Créer un projet ThinkPHP
Utiliser Composer pour créer un nouveau projet ThinkPHP :
bashcd /Applications/ServBay/www composer create-project topthink/think servbay-thinkphp-app
1
2Aller dans le répertoire du projet
Se rendre dans le répertoire du projet ThinkPHP nouvellement créé :
bashcd /Applications/ServBay/www/servbay-thinkphp-app
1
Configuration initiale
Configurer les variables d'environnement
Configurer les informations de connexion à la base de données et les autres variables d'environnement dans le fichier
config/database.php
. Assurez-vous que la configuration suivante est correcte :php'type' => 'mysql', 'hostname' => '127.0.0.1', 'database' => 'servbay_thinkphp_app', 'username' => 'root', 'password' => 'password', 'hostport' => '3306',
1
2
3
4
5
6
Configuration du serveur Web
DANGER
Les règles de réécriture de ThinkPHP sont différentes des règles normales, une personnalisation est donc nécessaire.
Utiliser la fonctionnalité 'Host' de ServBay pour accéder au projet ThinkPHP via le serveur Web. Dans les paramètres de 'Host' de ServBay, ajouter un nouvel hôte :
- Nom :
My First ThinkPHP Dev Site
- Domaine :
servbay-thinkphp-test.local
Ensuite, cliquez sur Configuration personnalisée
en haut à droite et entrez le contenu suivant
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
Si vous avez besoin de différentes versions de PHP, modifiez php-cgi-8.3.sock
avec la version de PHP correspondante. Assurez-vous également de modifier set-log
avec le domaine correspondant au site.
Pour des étapes plus détaillées, consultez Ajouter votre premier site web.
Ajouter un exemple de code
Ajouter le code suivant dans le fichier route/app.php
pour afficher "Hello ServBay!":
Route::get('servbay', function () {
return 'Hello ServBay!';
});
2
3
Accéder au site web
Ouvrez votre navigateur et accédez à https://servbay-thinkphp-test.local/servbay
, vous verrez la page afficher Hello ServBay!
.
Exemple de base de données NoSQL
Exemple de Memcached
Installer l'extension Memcached
Dans ServBay, l'extension Memcached est déjà pré-installée, inutile de l'installer.
Configurer Memcached
Configurer les informations de connexion Memcached dans le fichier
config/cache.php
:php'type' => 'memcached', 'host' => '127.0.0.1',
1
2Utiliser Memcached
Utiliser le cache dans le contrôleur :
phpuse think\facade\Cache; Route::get('/memcached', function () { Cache::set('key', 'value', 600); return Cache::get('key'); });
1
2
3
4
5
6
Exemple de Redis
Installer l'extension Redis
Dans ServBay, l'extension Redis est déjà pré-installée, inutile de l'installer.
Configurer Redis
Configurer les informations de connexion Redis dans le fichier
config/cache.php
:php'type' => 'redis', 'host' => '127.0.0.1', 'port' => 6379, 'password' => '',
1
2
3
4Utiliser Redis
Utiliser le cache dans le contrôleur :
phpuse think\facade\Cache; Route::get('/redis', function () { Cache::set('key', 'value'); return Cache::get('key'); });
1
2
3
4
5
6
Exemple de base de données relationnelle
Créer la structure de la base de données et fichier de migration
Installer l'outil de migration de base de données
Avant d'utiliser l'outil de migration de base de données de ThinkPHP, il faut l'installer :
bashcomposer require topthink/think-migration
1Créer un fichier de migration
Utiliser l'outil en ligne de commande de ThinkPHP pour créer un fichier de migration :
bashphp think migrate:create CreateUserTable
1Éditer le fichier de migration
Trouver le fichier de migration nouvellement créé dans le répertoire
database/migrations
et l'éditer pour définir la structure de la table :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
9Exécuter la migration
Utiliser l'outil en ligne de commande de ThinkPHP pour exécuter la migration et créer la table de la base de données :
bashphp think migrate:run
1
Exemple de MySQL
Configurer MySQL
Configurer les informations de connexion MySQL dans le fichier
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
6Enregistrer des données utilisateur
Enregistrer des données utilisateur dans le contrôleur :
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
9Utiliser MySQL
Appeler la base de données dans le contrôleur :
phpuse think\Db; Route::get('/mysql', function () { $users = Db::table('users')->select(); return json($users); });
1
2
3
4
5
6
Exemple de PostgreSQL
Configurer PostgreSQL
Configurer les informations de connexion PostgreSQL dans le fichier
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
6Enregistrer des données utilisateur
Enregistrer des données utilisateur dans le contrôleur :
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
9Utiliser PostgreSQL
Appeler la base de données dans le contrôleur :
phpuse think\Db; Route::get('/pgsql', function () { $users = Db::table('users')->select(); return json($users); });
1
2
3
4
5
6
En suivant ces étapes, vous avez réussi à créer et à exécuter un projet ThinkPHP 8, en utilisant les fonctionnalités fournies par ServBay pour gérer et accéder à votre projet, tout en connectant plusieurs bases de données et en appelant des données.