La dernière fois, je me posais la question de savoir comment Symfony faisait pour proposer dans ses vues des fonctions telles que __() (les helpers) puisque je pensais que la seule solution de rendre une fonction utilisateur locale à une méthode de classe était de la déclarer directement dans la méthode et que je n’ai trouvé aucun moyen de transmettre cette fonction à cette méthode (comme cela se passe pour les variables). Et pour cause, on n’en n’a pas besoin!
Archive pour le mot-clef ‘php’
Portée des fonctions
Jeudi 17 juin 2010Les composants de Doctrine – Le composant Table
Lundi 14 juin 2010Maintenant que nous avons initialisé Doctrine (vois l’article sur l’introduction à Doctrine), nous allons pouvoir commencer à l’utiliser.
Comme nous l’avons dit, avec Doctrine tout est objet. Nous aurons donc accès à des classes qui vont nous permettre de travailler les données. On appelle ça des composants. Doctrine fournit plusieurs composants. En voici trois essentiels :
- Le composant Record qui représente un enregistrement d’une table
- Le composant Collection qui représente un ensemble de Record
- Le composant Table qui représente notre table et nous permettra d’accéder aux composants Collection et Record
Dans cet article nous allons étudier le composant Table. Il permet comme son nom l’indique d’accéder à une table de notre base de données et d’interagir avec elle. Pour cela il nous faut une instance de la classe représentant notre table :
1 2 3 | <?php require_once('bootstrap.php'); $table = Doctrine_Core::getTable('Produits'); |
Installation de APC sous Debian
Lundi 7 juin 2010APC est un cache d’OPCodes pour PHP. Il permet de mettre en cache au niveau serveur le code de PHP précompilé afin de ne pas refaire ce traitement.
Vous trouverez plus d’informations dans l’article de Julien Pauli sur developpez.com.
Ici il s’agit de voir comment l’installer sous Debian. Très facile finalement, il existe un paquet pour ça:
> apt-get install php-apc
Il faudra bien sûr redémarrer Apache.
Le fichier permettant le monitoring du cache est situé dans /usr/share/doc/php-apc et s’appelle apc.php.gz. Il faudra donc le décompresser:
> gzip -d apc-php.gz
Il vous suffit de déplacer ce fichier où bon vous semble.
A noter que le fichier de config d’APC se situe dans:
/etc/php5/conf.d/apc.ini
Introduction à Doctrine
Mardi 12 janvier 2010Cette année je suis passé à Doctrine. Les raisons étaient diverses:
- Il était temps pour moi de laisser tomber la vieille extension mysql de PHP et de passer à de l’objet.
- Trouver un système qui s’intègre facilement dans un modèle MVC
- Pouvoir faire de l’abstraction de base de données
- Idéalement un système qui va me faire gagner du temps dans mes développements.
Après avoir regardé plusieurs solutions, je me suis donc tourné vers Doctrine:
- Il s’interface avec PDO, donc abstraction de base de données
- Les performances semblent au rendez-vous
- Il génère automatiquement le modèle du MVC
- Support des fonctionnalités récentes de MySQL
- Utilisé par défaut dans Symfony
- Tout est objet
Bref je me suis dis que c’était le top. Et c’est vrai que quand on le maîtrise c’est vraiment sympa. Sauf que la transition s’est quand même un peu faite dans la douleur. La doc est présente mais dans certains cas j’ai quand même perdu pas mal de temps à chercher des solutions à mes problèmes. Je me suis donc dit qu’il était peut-être possible d’apporter quelques compléments d’information.
Dépendances et exceptions
Samedi 9 janvier 2010A l’heure où j’entends beaucoup parler d’objet, de framework, de dépendance faible, d’injection de dépendance etc. je me suis posé une question. Admettons que dans mon petit framework sans prétention j’ai envie que mes modules soient complètement indépendants, c’est-à-dire que je puisse les prendre un à un et les utiliser avec un projet complètement différent, hors framework. Zend Framework fait cela. Cependant je me suis demandé comment gérer des exceptions personnalisées dans ce cas ?
En effet, dans mon framework, j’ai créé une classe d’exception qui hérite de Exception et qui rajoute des fonctionnalités comme par exemple une méthode permettant d’afficher le message d’erreur bien formaté en HTML avec un fond rouge et presque un gyrophare sur le dessus. Oui mais voilà, quand dans un de mes modules j’ai besoin d’utiliser une exception et que j’ai à afficher le message en utilisant une méthode personnalisée de mon exception, cela casse complètement l’indépendance de mon module. Je ne peux plus le sortir de son contexte car il dépend désormais de la classe d’exception de mon framework ce qui est contraire à ce que je veux.
Configuration d’un serveur dédié chez OVH
Mercredi 15 juillet 2009Ça faisait un moment que je n’avais pas eu à configurer un serveur dédié pour de la production. L’occasion d’en faire un petit article, le but étant de faire un serveur très basique, sans gestion de boîte mails, sans LDAP, sans chroot, etc. Juste une base LAMP.
Ce serveur dédié a été choisi chez OVH. J’ai bien sûr demandé une Debian nue mais ça n’a pas vraiment été le cas. En fait, OVH livre une distribution Debian avec un noyau personnalisé et plusieurs outils installés par défaut. Suite à une mésaventure lors du passage de Etch à Lenny sur un de mes dédiés, j’ai décidé de ne plus laisser le noyau d’OVH mais d’installer un noyau standard. Si cette manipulation vous intéresse, voyez ce billet. Sinon ce qui suit fonctionne quand même parfaitement.
Installation PHP5/Apache2.2/MySQL5 sous Windows
Samedi 16 août 2008Cette installation est effectuée sous Windows XP Pro SP2, mais devrait fonctionner sous Vista sans problème. Elle est destinée à une installation en tant que plateforme de développement, pas à une installation de production.
Installation de PHP
Télécharger la dernière version de PHP sur php.net (la dernière version est la 5.2.6 au moment de cet article). Prenez la version zip package.
A la racine de votre disque dur c: créeez un répertoire php et dézippez-y l’archive PHP.
Documentation PHP en ligne
Lundi 4 août 2008J’attendais vraiment ça avant de mettre le blog en ligne. Après plusieurs semaines de bataille avec le nouveau système de compilation de la documentation PHP, j’ai quand même réussis à la compiler pour en faire à peu près ce que j’en voulais.
Autant dire que ça n’a pas été simple et que je m’amuserai pas à refaire ça tous les jours. Quoi qu’il en soit je pourrai désormais la recompiler régulièrement sachant qu’à chaque mise à jour il y a plein de bugs qu’il faut corriger avant de pouvoir recompiler.
Allez, direction la doc
