Lettres


[Actu PHP] Lettre N.59 Dimanche 09 Février 2003
************************************************************
L'actualité PHP et MySQL
avec Nexen.net
http://www.nexen.net/
Dimanche 09 Fevrier 2003
************************************************************

Attention :
Cette lettre hebdomadaire est distribuée aux personnes qui se
sont inscrites sur le site nexen.net, comme membre et comme
destinataire de cette lettre. Les instructions de modifica-
tions sont disponibles en bas de ce mail.

Des commentaires? des questions? des informations à suggérer?
Contactez l'éditeur de la lettre avec l'adresse indiquée en
bas de ce mail.

Edito
===
Encore une semaine riche en information et en nouveautés PHP
et MySQL. En premier lieu, on voit apparaitre finalement la version
finale de MySQL 4.1, qui devrait se produire durant ce mois de Février.
Restez donc à l'écoute si vous voulez être prévenu dès que l'enfant
terrible des bases de données sortira.

En même temps que l'on commence à parler de MySQL 5.0 (prévu
pour la fin de l'année), on voit aussi apparaître plusieurs tutoriels
avancés sur PHP 5. L'intégration du Zend Engine 2 est confirmée.
Les concepts les plus avancés des technologies objets se présentent
toutes à la porte de PHP pour y être intégrées.

Gageons que l'année se terminera aussi fort qu'elle commence!

Damien Seguy

Site de la semaine
=============
compte
dès la prochaine publication.
Damien Seguy.
http://dev.nexen.net/docs/php/

Au sommaire
==========
09/02/2003
* [1] Smarty 2.4.1
* [2] Compter les hits avec PHP
08/02/2003
* [3] Les cahiers du programmeurs
* [4] PHP Le grand test...
* [5] Analyser un fichier RDF ou RSS
* [6] Les classes abstraites en PHP
07/02/2003
* [7] Expressions régulières
* [8] Interview de Dilip Thomas, de Wrox.
06/02/2003
* [9] Conseils de validation des variables de formulaire.
* [10] Comparaison MySQL et PostGreSQL
* [11] Couche d'abstraction de base de données : DBX
* [12] MySQL 4.0.10
05/02/2003
* [13] Interfacer MySQL avec PHP en mode Objet
* [14] Ecrire du code PHP indestructible
* [15] Librairie d'Interface Web
* [16] Introduction aux FULL index de MYSQL
* [17] ASP2PHP
04/02/2003
* [18] SQLYog 3.0.1
* [19] Alerte sécurité sur PHP Nuke
* [20] MnoGoSearch 3.2.8 publié
* [21] Applications PDF et MySQL
03/02/2003
* [22] L'actualité de la Poire
* [23] JPgraph 1.11
* [24] Résumé de la semaine de développement de PHP


