Le blog des équipes…

  • Accueil
  • Contactez nous

Phing

26 juillet 2010

Présentation

Principe

Phing (Phing Is Not Gnu make) est un outil de déploiement permettant d’automatiser une suite d’opérations. Il est comparable à Make (généralement utilisé pour les développements en C et C++) et Ant (le plus souvent utilisé dans le cadre de développements en Java). Comme ces deux outils, il permet de définir une série de tâches à accomplir et des dépendances entre ces tâches. Sur beaucoup de points, Phing ressemble à Ant sur lequel il est basé directement.

Phing est un outil programmé entièrement en PHP, développé en open source (Gnu Lesser General Public License). Toute la documentation, et le code source sont disponibles sur le site suivant : http://www.phing.info/trac/

Installation

L’installation de Phing est très aisée, que ce soit sur Linux ou Windows : elle se fait en utilisant le package manage  Pear :

pear channel-discover pear.phing.info
pear install phing/phing-beta

Nous avons également installé l’extension pour utilisation native de SVN :

pear install VersionControl_SVN-0.3.3

Dans notre cas, il a aussi été nécessaire d’installer SSH2, la librairie PHP permettant de se connecter en SSH :

pecl install SSH2-0.11.0

Utilisation

Phing est un outil en ligne de commande, qui s’appelle simplement en tapant la commande :

phing

Si l’on veut exécuter une tâche particulière, il suffit de la spécifier de cette façon :

phing <task name>

Fonctionnement

Lorsque phing s’exécute, il va chercher le fichier ‘build.xml’ à l’emplacement du dossier courant, et exécute la tâche spécifiée ou la tâche par défaut du fichier.

Le fichier build.xml est un fichier xml de ce type :

<?xml version=”1.0″?>
<project name=”build” default=”main”>
<property value=”.” />
<property value=”svn” />
<target depends=”update-back”/>
<target>
<svnupdate
svnpath=”${svn_path}”
todir=”${project_root}”
nocache=”true” />
</target>
</project>

Le tag project définit le projet, la propriété default est le nom de la tâche appelée par défaut.

Les tags ‘property’ correspondent à des variables. La propriété name en est le nom, et value la valeur. Il peut s’agir de chaines de caractères, ou de listes de chaines de caractères séparées par une virgule.

Les tags ‘target’ correspondent à des tâches. La propriété name est le nom d’appel de la tâche. La propriété depends est la liste des autres tâches à exécuter avant la tâche courante. A l’intérieur du tag, les autres tags sont la liste des commandes à exécuter par le script. Pour la tâche update-back par exemple, il s’agit d’un svn update.

Il existe un certain nombre de commande exécutables par défaut :

exec : exécute une ligne de commande

foreach : parcours un tableau et pour chaque élément renvoie vers une autre tache avec l’élément en argument

et différentes autres : chmod, chown, delete, move, etc. La documentation complète est disponible ici : http://phing.info/docs/guide/trunk/

Usage sur un projet spécifique PHP/Symfony

Choix de Phing

Phing a été choisi, plutôt que Ant ou Make pour une raison principale : c’est un outil fait en PHP. Cela apporte les gains suivants :

  • Facilité d’utilisation pour une équipe PHP
  • Pas besoin d’installer Java ou d’autres utilitaires sur nos serveurs
  • Possibilité d’écrire du code PHP directement dans une tâche si nécessaire
  • Possibilité d’étendre l’outil en créant de nouvelles tâches en cas de besoin

Tâches disponibles

Les tâches suivantes on été créées dans le cadre de notre projet. Toutes ont été écrites pour être appelées depuis le serveur de backend. Le fichier build.xml est présent sur le serveur de backend, et est dans svn à la racine de la branche de production.

Celles-ci ont été écrites pour être appelées par des tâches principales, elles ne devraient pas être appelées individuellement :

update-back : update la copie locale du backend

rollback-back : revert la copie locale du backend jusqu’à la révision spécifiée

clear-backend-cache : vide le cache symfony du backend

update-filer : update la copie locale du filer

rollback-filer : revert la copie locale du filer jusqu’à la révision spécifiée

clear-frontend-cache : vide le cache symfony des serveurs frontaux

Celles-ci sont les tâches principales, qui peuvent être appelées directement :

