08/02/2010

Permalink 16:11:31, Catégories: php, Dev web généraliste, 378 mots   French (FR) , julien pauli

DotDeb : source pour paquets PHP vachement à jour

Un ex-collègue de boulot à moi (mais toujours collègue tout court :D), Guillaume Plessis, a monté il y a quelques temps un projet de dépot de paquets PHP qu'il a nommé DotDeb. C'est un dépot de paquets debian concernant principalement PHP5.

L'avantage par rapport aux sources de paquets officielles, c'est que dotdeb est beaucoup plus à jour, et on y trouve beaucoup plus de choses.
Suhosin, xdebug, apc, memcache, ffmpeg ou encore geoip : tout y est sous forme de paquets .deb
Sans parler de PHP5.3.1 (donc toute dernière version à la date de ce billet), ce qui est plus que rare aujourd'hui dans des dépots officiels !

Une seule adresse : http://www.dotdeb.org/

Personnellement, je préfère toujours la solution compilation manuelle aux paquets. Bon c'est normal, je suis un technique qui ne passe pas une journée sans ouvrir la source de PHP, je développe de plus en plus en C dans PHP Core ou Zend Engine, il est pour moi inconcevable de tourner avec des versions provenant de paquets et intégrant des patchs non officiels divers et variés.

La solution des paquets est intéressante par contre dans d'autres situations : simplicité d'installation, gestion des dépendances et surtout déploiement sur plusieurs postes et maintient à jour des distrib !

Pour PHP5.3, utilisez le dépot http://php53.dotdeb.org

Toute l'initiative est libre, n'importe qui peut participer au projet dotdeb si ça lui chante, et trouvera de l'aide sur le site officiel si besoin
Voyez aussi cette vidéo interview du fondateur de dotdeb par PHPTV

PS : pour les adeptes d'Ubuntu - comme moi - dotdeb est prévu pour Debian, vous pouvez donc l'utiliser sous Ubuntu, mais vous aurez des problèmes de dépendances à résoudre.
Soit vous tâtez dpkg et ses amies, et donc vous saurez re-construire les paquets pour votre distrib, soit sinon vous devrez télécharger les paquets à la main. Pour celà, fouillez le site de dotdeb, et notamment les commentaires de certains billets qui donnent une aide précieuse.
Inutile donc de trop harceler l'auteur : dotdeb ne supporte pas officiellement Ubuntu, par contre je suis sûr que Guillaume serait enchanté si quelqu'un pouvait l'aider à monter un support Ubuntu pour dotdeb :-)

Vous devez être identifié pour poster un commentaire.

Permalink 14:09:04, Catégories: php, Zend Framework, 384 mots   French (FR) , julien pauli

LiveDocx : service web de templating de documents

Voila quelques temps j'ai sorti odtphp, un script PHP qui analyse des fichiers odt à la recherche de "tags" et qui les remplace par des données que vous fournissez.
C'est très pratique pour générer des factures ou d'autres documents basés sur un template odt et une source de données type MySQL.
Bon, même si le code n'est pas super bien écrit (il utilise des regex assez complexes, j'aurai préféré jouer avec OpenDocument et DOM mais on a passé le projet en Opensource, n'importe qui peut donc s'y atteler :)), ça fonctionne dans la grande majorité des cas.