Toute l'actualité en détails :
============================
  • ] Smarty 2.4.1


  • [2] Compter les hits avec PHPHaut ]
    ------------------------------------------------------------
    Tim Perdue rédige un article pour DevArticle, ou il explique
    comment réaliser un compteur de hit en PHP. Le code couvre
    la table de la base de données et le code PHP à insérer
    dans chaque page, pour pouvoir suivre en temps réel les
    statistiques de fréquentation de votre site.
    Vous pouvez aussi exploiter la puissance du logiciel de
    Sebastian Bergmann, PHPOpenTracker, qui a préparé et
    optimiser la gestion du flot des hits.
    ------------------------------------------------------------
    http://dev.nexen.net/news/gen.php3/2003/02/09/1482,0,1,0,0.php3


    [3] Les cahiers du programmeursHaut ]
    ------------------------------------------------------------
    Eyrolles a lancé récemment (?) une nouvelle collection
    intitulée les cahiers du programmeur.
    Cette collection à cela d'intéressant qu'elle présente des
    projets dans leur ensemble.
    Dans le livre "PostgreSQL, services web avec postgresql et
    php/xml" vous allez commencer à lire le cahier des charges
    puis commencer à travailler en mode gestion de projet en
    utilisant la méthode SADT pour décomposer les étapes du
    projet.
    SADT Kesako vous me direz ? Et bien dans ce livre chaque
    technologie/méthodologie est présentée de façon vraiment
    claire et sans fioritures.
    Suite à cela vous découvrirez comment gérer la base de
    données, le code etc.
    Enfin un bon bouquin à lire ( pour changer...)

    note à bibi : C'est marrant en plus c un ancien de l'epita
    qui m'avait donné des cours.:))
    ------------------------------------------------------------
    cyruss (http://www.phpteam.net)
    http://dev.nexen.net/news/gen.php3/2003/02/08/1477,0,1,0,0.php3


    [4] PHP Le grand test...Haut ]
    ------------------------------------------------------------
    avec quelques partenaires de forum, nous avons decidé
    aujourd'hui de repondre a une question recurrente : quelle
    est la charge et le temps d'execution de certaines
    fonctions pour le serveur. C'est pourquoi je fais appel a
    tous les adeptes du php (voir de l'asp) pour les inviter a
    prendre part au grand test de php sur
    http://www.jaimelelait.com. Que ce soit pour effectuer les
    tests ou participer au developpement, toute participation
    nous interesse.
    ------------------------------------------------------------
    Sebastien (http://www.jaimelelait.com)
    http://dev.nexen.net/news/gen.php3/2003/02/08/1478,0,1,0,0.php3


    [5] Analyser un fichier RDF ou RSSHaut ]
    ------------------------------------------------------------
    Tout est facile propose une introduction au XML avec PHP, en
    l'illustrant avec le traitement du fichier de backend de
    Linux fr. Le tutoriel est progressif, et établit aussi la
    connexion pour rechercher dynamiquement le fichier RSS à
    distance.
    Des techniques simples avec un exemple pratique.
    ------------------------------------------------------------
    http://dev.nexen.net/news/gen.php3/2003/02/08/1479,0,1,0,0.php3


    [6] Les classes abstraites en PHPHaut ]
    ------------------------------------------------------------
    PHPbuilder publie un article avancé sur la mise en place
    avec PHP de classes abstraites. Avec l'arrivée du Zend
    Engine 2, les techniques de programmation évoluent vers les
    objets, et les librairies de classes.
    On utilise couramment en PHP des fonctions dites de
    callback, qui permettent d'instiller un comportement
    spécifique dans une fonction banale : c'est par exemple le
    cas des fonctions de tris avec comparaison personnalisée
    (usort, ausort, kusort...)
    Voici un des premiers tutoriels sur les futures notions de
    PHP5 et du Zend Engine2. Si l'aventure vous tente,
    installez le dès aujourd'hui.
    ------------------------------------------------------------
    http://dev.nexen.net/news/gen.php3/2003/02/08/1480,0,1,0,0.php3


    [7] Expressions régulièresHaut ]
    ------------------------------------------------------------
    Derek Ford s'essaie aux expressions régulières sur
    phpfreaks.com. Il vient de publier un article de 3 pages
    permettant de s'orienter rapidement dans la jungle des
    expressions régulières. Cet article est valable aussi bien
    pour les expressions régulières de Perl que de Posix. Il
    couvre les notions de caractères spéciaux (les jokers et
    quantificateurs), ainsi que les alternatives et les classes
    de caractères. L'article promet aussi une suite avec des
    notions avancées...
    ------------------------------------------------------------
    http://dev.nexen.net/news/gen.php3/2003/02/07/1476,0,1,0,0.php3


    [8] Interview de Dilip Thomas, de Wrox.Haut ]
    ------------------------------------------------------------
    WebKreator vient de réaliser un court interview avec Dilip
    Thomas, qui a dirigé la publication de plusieurs livres PHP
    chez Wrox. Après la publication de PHP professionnel et PHP
    XML professionnel, Dilip présente PHP String handbook et
    PHP graphic handbook, qui sont les prochains titres prévus.
    ------------------------------------------------------------
    http://dev.nexen.net/news/gen.php3/2003/02/07/1475,0,1,0,0.php3


    [9] Conseils de validation des variables de formulaire.Haut ]
    ------------------------------------------------------------
    Justin Vincent avait publié il y a quelques jours, une
    première liste de conseil sur la programmation PHP,
    intitulé JV?s Power Tips for PHP (1). Il revient
    aujourd'hui avec un nouvel épisode, sobrement appelé JV?s
    Power Tips for PHP (2), qui traite des tests de validations
    d'un formulaire.
    Ces tests sont surement les plus importants en terme de
    sécurité, et ils renforceront la robustesse de votre
    application. Justin vous propose 4 méthodes pour cela.
    ------------------------------------------------------------
    http://dev.nexen.net/news/gen.php3/2003/02/06/1474,0,1,0,0.php3


    [10] Comparaison MySQL et PostGreSQLHaut ]
    ------------------------------------------------------------
    Pour les amoureux du logiciel Libre, il y a deux
    alternatives : MySQL et PostGreSQL. Les deux bases sont
    Open Source, soutenue par une société et plutot répandues
    sur le web.
    MySQL est généralement le plus connu, et le plus souvent
    associé à PHP, dans une proportion de 2 pour 1. PostGreSQL
    affiche des fonctionnalités avancées comme les transactions
    ou les sous sélections, que MySQL commence timidement a
    proposer.
    Tim Perdue a donc rassemblé toute son expérience pour
    comparer les deux, et aider au choix.
    ------------------------------------------------------------
    http://dev.nexen.net/news/gen.php3/2003/02/06/1473,0,1,0,0.php3


    [11] Couche d'abstraction de base de données : DBXHaut ]
    ------------------------------------------------------------
    Hier, John Lime du site PHP everywhere, et auteur de Adobdb
    a réalisé des tests de performances sur DBX, une des
    couches d'abstractions de bases de données écrite en C, et
    disponible dans la distribution PHP.

    Average Overhead
    MySQL native 1.14 -
    dbx 1.37 20% (flags=DBX_RESULT_INDEX)
    ADOdb 1.45 27% (numeric indexes)
    dbx 1.53 34% (default flags)

    Vous noterez que la couche d'abstraction coute toujours au
    moins 20% de performances. Cela établit aussi une autre
    alternative a la quête des DBI : DBX.
    ------------------------------------------------------------
    http://dev.nexen.net/news/gen.php3/2003/02/06/1472,0,1,0,0.php3


    [12] MySQL 4.0.10Haut ]
    ------------------------------------------------------------
    MySQL vient de publier la version 4.0.10 de sa célèbre base
    de
    données. Ne la confondez pas avec la version que nous
    attendons
    tous, la 4.1, qui sera la prochaine évolution majeure. Avec
    l'accélération
    des versions et des publications ces dernières semaines,
    tout laisse présager
    une publication définitive imminente. Cette version de
    développement ne contient que des corrections de bugs, et
    aucune nouvelle fonctionnalités.

    A noter que les versions MySQL 4.1.0 et 3.23.56 sont déjà
    prévues sur
    le site de mySQL, pour le mois de Février.
    Voici un aperçu de la suite pour la version 4.0.10

    Fonctionalité ajoutée ou changée :
    * Dans INSERT INTO t1 SELECT ... FROM t2 WHERE ... MySQL,
    un verrou
    était posé sur la table t2. Ce verrou est supprimé.
    * SHOW INNODB STATUS a vu sa taille maximale être augmenté
    jusqu'à 200 kB.
    * Correction d'un bug majeur sous InnoDB, dans
    l'optimisation : les requêtes du type
    SELECT ... WHERE indexcolumn < x and SELECT ... WHERE
    indexcolumn > x causaient
    un scan de la table, même si la selectivité était bonne.
    * Correction d'un bug : la purge pouvait conduire à une
    attente indéfinie dans une table
    avec colonne de type BLOB, où la clé primaire était de
    hauteur 1, Symptôme : le sémaphore
    attendait, à cause du X-latch activé dans
    btr_free_externally_stored_field() (ben ca alors...).
    * Correction d'un bug : l'utilisation de commandes InnoDB
    HANDLER sur un handle récent
    causait un crash de mysqld dans
    ha_innobase::change_active_index().
    * Correctin d'un bug : si MySQL estimait une requête au
    milieu d'une commande SELECTm
    InnoDB pourvait bloquer sur l'index de latch hash adaptatif
    btr0sea.c.
    * Correction d'un bug : InnoDB pouvait annoncer une
    corruption de table, et l'afficher dans
    page_dir_find_owner_slot() si une recherche dans le hash
    adaptatif concidait avec une purge ou
    une insertion.
    * Correction d'un bug : certains outils de sauvegarde du
    système de fichier sous Windows 2000
    pouvaient causer une erreur d'écriture d'un fichier InnoDB,
    avec une erreur 33 ERROR_LOCK_VIOLATION.
    En écriture synchron, InnoDB essaie désormais de réécrire
    100 fois, a une secone d'intervalle.
    * Correction d'un bug : REPLACE INTO t1 SELECT ... ne
    fonctionnait pas si t1 était une colonne
    auto incrémentée.
    * Bug identifié mais non corrigé : SET FOREIGN_KEY_CHECKS=0
    n'est pas répliquée correctement
    avec la réplication de MySQL.
    ------------------------------------------------------------
    http://dev.nexen.net/news/gen.php3/2003/02/06/1471,0,1,0,0.php3


    [13] Interfacer MySQL avec PHP en mode ObjetHaut ]
    ------------------------------------------------------------
    PHPapps a repéré un article interessant sur le JournalDuNet,
    qui montre comment s'interfacer avec MySQL, en utilisant
    les capacités Objets de PHP. En effet, l'extension MySQL
    dispose depuis longtemps la possibilité de lire une ligne
    sous la forme d'un objet. A l'avenir, l'extension MySQL de
    PHP sera d'ailleurs réécrite totalement en objet, afin de
    profiter des fonctionnalités du Zend Engine 2, et des
    fonctionnalités avancées de MySQL 4.x. Au moins deux
    implémentations sont actuellement en cours.

    Merci à phpapps.org pour le lien.
    ------------------------------------------------------------
    http://dev.nexen.net/news/gen.php3/2003/02/05/1470,0,1,0,0.php3


    [14] Ecrire du code PHP indestructibleHaut ]
    ------------------------------------------------------------
    Ce type de titre a un coté accrocheur qui sent a plein nez
    le bug de sécurité. Mais il faut admettre que Hamol, auteur
    de cet article, s'y connait en PHP.
    On y trouve des conseils qu'on a souvent tendance a oublier
    facilement :
    Concevoir une fondation solide, diviser pour mieux regner,
    ne jamais penser en terme de pages, réduire les pré requis
    des navigateurs, séparer le code, le contenu et la
    présentation, savoir reprendre la conception, sécuriser le
    code, rester simple, coder pour la vitesse et pas pour la
    plate forme.
    ------------------------------------------------------------
    http://dev.nexen.net/news/gen.php3/2003/02/05/1469,0,1,0,0.php3


    [15] Librairie d'Interface WebHaut ]
    ------------------------------------------------------------
    Généralement, les systèmes de templates vous permettent de
    mettre en place un moyen de communication avec le graphiste
    et l'intégrateur HTML. Webkreator a déniché deux librairies
    PHP qui génèrent directement des éléments d'interface en
    HTML (via le DHTML, javascript ou autre). Ces librairies
    fournissent notamment des outils rares, comme des arbres.
    Le travail de présentation est considérablement simplifié,
    et l'interface est unifiée.
    A lire absolument!
    ------------------------------------------------------------
    http://dev.nexen.net/news/gen.php3/2003/02/05/1468,0,1,0,0.php3


    [16] Introduction aux FULL index de MYSQLHaut ]
    ------------------------------------------------------------
    Les colonnes de type char et varchar se prêtent bien aux
    recherches, même partielles. Leur petite taille les rend
    agile et rapide à traiter.
    C'est complètement différent pour les gros blobs et TEXT,
    dont on voudrait bien fouiller les entrailles sans mettre a
    genou le serveur. C'est dans cet esprit que MySQL a ajouté
    la recherche full index, qui apporte un niveau de
    fonctionnalités importants tout en accélérant ce type de
    recherche : liste de mots a ignorer, gestion des mots
    composés, tri par pertinence...
    Un tutoriel de databasejournal, a compléter avec celui de
    Zend.
    ------------------------------------------------------------
    http://dev.nexen.net/news/gen.php3/2003/02/05/1467,0,1,0,0.php3


    [17] ASP2PHPHaut ]
    ------------------------------------------------------------
    Tout le monde a forcément déjà entendu parler du fameux
    convertisseur de code ASP vers PHP. Mais comment je le fais
    marcher? C'est efficace? On a testé pour vous!
    ------------------------------------------------------------
    Ludo (http://www.asp-php.net)
    http://dev.nexen.net/news/gen.php3/2003/02/05/1466,0,1,0,0.php3


    [18] SQLYog 3.0.1Haut ]
    ------------------------------------------------------------
    SQLYog est un client MySQL gratuit, graphique et écrit
    entièrement pour Windows. Il est bourré de fonctionnalités
    pratiques et tend à remplacer MySQLfront.
    ------------------------------------------------------------
    http://dev.nexen.net/news/gen.php3/2003/02/04/1465,0,1,0,0.php3


    [19] Alerte sécurité sur PHP NukeHaut ]
    ------------------------------------------------------------
    PHPNuke.org publie un patch de sécurité qui peut avoir une
    influence certaine sur la sécurité de votre site, si vous
    utilisez PHP Nuke. Pour preuve, le site officiel a été
    attaqué par trois IP, et a été massivement effacé.

    Merci à PHPdeveloppers pour la news.
    ------------------------------------------------------------
    http://dev.nexen.net/news/gen.php3/2003/02/04/1462,0,1,0,0.php3


    [20] MnoGoSearch 3.2.8 publiéHaut ]
    ------------------------------------------------------------
    MnoGosearch est un outil de recherche clé en main, fourni
    par une équipe russe en Open Source. Ce logiciel est
    composé d'un robot qui scanne votre site web, et enregistre
    les pages dans une base de données (MySQL, Postgresql, ou
    bien d'autres).
    Depuis PHP, Mnogosearch dispose d'une extension permettant
    d'interroger la base du moteur, et de faire des recherches
    complexes et rapides, grâce à l'indexation différée.
    Sachez aussi que Mnogosearch propose des licences
    commerciales payantes, avec du support.
    ------------------------------------------------------------
    http://dev.nexen.net/news/gen.php3/2003/02/04/1463,0,1,0,0.php3


    [21] Applications PDF et MySQLHaut ]
    ------------------------------------------------------------
    PHPfr.org signale deux applications utiles pour la
    programmation au quotidien :
    phpcodegenie est une applications qui réalise rapidement
    les scripts nécessaires pour s'interfacer via le web sur
    une table MYSQL. Comme phpmyadmin, il s,adapte au design de
    la table, mais il fournit le code PHP nécessaire pour
    réaliser une insertion, un listage.. Il ne reste plus qu'à
    l'utiliser, et le modifier ou l'adapter.
    L'autre est phppdflib, une librairie en PHP permettant de
    générer des fichiers PDF. Elle a été développée comme
    utilitaire dans le cadre d'autre projet et est publiée
    indépendamment sur le web.
    ------------------------------------------------------------
    http://dev.nexen.net/news/gen.php3/2003/02/04/1464,0,1,0,0.php3


    [22] L'actualité de la PoireHaut ]
    ------------------------------------------------------------
    Vous aurez reconnu la lettre hebdomadaire de PEAR, la
    bibliothèque de PHP. Cette seamaine retrouvez Mika
    Tuupola et Pierre-Alain Joye qui vous présentent les
    dernières nouveautés de PEAR, a commencer par APD, un
    nouveau débogeur/profileur de PHP.
    La traduction est l'oeuvre d'Arnaud Limbourg.
    Un page de statistiques résume l'intérêt des développeurs
    pour certains paquet spécifiques.
    ------------------------------------------------------------
    http://dev.nexen.net/news/gen.php3/2003/02/03/1461,0,1,0,0.php3


    [23] JPgraph 1.11Haut ]
    ------------------------------------------------------------
    Après les classiques mises à jours qui suivent la
    publication de PHP 4.3.0, JPGraph publie une version
    importante, et ajoute de nouveaux formats à la collection
    déja pléthorique : les chandelles des boursiers. A noter
    aussi la possibilité d'avoir plusieurs axes Y sur le même
    schéma.
    Si vous n'êtes pas convaincus par les capacités de JPgraph,
    voyez donc la galerie.
    Si vous êtes encore sceptiques des performances de JPgraph,
    les derniers rapports ne sont pas en faveur d'une
    accélération.
    ------------------------------------------------------------
    http://dev.nexen.net/news/gen.php3/2003/02/03/1460,0,1,0,0.php3


    [24] Résumé de la semaine de développement de PHPHaut ]
    ------------------------------------------------------------
    Fidèle au rendez vous, Zend a lu tous les messages de la
    semaine, et fait le point.

    TLK: RSS bug feed
    TLK: Logiciel de collecte des tests QA
    NEW: str_replace() insensible à la casse
    TLK: Des conferences, des conferences partout!
    NEW: Array vers XML
    TLK: verrouillage de fichier obligatoire
    FIX: Problèmes de compilation avec Sablotron
    ------------------------------------------------------------
    http://dev.nexen.net/news/gen.php3/2003/02/03/1459,0,1,0,0.php3




    ***************************************************************
    Pour modifier votre abonnement :
    http://dev.nexen.net/services/login.php?direction=diffusion.php

    Pour devenir membre de nexen.net :
    http://dev.nexen.net/services/login.php?direction=diffusion.php

    L'actualité journalière sur nexen.net :
    http://dev.nexen.net/news/

    Contact de l'éditeur
    damien.seguy@nexen.net
    ***************************************************************
    Cette lettre hebdomadaire est un un service de Nexen.net,
    portail technologique PHP et MySQL éditée par la société
    Nexen Services SA au capital de 49.536 Euros
    inscrite au registre du commerce de Paris : RCS B 423 995 224