NairuS

Aller au contenu | Aller au menu | Aller à la recherche

mercredi, février 29 2012

Faire un compteur de caractères sur plusieurs champs avec JQuery.

Dans le cadre d'une évolution de nos outils, j'ai dû créer un compteur javascript pour 4 champs d'un formulaire.

L'objectif étant de prévenir l'utilisateur qui saisit le contenu que ces champs dépassent le nombre de caractères maximum requis pour un affichage optimal selon la charte graphique.

Ca n'est pas un exercice difficile mais j'ai trouvé intéressant de partager l'astuce que j'ai utilisé.

Lire la suite...

dimanche, novembre 20 2011

Formattage de nombre en Javascript

Il y a quelques jours j'ai eu à formatter des montants de produits de nos sites à la française. C'est à dire avec un espace pour chaque milliers et une virgule pour les chiffres décimaux.

Or en PHP rien de plus facile car il existe une fonction pour ça: number_format.

Le seul problème de cette méthode est qu'en PHP 5.3 et antérieur, on ne peut pas passer de caractère supérieur à 1 bit comme un caractère html par exemple. Il faudra attendre la version 5.4 pour ça ;(

En l'occurence le vrai problème était que ces montants pouvaient changer en javascript selon des choix possible avec des boutons radio et sans appel ajax.

J'ai donc eu besoin d'écrire une fonction javacsript qui devait faire la même chose que la fonction PHP:

Lire la suite...

dimanche, février 20 2011

Surcharger les getter/setter magique de Doctrine

Hello,

Pour continuer la série de billets sur mon plugin, voici une dernière astuce que j'ai mis en place.

J'avais besoin que mon modèle ait un comportement spécial sur un champ en particulier.
En base il est de type "LONGTEXT" pour me permettre de stocker une chaine de caractère encodée en JSon.
Le "getter" doit me renvoyer le tableau indéxé avec la fonction "json_decode" et le "setter" doit encodé un tableau indéxé avec la fonction "json_encode".

L'objectif étant de pouvoir créer et configurer un formulaire avec des champs dynamiques.

Lire la suite...

dimanche, février 13 2011

Créer des routes dynamiques dans un plugin

Hello,

Dans le billet précédent j'ai fait référence à un plugin que j'ai développé.
Le sujet d'aujourd'hui porte sur la configuration dynamique des routes de ce dernier à l'instar de sfGuardPlugin.

Pour qu'un plugin avec des modules soit le plus modulaire et flexible possible, il faut pouvoir configurer les modules à activer et les routes à créer dynamiquement selon l'application souhaitée.

Lire la suite...

lundi, janvier 31 2011

Configurer le chargement d'une lib js dans un plugin symfony

Hello,

Récemment j'ai été confronté à plusieurs problématiques quant au chargement d'une librarie jQuery au sein d'un plugin.

D'abord il fallait pouvoir charger les librairie javascript du plugin en bas de page pour optimiser le temps de chargement comme le précaunise l'outil YSlow.
Ensuite permettre à l'utilisateur de choisir d'activer ou non le chargement de jQuery selon la configuration de son projet.
Enfin, en cas d'activation de jQuery dans le plugin, charger le fichier depuis un serveur CDN ou en local si le serveur ne répond pas.

Lire la suite...

dimanche, janvier 16 2011

Petits trucs et astuces avec Subversion

Hello,

Tout d'abord je vous souhaite à tous une bonne année 2011 (c'est jusque fin janvier je crois, je suis encore dans les temps).
Que cette année soit remplie de beaux projets! 

Mais ça je le sais déjà :)

Le sujet de mon billet ne porte pas que sur mes voeux de nouvelle année mais sur quelques trucs et astuces que j'ai découvert récemment (ou pas) en utilisant svn.

<parentheses>
A l'heure où GIT devient de plus en plus incontournable, je reste fidèle à Subversion.
Mais je pense que ces 2 systèmes de versioning sont très performants et qu'il faut apprendre à les maitriser pour pouvoir faire un travail de qualité.
</parentheses>

Lire la suite...

samedi, octobre 16 2010

Faire un backup de tous les dépôt svn

Hello,

C'est bien de vouloir sauvegarder tous les dépôts svn.
Mais quand il y a un centaine de projets sur un serveur c'est plus sympa d'avoir un script qui le fait tout seul.

Lire la suite...

samedi, octobre 9 2010

Nouveau projet open source

Hello,

Un petit post pour annoncer la création d'un nouveau projet: Packages Dispencer.

Récemment j'ai eu à adapter le projet pearhub pour mon bouleau.
C'est une application qui diffuse des librairies php via son propre canal PEAR grâce au projet pirum de Fabien Potencier.

