Activer le module Phalcon PHP haute performance dans ServBay
ServBay est un environnement de développement web local puissant conçu pour les développeurs, intégrant diverses stacks technologiques populaires. Pour les développeurs PHP, ServBay inclut en standard le module du framework Phalcon, réputé pour ses performances exceptionnelles, et offre des méthodes d’activation très simples. En tant que framework PHP célèbre pour sa vitesse et son efficacité, la conception modulaire de Phalcon aide les développeurs à bâtir des applications web performantes.
Présentation du framework Phalcon
Phalcon est un framework PHP open source et complet, reconnu pour sa rapidité impressionnante et sa très faible consommation de ressources. Contrairement à la plupart des frameworks écrits en pur PHP, Phalcon est développé en C et fonctionne comme une extension PHP, ce qui lui confère un avantage notable en matière de performance, tout en fournissant un riche ensemble de fonctionnalités.
Principales caractéristiques
- Haute performance : Phalcon fonctionne en tant qu’extension C au plus bas niveau, ce qui le rend plus rapide que les frameworks totalement écrits en PHP, tout en occupant moins de mémoire et de ressource CPU lors du traitement des requêtes.
- Faible surcharge : L’architecture optimisée de Phalcon permet d’utiliser efficacement les ressources, restant performant même en cas de grand nombre de requêtes simultanées.
- Riche en fonctionnalités : Phalcon propose une prise en charge complète de l’architecture MVC (Modèle-Vue-Contrôleur), un ORM puissant, un moteur de template, un système de routage flexible, des fonctions de cache et de gestion de files d’attente, répondant ainsi aux besoins des applications web les plus complexes.
- Facilité d’utilisation : Bien que son cœur soit développé en C, les développeurs créent leurs applications en PHP classique. Le framework propose une API claire et une documentation abondante, rendant sa prise en main et son utilisation accessibles à tous.
- Conception modulaire : Les composants de Phalcon sont hautement découplés et modulaires ; il est ainsi possible d’utiliser ou de remplacer uniquement ceux dont le projet a besoin.
Version du module Phalcon préinstallée dans ServBay
ServBay prend en charge plusieurs versions majeures de PHP, et intègre pour chacune la version correspondante du module Phalcon. Les versions de PHP prises en charge ainsi que les modules préinstallés font l’objet de mises à jour régulières pour fournir les dernières évolutions techniques. Les versions de Phalcon indiquées sont généralement compatibles avec la version de PHP indiquée ; l’information complète est accessible depuis l’interface de gestion des paquets ServBay. Voici quelques correspondances courantes (notez que ServBay peut supporter davantage de versions, voire des plus récentes) :
- PHP 5.6, 7.0, 7.1 : Phalcon 3.4.5
- PHP 7.2, 7.3, 7.4 : Phalcon 4.1.2
- PHP 8.0, 8.1, 8.2, 8.3 : Phalcon 5.7.0
- PHP 8.4, 8.5-dev : Phalcon 5.8.0
Comment activer le module Phalcon
L’activation du module Phalcon dans ServBay est très intuitive. Par défaut, afin de préserver la légèreté de l’environnement, le module Phalcon peut être désactivé. Son activation s’effectue facilement via l’interface graphique de ServBay.
Méthode recommandée : Activation via l’interface graphique de ServBay
Voici la méthode la plus simple et la plus conseillée :
- Lancez l’application ServBay.
- Accédez au menu Langages (Languages) dans la barre latérale gauche.
- Dans la liste des paquets, trouvez et sélectionnez la version de PHP souhaitée pour activer Phalcon, par exemple
PHP 8.3
ouPHP 8.4
. - Cliquez sur le bouton Extensions situé à droite de la version PHP choisie.
- Repérez le module Phalcon dans la liste des extensions qui apparaît.
- Activez le module Phalcon en basculant l’interrupteur sur la gauche de son nom.
- Cliquez sur Enregistrer (Save) en bas de la fenêtre.
- ServBay vous proposera alors de redémarrer les services PHP concernés pour appliquer les modifications. Confirmez le redémarrage.
Une fois le redémarrage terminé, le module Phalcon sera chargé avec la version de PHP sélectionnée.
Méthode avancée : Activation manuelle par modification du fichier de configuration
Les utilisateurs cherchant à automatiser la configuration ou souhaitant effectuer un débogage avancé peuvent opter pour une activation manuelle via le fichier de configuration PHP.
Étape 1 : Localiser le fichier de configuration
Identifiez le répertoire conf.d
correspondant à la version PHP ciblée ; c’est là que résident les fichiers de configuration des extensions PHP. Par exemple, pour activer Phalcon pour PHP 8.3, le chemin du fichier de configuration sera typiquement :
/Applications/ServBay/etc/php/8.3/conf.d/phalcon.ini
Ouvrez ce fichier avec un éditeur de texte.
Étape 2 : Modifier la configuration de Phalcon
Repérez la ligne suivante dans le fichier et enlevez le point-virgule ;
devant extension = phalcon.so
pour décommenter la directive et ainsi activer l’extension :
[Phalcon]
; Uncomment the following line to enable Phalcon
extension = phalcon.so
2
3
Après modification :
[Phalcon]
extension = phalcon.so
2
Étape 3 : Activer PSR (pour PHP 7.2 à PHP 7.4 uniquement)
Remarque : si vous avez activé Phalcon via l’interface graphique de ServBay, ignorez cette étape.
Pour les versions PHP 7.2 à 7.4, le framework Phalcon dépend de l’extension PSR (PHP Standards Recommendations). ServBay l’intègre déjà, mais il faut vous assurer de son activation. Dans phalcon.ini
ou le fichier de configuration PSR (généralement psr.ini
), vérifiez que les lignes suivantes sont bien décommentées :
; Uncomment both Psr & Phalcon to enable Phalcon
[Psr]
extension = psr.so
[Phalcon]
extension = phalcon.so
2
3
4
5
6
Étape 4 : Redémarrer le service PHP
Que vous utilisiez l’interface graphique ou une édition manuelle, toute modification des extensions PHP nécessite de redémarrer le service PHP correspondant pour être effective.
Depuis l’interface principale ou via le menu Paquets (Packages) de ServBay, repérez la version PHP concernée et cliquez sur le bouton de redémarrage associé (généralement une icône de flèches circulaires).
Vérification du chargement effectif du module Phalcon
La méthode la plus utilisée pour vérifier que Phalcon est bien chargé consiste à consulter les informations d’exécution de PHP grâce à phpinfo()
:
- Dans le dossier racine de votre site local configuré via ServBay, créez un fichier nommé
phpinfo.php
. Par exemple, si la racine de votre siteservbay.demo
est/Applications/ServBay/www/servbay.demo
, placez le fichier à cet emplacement. - Ajoutez le contenu suivant à
phpinfo.php
:php<?php phpinfo(); ?>
1
2
3 - Ouvrez votre navigateur et accédez à l’url correspondante, par exemple
https://servbay.demo/phpinfo.php
. - Sur la page générée, recherchez la section "Phalcon". Si les informations de configuration Phalcon et le numéro de version s’y affichent, cela signifie que le module est correctement chargé.
Illustration : Recherche de la section Phalcon sur la page phpinfo
Exemple d’utilisation
Après avoir activé le module Phalcon, vous pouvez commencer à développer des applications web avec ce framework. Voici un exemple simple montrant comment créer une application Phalcon de base fonctionnant dans ServBay.
Supposons que les fichiers de votre projet soient placés dans /Applications/ServBay/www/phalcon-demo
.
Étape 1 : Créer l’arborescence du projet
Créez les dossiers et fichiers recommandés par Phalcon :
/Applications/ServBay/www/phalcon-demo/
├── app/
│ ├── controllers/
│ │ └── IndexController.php
│ └── views/
│ └── index/
│ └── index.phtml
└── public/
└── index.php
2
3
4
5
6
7
8
9
Étape 2 : Créer la configuration du site dans ServBay
Ajoutez un nouveau site dans ServBay, définissez le domaine sur phalcon-demo.servbay.demo
, faites pointer le dossier racine du site vers public
(/Applications/ServBay/www/phalcon-demo/public
) et assurez-vous que la bonne version de PHP (avec Phalcon activé) est sélectionnée.
Étape 3 : Écrire le code d’exemple
Front controller :
public/index.php
Il s’agit du point d’entrée de l’application.php<?php use Phalcon\Autoload\Loader; use Phalcon\Di\FactoryDefault; use Phalcon\Mvc\View; use Phalcon\Mvc\Url; use Phalcon\Mvc\Application; // Définir les constantes pour le chemin racine et le dossier application define('BASE_PATH', dirname(__DIR__)); // Pointe vers /Applications/ServBay/www/phalcon-demo define('APP_PATH', BASE_PATH . '/app'); // Pointe vers /Applications/ServBay/www/phalcon-demo/app // Enregistrer l’autoloader pour charger contrôleurs et modèles $loader = new Loader(); $loader->setDirectories( [ APP_PATH . '/controllers/', APP_PATH . '/models/', // Si des modèles existent, les charger également ] ); $loader->register(); // Créer le conteneur d’injection de dépendances (DI) $container = new FactoryDefault(); // Déclarer le service de rendu de vue auprès du conteneur DI $container->set( 'view', function () { $view = new View(); $view->setViewsDir(APP_PATH . '/views/'); // Définir le dossier des vues return $view; } ); // Déclarer le service URL dans le conteneur DI $container->set( 'url', function () { $url = new Url(); $url->setBaseUri('/'); // Définir l’url de base return $url; } ); // Instancier l’application Phalcon $application = new Application($container); try { // Traiter la requête et envoyer la réponse $response = $application->handle( $_SERVER["REQUEST_URI"] ); $response->send(); } catch (\Exception $e) { // Gérer les exceptions et afficher le message d’erreur echo 'Exception : ', $e->getMessage(); } ?>
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
62Contrôleur :
app/controllers/IndexController.php
Gère les requêtes vers la page d’accueil.php<?php use Phalcon\Mvc\Controller; use Phalcon\Support\Version; // Importer la classe Version pour obtenir la version de Phalcon class IndexController extends Controller { // Action par défaut public function indexAction() { // Récupérer la version actuelle de Phalcon $phalconVersion = new Version(); $versionString = $phalconVersion->get(); // Transmettre la version à la vue $this->view->phalconVersion = $versionString; // La vue app/views/index/index.phtml sera ensuite rendue } }
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20Vue :
app/views/index/index.phtml
Affiche le message de bienvenue et la version de Phalcon.html<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>Hello ServBay with Phalcon</title> <style> body { font-family: sans-serif; margin: 40px; text-align: center; } h1 { color: #333; } p { color: #666; } </style> </head> <body> <h1>Hello ServBay !</h1> <p>Votre application Phalcon fonctionne parfaitement dans ServBay.</p> <p>Version actuelle de Phalcon : **<?= $phalconVersion ?>**</p> </body> </html>
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
Étape 4 : Accéder à l’application
Assurez-vous que Nginx/Caddy et la version PHP sélectionnée sont bien démarrés dans ServBay. Ouvrez votre navigateur sur l’url configurée, par exemple : https://phalcon-demo.servbay.demo
. Vous devriez voir une page affichant "Hello ServBay !" et la version actuelle de Phalcon.
Illustration : application Phalcon fonctionnelle
Remarques importantes
- Vérifiez que la version de PHP sélectionnée correspond bien à la compatibilité de votre projet Phalcon.
- Après toute modification manuelle des fichiers de configuration, n’oubliez pas de redémarrer le service PHP concerné.
- En cas de problème, commencez toujours par examiner les logs d’erreur PHP et ceux du serveur web (Nginx/Caddy), disponibles dans
/Applications/ServBay/var/log/
.
FAQ
Q1 : J’ai activé Phalcon mais il n’apparaît pas dans phpinfo()
; que faire ?
A1 : Vérifiez les points suivants :
- Assurez-vous d’avoir modifié le fichier de configuration PHP correspondant à la bonne version (en cas d’édition manuelle).
- Vérifiez que le point-virgule
;
a bien été retiré devantextension = phalcon.so
. - Avez-vous bien redémarré le bon service PHP ?
- Le site utilise-t-il bien la configuration PHP sur laquelle Phalcon est activé ?
- Contrôlez les logs d’erreurs PHP de ServBay pour d’éventuelles alertes d’échec de chargement de l’extension.
Q2 : Mon application Phalcon affiche une erreur Class 'Phalcon\...' not found
. Pourquoi ?
A2 : Cela signifie le plus souvent que le module Phalcon n’a pas été correctement chargé dans l’environnement PHP en cours d’exécution. Reprenez attentivement les étapes d’activation et de vérification du module, et assurez-vous que le site utilise bien une version PHP avec Phalcon actif (vérifiable via phpinfo()
). Si le module est chargé, vérifiez vos namespaces ou votre configuration d’autoloading dans votre code.
Q3 : Des dépendances supplémentaires sont-elles nécessaires pour Phalcon ?
A3 : Pour PHP 7.2 à 7.4, Phalcon nécessite l’extension PSR. ServBay inclut déjà PSR ; il suffit de s’assurer que extension = psr.so
et extension = phalcon.so
sont activés dans phalcon.ini
. Pour PHP 8.0 et supérieur, Phalcon 5.x gère en interne les standards PSR, rendant cette étape inutile.
Conclusion
ServBay simplifie grandement la mise en place du framework Phalcon dans l’environnement de développement local. Grâce à son interface graphique intuitive ou à une configuration manuelle accessible, il est facile pour les développeurs d’activer le module Phalcon pour n’importe quelle version de PHP. Avec la prise en charge étendue de diverses technologies web par ServBay, il devient très rapide de créer une plateforme locale puissante et complète, optimisant la productivité pour le développement d’applications web modernes sur Phalcon. Profitez des performances de Phalcon avec ServBay pour concevoir des applications web réactives et économiques en ressources.