Archive for: octobre, 2009

Loader PHP: chargez vos class automatiquement

oct 18 2009 Published by Thibaut under PHP, Web

Si par erreur (ou justement pas) vous vous mettez un jour à coder proprement en PHP, vous vous rendrez vite compte qu’avoir ces petites classes toute faite pour interroger une base de donnée ou parcer un fichier XML peut s’avérer très pratique. Une fois ces classes écrites une bonne fois pour toute, avec la gestion d’erreur qui va bien et tout et tout, il ne reste plus qu’a copier/coller celle dont on a besoin dans un dossier « Class » du projet en cours et on les appellera au besoin sur les pages concernées.

Mais voilà, trêve de plaisanteries, trois tonnes d’include en haut d’un fichier PHP ça va vite devenir très cochon et pas franchement lisible.

Nous allons voir ici comment utiliser la fonction __autoload() de PHP pour inclure automatiquement les fichiers contenant les classes que nous allons appeler.

Commençons par organiser un peux notre projet.

Créez un dossier à la racine du site qui va contenir toute les librairies de notre projet et créez dans celui ci un dossier « class » qui lui contiendra les classes de notre application.

Capture d’écran 2009-10-18 à 14.38.55

Créez maintenant un fichier nommé « Loader.php » à la racine du dossier « library » dans lequel nous allons placer le code suivant:

<?php

function __autoload($class_name) {

require_once ‘library/class/’ . $class_name . ‘.php’;

}

?>

On peut maintenant appeler ce fichier dans notre script d’origine, par exemple ici notre index.php

<?php

require_once(‘library/Loader.php’);

Ainsi une instanciassions de classe du type:

$sql_access = new db_access();

va automatiquement inclure le fichier « library/class/db_access.php » contenant la classe « db_access » et nous nous retrouvons directement avec une organisation du projet sous cette forme:

Capture d’écran 2009-10-18 à 23.00.58

Bienvenu dans le monde des projets bien organisés!

4 responses so far

If there’s something strange in your neighborhood

oct 15 2009 Published by Thibaut under Divers

Who you gonna call?
Ghostbusters

No responses yet

WordPress et PHP 5.3

oct 04 2009 Published by Thibaut under Web

Après plusieurs tentatives d’installation (ou de migration) de WordPress sous un serveur PHP 5.3, je viens enfin de trouver la solution à ce qui semble être une incompatibilité due à une configuration non explicite de php.

L’erreur est simple, vous affichez votre site/blog sous wordpress et celui ci vous hurle dessus que les fonction strtotime() et date() ne peut répondre à au système car le timezone n’a pas été défini dans php.

Capture d’écran 2009-10-04 à 15.53.29

Reste donc a aller faire un tour dans votre php.ini, a rechercher « date.timezone =  » et à plus préciser « Europe/Paris » (oui ici on est en France monsieur!) en prenant soin de décommenter la ligne (retirez le « ; »)

Bon maintenant que j’ai downgrader mes serveurs en 5.2.10 je vais pouvoir remonter sur une 5.3!

One response so far