L'objectif était de capitaliser les plugins symfony métiers développés en interne pour nos clients.
Ce qui permet de bien gérer l'évolution des librairies et d'installer les dernières versions des plugins via une simple ligne de commande une fois le canal enregistré dans l'application:

php symfony plugin:add-channel my-channel
php symfony plugin:install my-channel/myPlugin

Lire la suite...

samedi, mars 27 2010

explicitType dynamique pour AMFPHP

Hello,

Je sais que cela fait un bon moment que je n'ai pas écrit d'article sur mon blog.

Et pour cause, j'étais en train de développer mon propre framework PHP pour me faciliter la tâche avec les applications AMFPHP.

J'utilise cette occasion pour annoncer officiellement la sortie de la version 1.0 de kassiop.

La plupart des classes du framework ont été unitestées avec PHPUnit 3.4.9.

La documentation a été générée avec PHPDocumentor 1.4.3 et est en ligne ici.

Ce framework permet d'automatiser une bonne partie des développements avec AMFPHP et notamment la déclaration du 'explicitType' des ValueObject.

Lire la suite...

dimanche, janvier 10 2010

Personnaliser les logs dans Symfony

Il y a quelque temps j'ai été confronté à une problématique de gestion des logs dans mon application Symfony.
Face à des retours d'utilisateurs de plus en plus nombreux, notre client nous a demandé de tracer les problèmes sur les différentes actions du site.

Le problème était que je voulais stocker les logs dans des fichiers séparés selon les actions symfony.
La classe sfAggregateLogger permet de définir plusieurs fichiers de log mais il n'y a avait aucun moyen de diffuser un log uniquement sur un fichier de cette classe.

Lire la suite...

lundi, décembre 21 2009

La class sfYaml

Ce tuto va vous expliquer comment utiliser cette classe qui peut être forte utile.

Dans un de mes derniers projets je devais mettre à jour une correspondance de données entre 2 différentes sources.

Je recevais d'un côté un identifiant envoyé par un script externe en GET et je devais faire une connexion SOAP à une autre BDD pour finir l'action demandée par l'utilisateur.

Etant donné que je n'avais pas de BDD côté symfony, j'ai commencé par ajouter les données envoyées dans le fichier app.yml du front.

Puis j'ai créé une classe utilitaire pour faire la correspondance.

Cette technique présentait 2 défauts:
1- Lors de mise à jour des données envoyées, il faut modifier la class utilitaire et le fichier app.yml
2- Les tests unitaires de la méthode sont impossibles car elle faisait appel au fichier app.yml via la méthode sfConfig::get() et ce fichier n'était pas mis en cache.

J'ai donc trouvé une autre technique bien meilleures à mon gout.

Lire la suite...

mercredi, octobre 7 2009

Astuces pour des projets à configuration multiple

Lorsque l'on travaille à plusieurs sur un projet avec le SVN, on a souvent des conflits de configurations à cause de chaque environnements de développement.
Plutôt que de réfléchir à avoir chez chaque acteur le même environnement, je vais tenter de proposer une solution pour en avoir une par environnement.

Quelles sont, en générale, les configurations identique que l'on retrouve dans chaque environnement?
 1) La configuration de la Base de Données
 2) Les librairies, framework externe aux projets

Lire la suite...

samedi, septembre 19 2009

Faire de l'AMF Remoting avec Symfony

Hello,

Ces derniers temps j'ai pas mal eu de bouleaux en Symfony essentiellement et je suis content d'avoir pu terminé ce tutoriel.

Il s'adresse essentiellement aux développeurs symfony ou à ceux qui souhaitent s'y mettre. Des notions d'AS3 et de pattern MVC sont également importantes à avoir.

Bref, vous l'aurez compris, c'est un tutoriel pour développeurs expérimentés.

Pour cette démonstration j'utiliserai le framework applicatif de Vegas AST'r avec son exemple eGallery pour la partie ActionScript.

Ce tutoriel est réalisable sur tout support (Linux, MAC, Windows).
Je tâcherais de données les tips pour ces 3 supports.

Je passerai les détails de l'utilisation du SVN mais personnellement je travaille toujours avec dans la mesure du possible.
Je donnerai les conseils principaux concernant la structure symfony.
Pour les débutant en symfony, je vous conseille fortement de vous familiariser avec le framework en suivant ce tutorial.

Lire la suite...

dimanche, juin 28 2009

Test de bench avec l'instruction 'with' en AS3

Hello,

Il y a quelques jours j'ai appris une autre méthode de développement utilisée massivement dans le framework Symfony: le Fluent Interface

Je trouvais ça pas mal à tester en action Script 3 mais au final c'est une méthode lourde qui oblige à créer des méthodes setCustom pour renvoyer l'instance de l'objet.

En AS3 les propriétés virtuelles get/set sont bien plus performantes à mon sens.

