12 janvier 2010
Cette 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.
Lire le reste de cet article »
Mots-clefs : Doctrine, mysql, php
Publié dans Doctrine, PHP - MySQL |
9 janvier 2010
A 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.
Lire le reste de cet article »
Mots-clefs : classes, dépendance, exceptions, php
Publié dans PHP - MySQL |
18 août 2009
Dernièrement j’ai eu à migrer le site d’un client d’un serveur dédié à un autre.
Au lieu de faire un backup des données sur ma machine puis les renvoyer sur le nouveau serveur, j’ai décidé de faire directement un transfert de serveur à serveur via SSH. C’est nettement plus rapide car on bénéficie de la bande passante du serveur.
Lire le reste de cet article »
Mots-clefs : debian, fichier, scp, ssh, transfert
Publié dans Linux Debian |
12 août 2009
Internet Explorer 7 possède un bug bien particulier qui lui est propre au niveau des z-index. En tous les cas je ne l’ai pas retrouvé ni sur IE6 (pour une fois) ni sur IE8.
Ce bug m’est apparu lorsque j’ai créé un menu déroulant en CSS / jQuery impliquant des listes positionnées en relative et absolute et que dans le contenu situé sous le menu j’ai un ou plusieurs éléments positionnés également en relative ou absolute. Dans ce cas j’avais le menu déroulant qui passait sous les éléments du contenu. Problème de z-index semble-t-il. Pourtant malgré le fait de bien paramétrer des z-index sur les éléments du menu et les éléments du contenu, rien à faire, le menu déroulant reste derrière. Grossièrement, le code a cette structure:
<div id="header">
<div id="div_menu">
<ul id="menu">
<li><a href="#">Lien 1</a>
<ul class="sousmenu">
<li><a href="#">Sous-menu</a></li>
<li><a href="#">Sous-menu</a></li>
<li><a href="#">Sous-menu</a></li>
</ul>
</li>
</ul>
</div>
</div>
<div id="contenu">
<div id="element_en_absolu">Le sous menu passe derrière !</div>
</div>
Tous mes z-index avaient été placés sur les éléments #div_menu, #menu, #menu li etc.. ainsi que sur #element_en_absolu.
Finalement j’ai trouvé la solution sur ce blog. J’ai résolu le problème en définissant un z-index le plus élevé sur #header. Ce qui veut dire qu’il faut donc définir un z-index qui soit le plus élevé que tous les autre sur le ou les parents du menu.
Mots-clefs : absolute, bug, Internet Explorer 7, position, relative, z-index
Publié dans Intégration - CSS / XHTML |
4 août 2009
Un site est sur un serveur dédié A. Vous voulez le migrer sur un serveur dédié B. La migration des fichiers et de la base de données éventuelle ne pose pas spécialement de problème. Ce qui est plus délicat, c’est lorsque vous allez modifier les pointages DNS du nom de domaine : en effet, le temps de la propagation, certains visiteurs vont rapidement arriver sur le serveur dédié B alors que d’autres vont rester bloqués sur le serveur A pendant 24 à 48h. Si dans le cadre d’un site statique cela ne pose aucun souci, c’est plus problématique dans le cas d’un site dynamique car cela peut engendrer une désynchronisation de la base de données entre les deux serveurs et conduire à des pertes de données.
L’idéal serait que le serveur A puisse rediriger les visiteurs sur le serveur B le temps de la propagation des DNS. Apache va nous y aider.
Lire le reste de cet article »
Mots-clefs : apache, debian, http, proxy
Publié dans Linux Debian |
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.
Lire le reste de cet article »
Mots-clefs : apache, configuration, Exim4, mysql, ovh, php, phpMyAdmin, ProFTPD, serveur dédié
Publié dans Linux Debian |
3 juillet 2009
Malgré le fait de demander une Debian nue à l’installation de mon serveur dédié, OVH m’a mis une distrib qui semble un peu modifiée par eux, notamment au niveau du noyau. Le noyau que j’ai au départ a un nom tout bizarre genre bzImage-2.6.27.10-xxxx-grs-ipv4-64.
En fait c’est un noyau préparé par OVH qui contient les derniers patchs de sécurité et qui permet de se passer de modules externes car ils sont embarqués. Problème: quand j’ai voulu upgrader ma distrib de Etch à Lenny, j’ai eu énormément d’ennuis et j’ai dû faire appel à un ami spécialiste pour me dépatouiller.
Le premier problème a été Lilo: il a commencé à me mettre des warnings pendant la mise à jour. Comme je n’étais pas sûr des conséquences que cela aurait au reboot et vu que Lilo commence sérieusement à dater, on a décidé de mettre Grub, et là tout est parti en vrille, ce qui n’aurait pas été le cas si j’avais eu un noyau standard… En effet d’une part Grub se base sur le nom d’un noyau standard pour s’installer, ce qui n’était pas le cas. La config de grub ne n’est donc pas faite correctement. On s’est donc dit que dans ce cas, on allait donner à Grub ce qu’il voulait, c’est à dire un noyau standard. Sauf que la il va aussi falloir gérer les modules à la main. En plus de cela le serveur était en raid1 logiciel, ce qui nécessite une maipulation supplémentaire avec Grub.
On va donc essayer à travers cet article de remettre la distribution droite dès le départ étant donné que le serveur dédié sur lequel je refais cette expérience est neuf.
Lire le reste de cet article »
Mots-clefs : debian, linux, noyau, ovh
Publié dans Linux Debian |
11 avril 2009
Ce pense-bête a été fait à partir des deux articles suivants:
http://blog.fabroce.info/post/2006/11/19/Installer-un-depot-subversion-sur-une-Debian
http://blog.utopiaz.org/2008/04/mise-en-place-svn-et-virtual-hosts-apache/
Son but est de mettre en place un serveur subversion sur une Debian permettant la gestion de plusieurs dépôts avec une gestion des droits différente selon les dépôts. Lire le reste de cet article »
Mots-clefs : debian, installation, linux, subversion, svn
Publié dans Linux Debian |
2 octobre 2008
Suite à un bug présent sur le PHP installé sur ma distribution stable, j’ai dû faire une mise à jour afin de pouvoir installer la version testing, sans pour autant basculer complètement sur cette dernière. Le but du jeu est d’installer uniquement le paquet voulu (et ses dependances bien sûr).
Lire le reste de cet article »
Mots-clefs : apt, debian, paquet, stable, testing
Publié dans Linux Debian |
2 octobre 2008
J’ai eu droit à cette erreur en faisant un apt-get update. J’ai trouvé la solution ici:
http://e.rycks.com/index.php/post/2005/08/17/22-dynamic-mmap-ran-out-of-room
pour résumer il faut aller dans /etc/apt/apt.conf.d/ et créer un fichier 10cachelimit (le nom du fichier peut-être modifié à votre guise). Y placer l’instruction suivante:
APT::Cache-Limit "10000000";
Cela permet à APT d’utiliser plus de RAM. La valeur entre guillemets est à modifier selon les besoins. Personnellement j’ai dû passer à 20000000 pour que cela fonctionne.
Mots-clefs : apt, debian
Publié dans Linux Debian |