main : (tâche par défaut), elle appelle update-back, update-filer et clear-backend-cache. Elle permet d’effectuer une livraison sans risque sur les frontaux – mais dont les effets ne pourront peut-être pas être vus immédiatement car les caches ne sont pas vidés.

cc : elle appelle main et clear-frontend cache. Elle sert à effectuer une livraison avant 9h.

rollback : elle prend en argument une révision, et appelle les tâches rollback-back, rollback-filer et clear-backend-cache. Elle permet de faire un retour arrière sans risque sur les frontaux – mais dont les effets ne pourront peut-être pas être vus immédiatement car les caches ne sont pas vidés.

rollbackcc : elle prend en argument une révision, et appelle les tâches rollback et clear-frontend-cache. Elle sert à faire un retour arrière avant 9h.

Gain par Phing

Phing a été mis en place il y a une semaine. Les gains déjà visibles sont :

  • Facilité des déploiements, moins fastidieux
  • Sécurité des déploiements : plus de problème d’oubli d’un update ou d’un vidage de cache
  • Rapidité des déploiements : 30 secondes d’opération au lieu de plusieurs minutes
  • Maintien de la simplicité des déploiements en cas d’évolution de l’architecture système (par exemple, lors de l’ajout d’un frontal, il suffit d’ajouter son IP dans la liste des frontaux, et le processus de déploiement reste valide)

Evolutions futures

Phing est un outil extrêmement flexible, voici quelques évolutions possibles de son utilisation :

  • Passage de tests automatiques dans la foulée du déploiement pour le valider
  • Automatisation des évolutions de base de données en utilisant les outils symfony appropriés
  • Validation de l’absence de conflit SVN lors du déploiement
Commentaires
Pas de Commentaires »
Catégories
Internet, PHP, hébergement
Flux rss des commentaires Flux rss des commentaires
Trackback Trackback

Zend vient de sortir un nouveau serveur d’application concurrent direct de Java pour les applications critiques.

10 avril 2009

Le zend server inclut en standard PHP, un installateur natif, un accélérateur de code, une solution de supervision et de diagnostic.

Quelques points importants de cette nouvelle version :

  •     Automatisation de l’installation et des upgrades de PHP aussi bien sur linux que sur Windows
  •     Support Oracle, Microsoft SQL Server, MySQL
  •     Suport Redhat/Ubuntu entreprise et Windows serveur
  •     Augmentation significative des performances mais Zend ne dit pas de combien !
  •     Un tarif de 1195 € HT / an

Avec cette sortie Zend se place en face des serveurs d’applications Java pour logiciels critiques Java. PHP renforce donc encore sa position de technologie de choix pour les développements applicatifs complexes et critiques pour l’entreprise.

Pour le communiqué officiel de Zend : http://www.zend.com/fr/company/news/Press/zend-technologies-annonce-zend-server-pour-le-d-ploiement-d-applications-web-php-performantes-fiables-et-s-res

Commentaires
Pas de Commentaires »
Catégories
PHP
Flux rss des commentaires Flux rss des commentaires
Trackback Trackback

PUBLICATION : Installation de mnoGoSearch sur Debian 4.0 ( etch )

20 novembre 2008

Vous trouverez ci-joint une documentation pour une installation de mnoGoSearch sur Debian 4.0.

 Sommaire

I . Pré-requis     3
I . 1 . Configuration des sources apt    3
I . 2 . Vérification de la présence de tous les outils nécessaires    3
I . 3 . Création de la base de donnée pour mnogosearch    4
II . Installation de l’applicatif mnogosearch    5
II . 1 . Installation logicielle    5
II . 2 . Configuration de mnogosearch    11
II . 2 . 1 . Paramètres obligatoires    11
II . 2 . 2 . Exemple de configuration    11
II . 3 . Lancement de l’indexation    31
II . 4 . Automatisation de l’indexation    31
III . Installation de l’extension mnogosearch pour php     32
III . 1 . Récupération des sources de php    32
III . 2 . Récupération des sources de l’extension mnogosearch pour php     32
III . 3 . Modification des options de compilation du package debian php     32
III . 4 . Compilation de l’extension    46
III . 5 . Installation de la nouvelle version php supportant l’extension mnogosearch    46
III . 6 . Copie de l’extension dans le répertoire des modules php     46
III . 7 . Ajout de la directive de chargement automatique du module     46
III . 8 . Redémarrage d’apache     46