Du coup après en avoir discutér avec eKa, j'ai voulu tester la rapidité de l'instruction 'with' en AS3.

Le résulat est édifiant. L'instruction "with" est quasiment 3 fois plus lente que la méthode classique.

Lire la suite...

vendredi, mars 27 2009

Supprimer les tags bom ' ' des fichiers UTF-8

Hello,

Hier, j'ai eu un problème avec un script d'upload php sur un de mes serveurs en ligne. Mon script génére grace à fpdf un pdf dynamique et l'upload à la volée.

Lors du test en local, j'ai eu un problème du genre : Warning: Cannot modify header information - headers already sent by (output started at script.php:X)

Sur le site de FPDF, ils indiquent la marche à suivre dans la question 9 de la FAQ. Il faut rajouter la function ob_end_clean(); pour vider les headers envoyés au serveur.

Ce que je fis. Mon problème fut résolu en local. Une fois passé en ligne, j'ai eu à nouveau le même message d'erreur à la différence qu'au début de mon script, avant ma balise PHP j'avais ces caractères  qui faisaient que le script ne pouvait pas lancer le téléchargement.

En cherchant à résoudre ce problème avec mon ami Google, j'ai trouvé la solution.

En fait certains de mes fichiers étaient encodés en UTF-8 avec BOM avec Eclipse et c'est ce qui créa ce problème en ligne. Pour supprimer ces caractères disgracieux, j'ai trouvé un logiciel gratuit et open-source qui permet de supprimer ces caractères de tous les fichiers dans un répertoire.

http://hidalgoemmanuel.info/csharp-net/supprimer-les-tag-bom-dans-fichier-utf-8.html

Mon problème a été résolu en deux temps, trois mouvements!! Cool !!

A++ NairuS ;)

dimanche, mars 1 2009

AMPPHP intégré dans WordPress

Hello,

Un post rapide pour diffuser une info à mon sens importante pour les développeurs Flash/PHP comme moi!!

Un nouveau projet open source sur google code vient d'être publié.

Il se nomme AWI (AMFPHP WordPress Integration).

J'ai eu l'info dans mes RSS et il me semble pas mal de le diffuser sur mon blog.

Ce serait un plug-in AMPPHP dans WordPress pour gérer les nuages de Tags.

Je n'ai pas encore approfondi le projet mais il me semble intéressant.

A++ NairuS ;)

lundi, février 23 2009

Ma première réalisation en ligne

Bonjour,

Un petit post rapide pour dire que le premier site réalisé entièrement par moi est en ligne depuis une semaine.

C'est le site galerie d'un couple d'amis qui font du théâtre, de la vidéo, de l'illustration et de la photo.

J'utilise des techno comme CakePHP pour le coeur du site et Ast'r pour la galerie photos.

www.unoeildanslemonde.fr

NairuS ;)

mardi, février 3 2009

Attention aux SMS frauduleux

Hello,

Depuis plusieurs mois des SMS avec un numéro de type 089... circulent sur nos mobiles en nous disant ce genre de messages : « salut, c'est moi....rappelle-moi au 089...... » « ca m'amuse pas de t'envoyer des SMS... ».

Attention si vous répondez vous allez faire le régal de votre opérateur de téléphone et le malheur de votre portefeuille ;)

Je fais ce post rapide pour mettre en garde encore ceux qui n'auraient pas été victimes de ces SMS frauduleux.

Allez voir cet article : http://www.zdnet.fr/actualites/telecoms/0,39040748,39386922,00.htm?xtor=RSS-1

A++ NairuS ;)

samedi, janvier 31 2009

Styliser un LabelButton de LunAS en IoC

Hello,

Ce tuto s'adresse plus particulièrement à des utilisateurs avancés de l'IoC de VegAS.

Il faut avoir des base de design pattern et avoir lu la documentation complète d'eKameleon  à ce sujet ici.

Je souhaitais expliquer comment changer le style des buttons de LunAS en général et en particulier un LabelButton.

Pour ceux qui utilise l'extension LunAS de VegAS doivent savoir que les composants sont construits grâce à 2 classes : le builder et de style.

C'est la classe qui gère le style qui va nous intéresser ici en l'occurence LabelButtonStyle.

Pour styler pleinement ce genre de bouton il faut combiner deux stratégies :

  • La feuille de style CSS.
  • Les propriétés à modifer dans la config.

Lire la suite...

vendredi, janvier 30 2009

Homer comme page d'Erreur 404 trop top!

Hello,

J'adore cette page d'erreur 404 façon Homer Simpon.

http://www.artthugstudios.com/error404.html

;)

PS : trouvé dans cette news http://www.smashingmagazine.com/2009/01/29/404-error-pages-one-more-time/

- page 1 de 2