Aujourd'hui je me suis penché sur LiveDocx. Il s'agit d'un service Web SOAP, qui est capable de faire la même chose que odtPHP, avec quelques différences :

  • LiveDocX est tourné vers le format propriétaire de Microsoft : le Docx. Comme je n'ai ni Windows ni MSOffice et que j'aime pas les formats fermés, propriétaires, complexes et payants (*voila j'ai fini de troller*), j'ai failli m'arrêter là, mais en cherchant un peu : ça fonctionne avec OpenOffice !
  • LiveDocX est une service Web : La fusion du template se fait en ligne sur le processeur de la machine distante, les temps de réponses sont donc aléatoires (sauf si vous payez le service, ce qui est facultatif) et les données que vous envoyez sont ainsi susceptibles d'être mémorisées, vous n'en savez rien (même si bien sûr on vous affirme le contraire)
  • LiveDocX tourne sur HTTPS, il faut avoir compilé PHP avec le support de SSL (OpenSSL) pour que le gestionnaire de flux PHP utilisé par ext/soap puisse se connecter sur le service
  • Puisqu'il s'agit d'un service Web, inutile de vouloir faire de la fusion de templates hors ligne ou avec une connexion Internet "foireuse"
  • LiveDocx va plus loin que odtPHP dans la mesure où il permet une sortie dans différents formats, dont PDF, BMP etc...

Cerise sur le gateau, il existe un service Zend Framework qui permettra donc d'éviter de lire l'API. Zend_Service_LiveDocx est tout petit et tout simple à utiliser

Concernant la compatibilité OpenOffice, lisez donc ce billet (jusqu'au bout)
J'ai testé, et ça fonctionne très bien (un peu lent, mais je suis sur un compte gratuit) ^^

Vous devez être identifié pour poster un commentaire.

05/02/2010

Permalink 18:04:18, Catégories: Apache, 122 mots   French (FR) , julien pauli

Fin de la branche 1.3 d'Apache

La branche 1.3 d'Apache est officiellement arrêtée (http://www.apache.org/dist/httpd/Announcement1.3.html) , seuls des correctifs de sécurité éventuels viendront se greffer dessus.

L'ASF recommande fortement de migrer vers la branche 2.2 pour ceux chez qui ça n'est pas encore fait (FaceBook par exemple, mais c'est en cours).
On utilise aujourd'hui encore Apache 1.3 pour sa robustesse évidente, mais à ce jour la branche 2.2 a fait ses preuves, elle est tout aussi robuste, et surtout beaucoup plus fléxible notamment grâce à l'extraction des MPM(Multi Process Modules) sous forme de modules.

Le fonctionnement interne d'Apache est aussi fortement changé dans la branche 2.2 par rapport à la 1.3 et les fonctionnalités beaucoup plus nombreuses.

La branche 2.2 date tout de même de 2006 ^^

Vous devez être identifié pour poster un commentaire.

26/01/2010

Permalink 09:18:49, Catégories: Zend Framework, 153 mots   French (FR) , julien pauli

Nouvelle documentation ZendFramework pour la 1.10

Pour la 1.10, prévue sous peu, une nouvelle version de la documentation a été compilée.
Plus claire, elle voit aussi naitre une nouvelle partie : tutoriels ^^

En la traduisant, j'ai exactement pensé à la confection d'un de mes tutoriels sur dvp.com, je me suis donc dit que je devais ajouter cet ensemble de pages de la documentation officielle, traduites par mes soins, à ma page de tutoriaux.
Ces tutoriels expliquent le fonctionnement des objets les plus couramment manipulés dans le ZendFramework, présente leur fonctionnement mais aussi la manière de les étendre.
Comme d'habitude, cette lecture accompagnée de la lecture des tests unitaires, permettra une pleine compréhension des choses

Je présenterai cette doc sous forme de tutoriel dans mes pages, ce sera chose faite dès la traduction totalement terminée (dans la semaine), vous pouvez par contre déja lire la documentation de la version 1.10 en partie traduite

Vous devez être identifié pour poster un commentaire.

20/01/2010

Permalink 15:19:09, Catégories: php, 244 mots   French (FR) , julien pauli

Encapsulation SQL dans du code PHP

Encore un peu de __halt_compiler()

Le but : créer un script qui va monter une base SQL en mémoire pour des tests.
Facile, oui, mais en jouant avec le compilateur Zend cette fois, c'est à dire en écrivant le script SQL au sein même du fichier PHP, sans manger de mémoire PHP pour le stocker dans une variable.

Voila la sauce :

$p = new PDO("sqlite::memory:", "user", "pass"); 
$fp = fopen(__FILE__, 'r'); 
fseek($fp, __COMPILER_HALT_OFFSET__); 
 
while ($line = fgets($fp)) { 
  // on crée le tables et on insère les données écrites en SQL sous le script PHP 
  $p->exec($line); 

fclose($fp); 
 
__halt_compiler(); 
create table table1(champ1 INTEGER, champ2 CHAR); 
insert into table1 (champ1, champ2) VALUES (3, 'foo'); 
// {{ some more SQL code to run here }} 

Sympa cette fonction qui permet d'encapsuler au sein même de ces fichiers PHP du code non PHP en arrêtant le compilateur.
On pourrait imaginer compresser le code pour qu'il prenne moins de place, voire même encapsuler du code malicieux ... whouuu !
En résumé, un seul fichier encapsule du code PHP, SQLite étant compilé avec PHP ça embarque un moteur de base de données, et il n'a même pas besoin du FileSystem pour stocker la base SQLite : c'est stocké en mémoire ( et détruit en fin de script).
Encapsulation extrême !

Vous devez être identifié pour poster un commentaire.

18/01/2010

Permalink 10:25:59, Catégories: Zend Framework, 130 mots   French (FR) , julien pauli

Traduction des messages d'erreur des validateurs ZF

Encore la semaine dernière on m'a demandé en formation s'il était prévu de traduire les messages d'erreur des validateurs de ZendFramework.
Il est vrai qu'il peut être pénible de traduire tous les messages de tous les validateurs en Français (par exemple), il y en a beaucoup (ils sont tous en anglais par défaut)

Plus besoin de chercher la perle rare (le fichier qui contient toutes les traductions en français, si un tel fichier peut exister sur Internet) : c'est devenu officiel : la version 1.10 du ZendFramework proposera tous les messages traduits.

Je suis actuellement sur leur traduction, la 1.10 sortant fin de semaine, ça sera terminé.
Pour ceux qui veulent plus d'informations, voyez les mailing-list @fw-doc ou encore http://framework.zend.com/svn/framework/standard/trunk/resources/

Vous devez être identifié pour poster un commentaire.

12/01/2010

Permalink 18:25:18, Catégories: php, 310 mots   French (FR) , julien pauli

Deboguer PHP5.3 sous Windows

Windows et PHP ... Une longue histoire d'humour ;-)

Rappel des faits : Windows n'est pas fort en fork de processus, il s'en sort mieux avec les threads.
Le MPM d'Apache pour Windows est donc "Winnt", il utilise des threads pour traiter les requêtes parallèles (s'il utilisait des forks, on traiterait beaucoup moins de clients à la seconde et Windows n'en pourrait plus).

Conclusion : PHP doit être compilé avec la ThreadSafety(TS) (--enable-maintainer-zts) pour pouvoir tourner sous Windows avec Apache en module. C'est le cas historique, depuis la nuit des temps.

Ceci mène à des problèmes : les extensions PHP utilisées doivent être threadsafes(TS), y compris les débogueurs (qui ne sont autres que des extensions, un peu particulières certes).
Le problème est que Zend ne supporte plus le mode TS dans ZendDebugger pour PHP5.3 et proposent comme solution de télécharger ZendServer.

Conclusion : pour déboguer sous Windows avec PHP5.3 : soit vous faites une croix sur ZendDebuggeur et téléchargez Xdebug qui supporte la Thread Safety, soit vous utilisez PHP5.3 en mode NTS mais vous ne pourrez l'utiliser en module Apache, vous devrez donc vous tourner vers du FCGI, soit vous téléchargez ZendServer qui (il me semble) embarque un Apache et un PHP NTS en FCGI (tout fermé comme une boite noire ...)

Pour savoir quel PHP vous possédez : php -v ou encore phpinfo(INFO_GENERAL) (chercher "thread safety")
La plupart du temps, vous ne trouverez que des versions TS de PHP pour Windows, les versions NTS se trouvent sur windows.php.net
Après évidemment si vous le compilez vous-même, vous faites ce que vous voulez.

Ma recommandation : passez sous Linux ;-) Vous pourrez compiler vous-mêmes PHP sans grands efforts et le personnaliser au maximum. De plus vous disposerez de toutes les extensions PECL, bref : la liberté (article à venir)

Vous devez être identifié pour poster un commentaire.

11/01/2010

Permalink 20:40:05, Catégories: php, 48 mots   French (FR) , julien pauli

Elephpant a son site :-)

Mon entreprise (AlterWay) vient de sortir un site dédié à l'elephpant PHP.
Vous trouverez des news, des images et vous pourrez en acheter. Je parle au futur car la conception est encore en cours, mais ça ne saurait tarder.

L'URL est plutôt simple : http://www.elephpant.com

Vous devez être identifié pour poster un commentaire.

10/01/2010

Permalink 17:36:39, Catégories: php, 94 mots   French (FR) , julien pauli

Article : PHPUnit avancé : patterns de tests

Nous avons déjà compris le fonctionnement de PHPUnit et le principe des tests en développement PHP, au travers de l'article Développement piloté par les tests avec PHPUnit. Nous allons à présent montrer les fonctionnalités avancées de PHPUnit notamment concernant les patterns de tests, Mock, Stub, Double, Spy ; nous verrons comment les mettre en place au travers d'un exemple simple et concret, et en quoi ces techniques peuvent rapidement devenir addictives. Pour cela, il conviendra de rappeler les grands principes du développement logiciel orienté objet : SOLID.

Accéder à l'article

Vous devez être identifié pour poster un commentaire.

05/01/2010

Permalink 11:49:50, Catégories: Zend Framework, 88 mots   French (FR) , julien pauli

Be-Zend 3ème édition

Pour la troisième année consécutive, la journée be-zend aura bien lieu en 2010 : le 25 Mars.
Pour rappel cette journée est organisée par l'Université de Picardie, se déroule à Saint Quentin et concerne uniquement le ZendFramework

Le thème de l'année 2010 : les webservices
Si vous avez un retour d'expérience ou une conférence susceptible d'être intéressante, n'hésitez pas à la proposer !

Le site ne change pas d'adresse : http://www.be-zend.org ; il sera mis à jour d'ici la date du rendez-vous.

Vous devez être identifié pour poster un commentaire.

04/01/2010

Permalink 16:05:07, Catégories: php, Zend Framework, 209 mots   French (FR) , julien pauli

Traquez les variables de vues ZF non echappées avec bytekit

Sebastien Bergmann a eu la bonne idée d'ajouter une règle "ZendView" à son outil bytekit-cli (que j'ai déja présenté ici)

Cette règle trace tous les appels à "echo $this->{xxx}" dans votre vue Zend_View et vous indique qu'il n'est pas bien d'afficher directement une variable de vue sans l'échapper auparavant.
Bon, de là à monter un système qui echappe automatiquement les variables de vues ( à la Symfony) il n'y a qu'un pas, Zend_View étant pour rappel premièrement facultatif (vous voulez utiliser un autre système de vues/templates ? faites donc) deuxièmement très flexible (Zend_View_Abstract / Zend_View_Interface).

Petit exemple de script de vue (edit.phtml) :

<h1>Edition du membre <?php echo $this->form->getElement('nom')->getValue() ?></h1> 
<?php 
echo $this->form; 
?>

Et le bytekit :

julien@julien:views/scripts/membres$ bytekit --rule=ZendView edit.phtml  
bytekit-cli 1.1.1 by Sebastian Bergmann. 
 
  - Attribute $this->form is not safe-guarded by Zend_View::escape() 
  in /media/www/pe/application/modules/default/views/scripts/membres/edit.phtml:4

Sympa, à mettre dans la trousse à outils avec les autres (PHPUnit, PHP_CodeSniffer, PHPCPD, PHPMD etc...)

Vous devez être identifié pour poster un commentaire.

24/12/2009

Permalink 20:25:45, Catégories: php, Dev web généraliste, 408 mots   French (FR) , julien pauli

2010, à quoi s'attendre de mon coté ?

Une nouvelle année va démarrer bientôt (je suis en congé donc je ne bloguerai plus avant 2010 ;-)), il faut de bonnes résolutions n'est-ce-pas ?

