News

L'appel à conférenciers pour le forum 2007 a été repoussé au 15 Juillet 2007, ce qui donne 15 jours de plus aux retardataires pour soumettre leurs sujets. C'est une bonne chose, car je n'ai pas encore envoyé mes propres sujets.

L'AFUP recherche les meilleurs intervenants francophones pour parler de PHP, des bases de données et des clients de dernière génération. Rasmus Lerdorf et Andrei Zmeivski feront partie du show, ainsi qu'un petit invité surprise...

- Appel à conférenciers forum PHP 2007
le 27/06/2007 à 20:16
PHPEdit 2.12
Le 17 juin nous avons publié la dernière mise à jour de PHPEdit, la version 2.12. Les principales améliorations de cette version sont relatives à l'intégration de PHPUnit et du framework PHP Prado. Vous pouvez trouver plus d'information à propos de cela dans notre blog:

Comme pour chacune de nos mises à jour, elles sont gratuites pour tout possesseur de licence 2.x (licences professionnelle ou personnelle). Il vous suffit de télécharger la mise à jour et de l'installer.

- PHPEdit 2.12 publiée
- PHPUnit support for PHPEdit
- PHPUnit extension documentation is available
- Prado extension documentation is available
- Téléchargez PHPEdit 2.12
En utilisant une date en dur, vous pouvez tirer parti du cache de requêtes SQL de MySQL. Si vous utilisez une fonction telle que CUR_DATE(), cette fonction retourne toujours une valeur différente, et cela empêche le fonctionnement du cache. C'est une des situations où il est préférable de construire une requête SQL en PHP, plutôt que de l'avoir statique.

- Query Cache is deterministic
- MySQL performance
Note de l'auteur :

Vous avez peut-être remarqué mon excitation à propos du proxy MySQL. Mais peut être avez-vous vous du mal à comprendre ce que vous pouvez en faire.
Voici un tutorial simple qui vous guidera dans vos premiers pas avec le proyx. Vous sera alors capable d'utiliser des macros depuis les clients MySQL.

- Your first macros with MySQL Proxy
le 27/06/2007 à 20:11
Constructeur de requêtes SQL
MySQL Query Builder est un jeu de classes PHP 5 qui permettent de construire des requêtes MySQL correctes, avec PDO et les instructions SQL de préparation. C'est particulièrement utile si vous devez implémenter une couche d'abstraction de base de données, et que vous construisez dynamiquement vos requêtes.

Il existe aussi Babel MySQL, un projet destiné à convertir automatiquement des phrases humaines en requêtes SQL.

- mysql-query-builder
- Babel MySQL
- Dossier Babel MySQL
Et de 5 ! (ou plutôt 4...) On a appris via ExaleadGuy il y a quelques jours dans le forum Exalead sur WebRankInfo qu'Exalead supporte désormais le protocole Sitemaps initié par Google, rejoint par Yahoo et Ask (et bientôt MSN/Live mais on attend toujours).

Ce standard permet aux webmasters d'aider les moteurs de recherche à indexer leur site puisqu'il consiste à lister les URL des pages à indexer.

Description officielle (en français depuis avril 2007) :

Google Sitemaps permet aux webmasters d'indiquer facilement aux moteurs de recherche les pages de leurs sites à explorer. Dans sa forme la plus simple, un plan Sitemap est un fichier XML qui répertorie les URL d'un site ainsi que des métadonnées complémentaires sur chaque URL (date de dernière modification, fréquence de révision et importance relative par rapport aux autres URL du site), de façon à favoriser une exploration plus intelligente du site par les moteurs de recherche.
Ask avait rejoint la bande en Avril dernier.

Rappelons également qu'il est possible de déclarer son fichier sitemap dans le fichier robots.txt

- Déclarer son fichier sitemap dans le fichier robots.txt
PHP fournit une manière de gérer les erreurs déclenchées via une fonction de callback.
Pour cela vous utilisez set_error_handler et set_exception_handler pour les classes d'erreur.

Il est nécessaire dans votre fonction de gestion d'erreur d'ajouter un petit traitement supplémentaire. L'opérateur @ implique en effet que error_reporting est mis à 0 le temps de l'appel à la fonction, mais votre fonction customisée est quand même appelée !

Voici une petite astuce qui permet de contrer ce soucis.

- Traitement d'erreurs personnalisé et @
- Coding Style
le 26/06/2007 à 20:56
Proxy MySQL publié
Le proxy MySQL de Jan Kneschke est maintenant disponible : selon son auteur, il est totalement scriptable, et peut gérer l'équilibrage de charge, la reprise sur incident, l'analyse de requête, la réécriture de requête, etc.
Cela devrait apporter des solutions simples pour passer d'un serveur à plusieurs, sans passer par des solutions propriétaires dispendieuses.

- MySQL Proxy 0.5.0 released
- MySQL Proxy Home Page
- MySQL Proxy - An excellent excuse to learn a new language
- LUA
Tout le monde a en tête les notions d'évolutivité. En anglais, il y a Scale up et Scale out, qui sont déjà deux approches différentes de l'évolution d'une application.

A la base, l'évolutivité d'une application correspond à sa capacité à s'adapter à une charge changeante : généralement vers le haut, mais parfois aussi, vers le bas (il existe des services en ligne qui ont dépassé leur taille de croisière, et n'ont jamais pu faire redescendre leurs frais de fonctionnement).

Scale up est l'évolution par augmentation des capacités du matériel sous jacent (le syndrome du gros serveur trappu). Scale out est l'évolution par ajout d'un autre serveur (un peu comme un cluster, mais pas seulement).

Jay Pipes en parle en détail (et en anglais).

- and Scale-Up
Raphael propose un truc pour transformer les fichiers de logs PHP en fichier RSS, à l'aide du Zend Framework. En les lisant avec un client RSS, vous pouvez même faire remonter plus facilement les erreurs qui apparaissent (j'imagine qu'un site qui produit beaucoup d'erreurs sera moins intéressé).
Autrement, le format XML du fil permet un traitement externe, automatisé.

Une idée détaillée avec le code pour réaliser le fil grâce au Zend Framework.

- Turning a Zend_Log log file into a RSS feed

PS : en ce qui concerne lephpfacile, le traitement d'erreur fonctionne ainsi : pour toutes les erreurs qui arrivent sur la home, un mail est envoyé, sinon, c'est logué en base de données (quand ce n'est pas la base de données qui est morte bien sur :p)
LoadingChargement en cours