Petits astuces pratiques avec Symfony (1.4)
20 / 05 / 2010 Développement, PHP, Symfony 1.4 Aucun commentaireDurant le développement complet d’un projet, on rencontre forcément quelques bonnes astuces à conserver pour le futur.
Voici quelques-unes d’entre elles.
Lire la suite de ce post »
Symfony : méfiez-vous des chemins relatifs
20 / 05 / 2010 Développement, PHP, Symfony, Symfony 1.4 Aucun commentaireIl se trouve que le client pour lequel j’ai travaillé a une configuration d’Apache un peu particulière, qui est constituée de 2 Apaches avec du reverse proxy et tutti quanti.
Du coup, le site Symfony n’a pas son propre virtualhost exposé directement sur le Web : on ne tape pas http://monsitesymfony.com pour y accéder mais http://apps.monentreprise.com/monsitesymfony/, car ils mutualisent leurs applications.
Conséquence : deux ou trois choses ne fonctionnaient pas du 1er coup concernant les uploads et prévisualisation des fichiers uploadés ou encore l’image d’un datepicker.
Pour s’affranchir de ce genre de problème, je vous conseille de toujours faire un passe de test sans utiliser le virtualhost, mais plutôt http://votreserveur/votresite/web/, de façon à détecter ce genre de problème.
Logs des requêtes Doctrine, comment les activer/désactiver ?
2 / 05 / 2010 Doctrine 1.2, PHP, Symfony, Symfony 1.4 Aucun commentaireJe cherchais l’information pour activer les logs des requêtes Doctrine lorsque je l’utilisais au travers d’une tâche, et non d’un module Symfony.
En fait c’est simple, il suffit juste de trouver soi-même l’information !
Dans l’ordre de priorité, Doctrine s’appuye d’abord sur un paramètre logging dans le database.yml, et s’il ne le trouve pas, il s’appuye sur la valeur du logging_enabled dans le settings.yml de votre application.
Toute l’information se trouve dans sfDoctrineDatabase qui instancie un profiler sfDoctrineConnectionProfiler.
database.yml :
dev:
doctrine:
class: sfDoctrineDatabase
param:
dsn: mysql:host=...;dbname=...
username: ...
password: ...
logging: truesettings.yml :
dev: logging_enabled: false
Doctrine propose de stocker en cache soit la requête DQL compilée (évite de générer la requête SQL à chaque appel) ou bien carrément le résultat de la requête (évite de faire travailler la BDD + échanges réseau).
L’implémentation permet de se brancher sur n’importe quelle système de stockage : Memcache, APC, base de données, fichier, session, mémoire, choisissez celui qui vous convient.
Lire la suite de ce post »
Un petit post pour expliquer l’installation de Xdebug avec Xampp.
C’est une choses très simple grâce à l’utilitaire PECL.
Pour info, le cas présent se fait sous Ubuntu 9.10 32 bits.
Mon installation de Xampp a été faite dans /opt/lampp.
1. Il faut installer Xampp (ma version est la 1.7.3a)
2. Il faut également installer le “Kit de développement” de Xampp (même version…)
3. Lancer la commande suivante :
sudo pecl install xdebug
Et hop, la librairie Xdebug est compilée !!
En gros, là, vous en êtes au même point que si vous aviez télécharger la DLL de Xdebug sous Windows, sauf que c’est un .so et non un .dll.
Le fichier compilé a été déposé dans “/opt/lampp/lib/php/extensions/no-debug-non-zts-20090626/xdebug.so”.
4. Ensuite, il faut dire à PHP que ce fichier existe ! Ca se passe dans le php.ini (j’utilise l’éditeur geany) :
sudo geany /opt/lampp/etc/php.ini
et ajouter les lignes
zend_extension="/opt/lampp/lib/php/extensions/no-debug-non-zts-20090626/xdebug.so" xdebug.remote_enable=on xdebug.remote_handler=dbgp xdebug.remote_mode=req xdebug.remote_host=localhost xdebug.remote_port=9000
Voilà, c’est le minimum syndical, mais l’essentiel pour pouvoir faire du debugging pas à pas dans eclipse ou netbeans.
Un article intéressant à ce sujet : http://wiki.netbeans.org/HowToConfigureXDebug
MySQL Workbench est un outil génial permettant de créer un modèle physique de données d’un base MySQL.
Etant en pleine phase de conception et rédaction de spécifications fonctionnelles détaillées sur un projet, je l’utilise intensément. (c’est d’ailleurs pour ça que je ne publie plus trop d’articles ces derniers temps, je suis à fond sur les SFD).
Voici une petite astuce dans ce logiciel, suite à un problème rencontré…
Lire la suite de ce post »
Description
Cette attaque vise à usurper l’identité d’un utilisateur connecté, en lui imposant un ID de session. Pourquoi ?
Lire la suite de ce post »
Petit rappel de la division euclidienne et utilisation du modulus en PHP
3 / 12 / 2009 Développement Aucun commentaireWikipédia nous rappel le théorème de la division euclidienne pour des entiers positifs :
“Pour tous entiers a et b positifs, avec b non nul, il existe un unique couple d’entiers q et r tel que la relation a=bq+r soit vérifiée, et tel que r soit compris entre 0 et a-1 au sens large. L’entier q est appelé quotient de la division de a par b, et l’entier r reste de cette division.”
En PHP et en programmation en général, il est courant d’utiliser la valeur du reste de la division euclidienne pour déterminer si un nombre est divisible par un autre, notamment pour savoir s’il est pair ou impair (divisible par 2) :
a = b*2 + r, a est divisible par 2 si le reste r vaut 0.
Le script PHP suivant vous aidera à faire vos petits essais :
$b=2; for ($a=1;$a<=10;$a++) { echo "\n[a = bq+r, 0 < r <= a-1] (a=$a, b=$b => q=".(int)($a / $b)."r=".($a % $b).") => ".$a .' = '.$b.'*'.(int)($a / $b).' + '.($a % $b); }
Recent Comments