Alors à quoi s'attendre de mon coté ?

Déja, sur le feu (terminé, actuellement en relecture) un article sur PHPUnit avancé et les patterns de tests arrive.

A ce sujet, j'enchaine tout de suite sur une annonce : je suis sur la rédaction d'un nouvel ouvrage en collaboration toujours avec Guillaume Ponçon.
Cet ouvrage aura 2 missions : faciliter la bascule vers le monde de l'objet pour les programmeurs PHP procéduraux encore réticents, et assoir les connaissances des programmeurs objets actuels éventuellement sur d'autres technos (type Java).
Les annexes de notre précédent ouvrage ayant visiblement bien plu, nous souhaitons monter un ouvrage de référence sur les techniques de programmation orientée objets (patterns) avec PHP 5 (5.3 bien sûr).
Voici un aperçu du menu qui peut encore bouger : Historique PHP et historique du modèle objet de PHP, PHP face à C++ et Java, différence approche procédurale approche objets, cultiver une pensée objets, UML et design applicatif, Design Patterns par la pratique, Testabilité logicielle découplage cohésion et principes fondamentaux, PHPUnit en profondeur, conception architecture logicielle et maitrise du changement, support objet intégré à PHP : la SPL de A à Z, déploiement et intégration continue en gestion de projets, Phar.
Date de sortie prévisionnelle : deuxième semestre 2010, éditions Eyrolles.

