Créer et exécuter un projet PHPixie
Qu'est-ce que PHPixie ?
PHPixie est un framework PHP léger conçu pour le développement rapide d'applications Web performantes. Il adopte le modèle de conception HMVC (Hierarchical Model-View-Controller), offrant une structure de code simple et une performance efficace. PHPixie est renommé pour sa simplicité, sa flexibilité et sa haute performance, en faisant le choix préféré de nombreux développeurs.
Principales caractéristiques et avantages de PHPixie
- Léger : Le système central de PHPixie est très compact, ne contenant que les composants nécessaires, ce qui assure une vitesse de chargement très rapide.
- Haute performance : PHPixie est connu pour son efficacité et sa rapidité, capable de traiter des requêtes à haute concurrence.
- Facile à apprendre : Il propose une API simple et facile à utiliser ainsi qu'une documentation riche, permettant aux développeurs de s'y familiariser rapidement.
- Flexibilité : Les développeurs peuvent choisir et utiliser librement des bibliothèques et des plugins tiers, facilitant l'extension et la personnalisation des fonctionnalités.
- Soutien communautaire solide : PHPixie possède une communauté de développeurs active et une riche variété d'extensions tierces.
PHPixie aide les développeurs à créer rapidement des applications Web performantes et de haute qualité, adaptées à des projets de toutes tailles.
Créer et exécuter un projet PHPixie avec ServBay
Dans cet article, nous allons utiliser l'environnement PHP fourni par ServBay pour créer et exécuter un projet PHPixie. Nous utiliserons la fonction 'Hôte' de ServBay pour configurer le serveur Web et accéder au projet via une configuration simple.
Attention : Si vous avez déjà utilisé NGINX ou Apache
Par défaut, ServBay utilise Caddy comme serveur Web. Pour les utilisateurs migrés de NGINX et Apache vers ServBay, certaines modifications clés doivent être notées :
Configuration de Caddy
ServBay intègre Caddy et propose par défaut une configuration optimisée et déboguée. Les développeurs peuvent gérer les sites via la fonction 'Hôte' de ServBay sans avoir besoin de modifier manuellement les fichiers de configuration de Caddy.
Règles de réécriture et .htaccess
Sous NGINX et Apache, les développeurs devaient généralement écrire eux-mêmes les règles de réécriture et les fichiers .htaccess pour gérer la réécriture des URL et d'autres configurations. Cependant, avec ServBay, ces règles de Caddy sont déjà configurées. À moins d'avoir des besoins particuliers, les développeurs n'ont pas besoin d'écrire ces règles eux-mêmes.
En savoir plus
Pour plus d'informations, consultez Réécriture et htaccess, Comment migrer un site Apache vers ServBay, Comment migrer un site NGINX vers ServBay.
Créer un projet PHPixie
TIP
ServBay recommande aux développeurs de placer leurs sites dans le répertoire /Applications/ServBay/www
pour une gestion simplifiée.
Installer Composer
ServBay est livré avec Composer déjà installé, aucun besoin de l'installer séparément.
Créer un projet PHPixie
Utilisez Composer pour créer un nouveau projet PHPixie :
bashcd /Applications/ServBay/www mkdir servbay-phpixie-app cd servbay-phpixie-app composer create-project phpixie/project .
1
2
3
4Entrer dans le répertoire du projet
Accédez au répertoire du projet PHPixie nouvellement créé :
bashcd /Applications/ServBay/www/servbay-phpixie-app
1
Initialiser la configuration
Configurer la connexion à la base de données
Configurez les informations de connexion de la base de données dans le fichier
assets/config/database.php
:phpreturn [ 'default' => [ 'driver' => 'pdo', 'connection' => 'mysql:host=127.0.0.1;dbname=servbay_phpixie_app', 'user' => 'root', 'password' => 'password', 'options' => [] ] ];
1
2
3
4
5
6
7
8
9
Configurer le serveur Web
Utilisez la fonction 'Hôte' de ServBay pour accéder au projet PHPixie via le serveur Web. Dans les paramètres 'Hôte' de ServBay, ajoutez un nouvel hôte :
- Nom :
My First PHPixie Dev Site
- Domaine :
servbay-phpixie-test.local
- Type de site Web :
PHP
- Version PHP : choisissez
8.3
- Répertoire racine du site Web :
/Applications/ServBay/www/servbay-phpixie-app/web
Pour des étapes de configuration détaillées, consultez Ajouter un premier site Web.
Ajouter du code exemple
Ajoutez le code suivant dans le fichier src/App/HTTP/Controller/Home.php
:
namespace App\HTTP\Controller;
use PHPixie\HTTP\Request;
use PHPixie\Template;
class Home extends \PHPixie\Controller
{
protected $template;
public function __construct(Template $template)
{
$this->template = $template;
}
public function action_index(Request $request)
{
return $this->template->render('app:home');
}
public function action_memcached(Request $request)
{
$cache = $this->components->cache();
$cache->set('key', 'Hello Memcached!', 60);
$value = $cache->get('key');
return $this->response()->string($value);
}
public function action_redis(Request $request)
{
$redis = $this->components->redis();
$redis->set('key', 'Hello Redis!');
$value = $redis->get('key');
return $this->response()->string($value);
}
public function action_mysql_add(Request $request)
{
$query = $this->components->database()->query();
$query->insert('users')->data([
'name' => 'ServBay',
'email' => '[email protected]',
])->execute();
return $this->response()->string('User added');
}
public function action_mysql(Request $request)
{
$query = $this->components->database()->query();
$users = $query->select('*')->from('users')->execute()->fetchAll();
return $this->response()->json($users);
}
}
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
Ajoutez le code suivant dans le fichier assets/templates/app/home.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</title>
</head>
<body>
<h1>Welcome to PHPixie</h1>
<p>The page you are looking at is being generated dynamically by PHPixie.</p>
</body>
</html>
2
3
4
5
6
7
8
9
10
11
12
Accéder au site Web
Ouvrez un navigateur et accédez à l'URL suivante :
https://servbay-phpixie-test.local
: Vous verrez la page affichantWelcome to PHPixie
.
Exemple de base de données NoSQL
Exemple Memcached
Installer l'extension Memcached
Dans ServBay, l'extension Memcached est déjà préinstallée, aucune installation supplémentaire n'est nécessaire.
Configurer Memcached
Configurez les informations de connexion Memcached dans le fichier
assets/config/cache.php
:phpreturn [ 'default' => [ 'driver' => 'memcached', 'servers' => [ [ 'host' => '127.0.0.1', 'port' => 11211, 'weight' => 100, ], ], ], ];
1
2
3
4
5
6
7
8
9
10
11
12Utiliser Memcached
Utilisez le cache dans le contrôleur :
phppublic function action_memcached(Request $request) { $cache = $this->components->cache(); $cache->set('key', 'Hello Memcached!', 60); $value = $cache->get('key'); return $this->response()->string($value); }
1
2
3
4
5
6
7
Exemple Redis
Installer l'extension Redis
Dans ServBay, l'extension Redis est déjà préinstallée, aucune installation supplémentaire n'est nécessaire.
Configurer Redis
Configurez les informations de connexion Redis dans le fichier
assets/config/redis.php
:phpreturn [ 'default' => [ 'hostname' => '127.0.0.1', 'port' => 6379, 'timeout' => 0, 'database' => 0, ], ];
1
2
3
4
5
6
7
8Utiliser Redis
Utilisez le cache dans le contrôleur :
phppublic function action_redis(Request $request) { $redis = $this->components->redis(); $redis->set('key', 'Hello Redis!'); $value = $redis->get('key'); return $this->response()->string($value); }
1
2
3
4
5
6
7
Exemple de base de données relationnelle
Créer la structure de la base de données et fichiers de migration
Créer un fichier de migration
Utilisez l'outil CLI de PHPixie pour créer un fichier de migration :
bashphp pixie generate:migration create_users_table
1Éditer le fichier de migration
Trouvez le fichier de migration nouvellement créé dans le répertoire
assets/migrations
et éditez-le pour définir la structure de la table de la base de données :phppublic function up() { $this->schema->create('users', function($table) { $table->increments('id'); $table->string('name'); $table->string('email')->unique(); $table->timestamps(); }); } public function down() { $this->schema->drop('users'); }
1
2
3
4
5
6
7
8
9
10
11
12
13
14Exécuter la migration
Utilisez l'outil CLI de PHPixie pour exécuter la migration et créer la table de la base de données :
bashphp pixie migrate
1
Exemple MySQL
Configurer MySQL
Configurez les informations de connexion MySQL dans le fichier
assets/config/database.php
:phpreturn [ 'default' => [ 'driver' => 'pdo', 'connection' => 'mysql:host=127.0.0.1;dbname=servbay_phpixie_app', 'user' => 'root', 'password' => 'password', 'options' => [] ] ];
1
2
3
4
5
6
7
8
9Ajouter des données utilisateur
Ajoutez des données utilisateur dans le contrôleur :
phppublic function action_mysql_add(Request $request) { $query = $this->components->database()->query(); $query->insert('users')->data([ 'name' => 'ServBay', 'email' => '[email protected]', ])->execute(); return $this->response()->string('User added'); }
1
2
3
4
5
6
7
8
9Utiliser MySQL
Interagissez avec la base de données dans le contrôleur :
phppublic function action_mysql(Request $request) { $query = $this->components->database()->query(); $users = $query->select('*')->from('users')->execute()->fetchAll(); return $this->response()->json($users); }
1
2
3
4
5
6
Exemple PostgreSQL
Configurer PostgreSQL
Configurez les informations de connexion PostgreSQL dans le fichier
assets/config/database.php
:phpreturn [ 'default' => [ 'driver' => 'pdo', 'connection' => 'pgsql:host=127.0.0.1;dbname=servbay_phpixie_app', 'user' => 'root', 'password' => 'password', 'options' => [] ] ];
1
2
3
4
5
6
7
8
9Ajouter des données utilisateur
Ajoutez des données utilisateur dans le contrôleur :
phppublic function action_pgsql_add(Request $request) { $query = $this->components->database()->query(); $query->insert('users')->data([ 'name' => 'ServBay', 'email' => '[email protected]', ])->execute(); return $this->response()->string('User added'); }
1
2
3
4
5
6
7
8
9Utiliser PostgreSQL
Interagissez avec la base de données dans le contrôleur :
phppublic function action_pgsql(Request $request) { $query = $this->components->database()->query(); $users = $query->select('*')->from('users')->execute()->fetchAll(); return $this->response()->json($users); }
1
2
3
4
5
6
Grâce à ces étapes, vous avez réussi à créer et exécuter un projet PHPixie en utilisant les fonctionnalités de ServBay pour gérer et accéder à votre projet, tout en connectant différentes bases de données et en appelant des données. Nous espérons que cet article vous aidera à vous familiariser rapidement avec PHPixie et à l'appliquer dans vos projets.