mise_en_place_de_mnogosearch_sur_debian_etch.pdf

Creative Commons License

Installation de mnoGoSearch sur Debian 4.0 ( etch ) by BYSOFT est mis à disposition selon les termes de la licence Creative Commons Paternité-Pas d’Utilisation Commerciale-Partage des Conditions Initiales à l’Identique 2.0 France.

Commentaires
Pas de Commentaires »
Catégories
Gestion de Contenu, PHP, Spip
Flux rss des commentaires Flux rss des commentaires
Trackback Trackback

Zend s’associe à Adobe pour accélérer le développement d’applications Internet riches (RIA) utilisant PHP et le framework Open Source Flex.

30 octobre 2008

C’est une nouvelle importante pour nos équipes techniques internes car cela va nous faciliter les développements Flex basés sur une couche métier en PHP.

Les points à retenir de notre point de vue dans cette annonce :

  • Support du format Action Message (Action Message Format AMF) dans le Zend Framework
  • Intégration entre le Zend Studio et le Adobe Flex Builder (codage, débuggage, déploiement)
  • Publications de livres blancs et de “best practices” directement par les éditeurs

Vous trouverez le communiqué de presse complet et en français à http://www.zend.com/fr/company/news/Press/zend-s-associe-adobe-pour-acc-l-rer-le-d-veloppement-d-applications-internet-riches-ria-utilisant-php-et-le-framework-open-source-flex

Commentaires
Pas de Commentaires »
Catégories
Flex, PHP
Flux rss des commentaires Flux rss des commentaires
Trackback Trackback

Mise en ligne du site du Pavillon de la France pour l’Exposition Universelle de Shanghai 2010 !

19 mars 2008

Dévoilé aujourd’hui officiellement  sur la toile, le Pavillon tricolore dispose désormais de son site Internet pour représenter la France à travers le monde. Reposant sur la plateforme CMS Open source SPIP, le site du Pavillon est décliné en trois langues: français, anglais et chinois.

Visitez-le sur www.pavillon-france.fr !

Commentaires
Pas de Commentaires »
Catégories
Création grahique, Gestion de Contenu, Internet, MySQL, PHP, Spip
Flux rss des commentaires Flux rss des commentaires
Trackback Trackback

« Entrées Précédentes

Catégories

  • Accessibilité
  • Ajax
  • Alfresco
  • Case study
  • Création grahique
  • DotNetNuke
  • Drupal
  • E-Commerce
  • eZ Publish
  • Flex
  • Gestion de Contenu
  • hébergement
  • Internet
  • Joomla
  • Magento
  • MySQL
  • OsCommerce
  • PHP
  • Prestashop
  • Référencement
  • Spip
  • Tendances
  • Webmarketing

Archives

  • août 2010
  • juillet 2010
  • juin 2010
  • mai 2010
  • avril 2010
  • février 2010
  • janvier 2010
  • décembre 2009
  • novembre 2009
  • octobre 2009
  • août 2009
  • juillet 2009
  • juin 2009
  • mai 2009
  • avril 2009
  • mars 2009
  • février 2009
  • janvier 2009
  • décembre 2008
  • novembre 2008
  • octobre 2008
  • septembre 2008
  • août 2008
  • juillet 2008
  • juin 2008
  • mai 2008
  • avril 2008
  • mars 2008
  • février 2008
  • décembre 2007
  • novembre 2007
  • octobre 2007
  • septembre 2007
  • août 2007
  • juillet 2007
  • juin 2007
  • mai 2007
  • avril 2007
  • mars 2007
  • février 2007
  • janvier 2007
  • décembre 2006
  • octobre 2006
  • septembre 2006
  • août 2006
  • juillet 2006
  • juin 2006
  • mai 2006
  • avril 2006
  • mars 2006
  • février 2006
  • janvier 2006
  • novembre 2005
  • octobre 2005

Blogroll

  • BoutiqueExpert
  • Bysoft
  • WebEasy
rss Flux rss des commentaires valid xhtml 1.1 design by jide powered by Wordpress get firefox