7 novembre 2010
Si vous ne voulez pas utiliser Eclipse uniquement pour faire du PHP, mieux vaut installer la version classique d’Eclipse, puis d’installer PDT (PHP Development Tool) séparément.
En ce qui me concerne j’ai commencé par télécharger la version « Classic » d’Eclipse que l’on peut trouver sur cette page. A l’heure où j’écris ces lignes il s’agit de Eclipse Classic 3.6.1. Téléchargez le zip en fonction de votre système (32 ou 64 bits). Dézippez ensuite votre fichier dans le répertoire Program Files. Vous obtenez un répertoire eclipse. Entre-y et faites un raccourcit de eclipse.exe vers le bureau par exemple.
Lire le reste de cet article »
Mots-clefs : Eclipse, pdt, php
Publié dans Eclipse, PHP - MySQL |
17 juin 2010
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!
Lire le reste de cet article »
Mots-clefs : classes, fonctions, php, portée
Publié dans PHP - MySQL |
14 juin 2010
Maintenant 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'); |
Lire le reste de cet article »
Mots-clefs : composant, Doctrine, finders, mysql, php
Publié dans Doctrine, PHP - MySQL |
7 juin 2010
APC 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
Mots-clefs : apc, debian, opcode, php
Publié dans Linux Debian, PHP - MySQL |
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 |