Concernant les tutoriaux dvp.com, j'ai envie de parler de : (sans garantie comme d'habitude)
- Installer un environnement en compilant PHP/Apache/MySQL sous Linux (UbuntuServer)
- gestion des flux de données en PHP
- Phar, le nouveau format de packaging PHP
- Petit tour des pratiques XML en PHP
- PECL : la mine d'or des extensions PHP
- Installation et configuration de modules "exotiques" d'Apache
RAS côté ZendFramework, en fait je n'ai pas trop de projets de tutoriaux mais je vais en écrire : les idées arrivent un peu au jour le jour en fait ;-)

Voila pour le programme, je rappelle que ce ne sont que des idées, l'ouvrage en revanche passera avant et sortira dans l'année.
Bien sûr les tutoriaux dvp.com prennent du temps (100% bénévole évidemment), donc je ne peux rien garantir (de ce programme très ambitieux) mais je ferai mon possible ^^

Sur ce, bonnes fêtes à tous, joyeux Noël

Vous devez être identifié pour poster un commentaire.

« Page Précédente 1 2 3 ... 27 28 29 Page suivante »

Liste des blogs

Julien Pauli DevPHP blog

Developpement web PHP

Rechercher

<  Février 2010  >
Lun Mar Mer Jeu Ven Sam Dim
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

Syndiquez ce blog XML

Articles :

Commentaires :

Vos questions techniques : forum d'entraide Blogs - Publiez vos articles, tutoriels et cours
et rejoignez-nous dans l'équipe de rédaction du club d'entraide des développeurs francophones
Nous contacter - Hébergement - Participez - Copyright © 2000-2010 www.developpez.com - Legal informations.