Bloc-note d'un développeur web
Dans : Développement Web
27 fév 2011Créé par Loïc d’Anterroches, Photon1 est un micro framework PHP distribué sous licence LGPL qui fonctionne au-dessus du serveur web Mongrel2 et du service de messagerie asynchrone ØMQ2.
Voici un petit guide d’installation pour ce framework PHP pas comme les autres.
Je considère que vous disposez sur votre système d’une version de PHP 5.3 installée via macports, à l’aide du port php5.
Photon effectue des contrôles de processus. Pour ce faire, la présence de l’extension PHP PCNTL est obligatoire.
Vérifiez que vous la possédez :
$ php -i | grep pcntl
/opt/local/var/db/php5/pcntl.ini,
pcntl
pcntl support => enabled
Si ce n’est pas le cas, lancez une installation macports :
$ sudo port install php5-pcntl
Mongrel2 requiert SQLite et ZeroMQ. Aussi, s’il n’est pas encore présent dans votre environnement de développement, il sera bon d’installer XDebug.
Vérifiez la présence de ces pré-requis sur votre poste :
$ port installed sqlite3 zmq php5-xdebug
The following ports are currently installed:
php5-xdebug @2.1.0_0 (active)
sqlite3 @3.7.5_0 (active)
zmq @2.0.10_0 (active)
S’il vient à manquer des ports dans la liste ainsi générée, installez-les avec la commande port install :
sudo port install zmq
Dans le cas où vous ne possédez aucune de ces libraires, vous pouvez les installer en une unique commande
sudo port install sqlite3 zmq php5-xdebug php5-pcnt
Contre toute attente, au moment où cet article est rédigé, Mongrel2 n’est pas disponible dans macports. Qu’à cela ne tienne, procédez à son installation depuis les sources :
sudo port install wget
wget http://mongrel2.org/static/downloads/mongrel2-1.5.tar.bz2
tar xjvf mongrel2-1.5.tar.bz2
cd mongrel2-1.5/
sudo make clean macports install
L’option macports du Makefile ne signifie par que Mongrel2 s’installera dans l’environnement de macports, mais qu’il va utiliser les libraires disponibles depuis cet environnement (soit généralement /opt/local/). Le binaire est généré dans le répertoire /usr/local/bin/ :
which m2sh
/usr/local/bin/m2sh
L’installation de Photon est des plus simple. En effet, tout passe par PEAR.
Commencez par déclarer les canaux du projet Photon, de l’extension PHP pour ØMQ puis ceux de PHPUnit et ses dépendances :
sudo pear channel-discover dist.photon-project.com
sudo pear channel-discover pear.zero.mq
sudo pear channel-discover pear.phpunit.de
sudo pear channel-discover pear.symfony-project.com
sudo pear channel-discover components.ez.no
N’ayez aucune inquiétude quant à la présence des dépendances Symfony et eZ Publish. Ces dernières sont requises par PHPUnit qui n’y récupérera qu’un nombre limité de composants (comme le parser YAML de Symfony) et n’ira pas vous installer les 2 solutions dans leur intégralité.
Il ne vous reste plus qu’à lancer l’installation proprement dite de Photon :
sudo pear install --alldeps photon/photon-alpha
sudo sh -c 'echo "extension=http.so" > /opt/local/var/db/php5/http.ini'
sudo sh -c 'echo "extension=zmq.so" > /opt/local/var/db/php5/zmq.ini'
L’installation terminée, Photon est accessible par la commande hnu3. Afin de vous en assurer, lancez simplement sa propre batterie de tests unitaires, comme suit :
hnu selftest
Si vous rencontrez l’erreur Could not open input file: /usr/share/php/photon.php c’est que vous utilisez une version de Photon inférieure ou égale à 0.0.5. Si à l’heure où je rédige ces lignes la version 0.0.6 de Photon n’est pas disponible, exécutez l’ensemble des commandes ci-dessous pour fixer le problème :
cd ~/Downloads/
wget -O hnu.diff http://projects.ceondo.com/p/photon/source/ddiff/9acba649ae355aaf4b365a1f639961336ae6a323/
sudo patch --no-backup-if-mismatch -i hnu.diff `pear config-get bin_dir`/hnu
rm hnu.diff
cd -
Encore une fois, la procédure est des plus simple grâce à PEAR :
$ sudo pear update-channels
Update of Channel "dist.photon-project.com" succeeded
$ sudo pear upgrade photon/photon-alpha
downloading photon-0.0.5.tgz ...
Starting to download photon-0.0.5.tgz (3,937,334 bytes)
...........................................................................done: 3,937,334 bytes
upgrade ok: channel://dist.photon-project.com/photon-0.0.5
Vous pouvez accéder en local aux sources de Photon dans le répertoire /opt/local/lib/php. Avec TextMate par exemple :
mate -a `pear config-get php_dir`/photon*
Autrement, vous pouvez directement accéder aux sources du projet par la forge Indefero du projet.
Merci pour ce tuto !
Néanmoins… pas de chance pour moi: http://projects.ceondo.com/p/photon/issues/625/
Problème réglé, pour une raison qui m’échappe j’avais deux binaires php sur ma machine: http://projects.ceondo.com/p/photon/issues/625/
Dans macports ? Si oui, c’est effectivement surprenant.
Tu vas pouvoir jouer avec Photon maintenant /o/