Cloner / copier un objet de l’intérieur ou de l’extérieur

Lorsque vous utiliser la programmation orientation objet vous avez parfois besoin de faire des copies identiques d’objet pour le modifier sans altérer l’original.

Le premier obstacle en PHP est que tous les objets sont des références. Alors si vous essayez de faire comme les autres variables vous aurez un résultat inattendu.

En PHP toutes les valeurs scalaires sont des copies ils ont donc un espace mémoire diffèrent. (Prenez note : Pour une question d’optimisation PHP est asse intelligent pour ne pas allouer un nouvel espace mémoire tant que la valeur n’est pas modifier.)

1
2
3
4
5
6
$name = 'Yanik';
$newName = $name;
$newName = 'Pascal';
 
echo $name; // Yanik
echo $newName; // Pascal

Read the rest of Cloner / copier un objet de l’intérieur ou de l’extérieur

Posted in Articles PHP by Yanik Lupien. No Comments

Rapport de densité Google Map

Nouvelle réalisation JavaScript. L’entreprise Meb Web fait des concours Facebook. Leur besoin était d’être en mesure d’offrir à leur client un rapport géographique qui affiche la densité des inscriptions.

Rapport Google

Tags: , , ,
Posted in Javascript by Yanik Lupien. No Comments

Lite Brite en Javascript / Canvas

Voici l’histoire de la naissance d’un petit projet HTML5 / Javascript.

Un soir où je soupais avec ma chère amie Marie-Eve de Meb Web. Nous avons discuté du projet Noël en Lumière qu’Absolunet a fait pour la Tablée des Chefs, un organisme qui vient en aide aux familles dans le besoin.

Je lui dis comme ça sans trop penser…

L’application en soi est très simple à faire… Je suis sûre qu’en une soirée je pourrais faire une version basique utilisable qui ressemble à ce qu’Absolunet a fait.

Je venais de me lancer un petit défi personnel.

Read the rest of Lite Brite en Javascript / Canvas

Posted in Preuve de concept by Yanik Lupien. No Comments

Les associations mentales tuent la productivité

Lorsque vous regardez un code, et que celui-ci n’est pas explicite ou utilise des noms non significatifs, vous devez retenir la signification de certain élément dans le but de comprendre la suite. Ou lorsque vous devez constamment vous remettre en contexte pour comprendre.

Par exemple lorsque vous lisez $object = new User(); vous devez vous créer une association mentale (objet signifie User) et la retenir pour être en mesure de comprendre la suite du code.

Si vous avez eu a la place $user = new User();, vous n’avez pas à vous référer à une autre ligne a un autre endroit dans le fichier ou retourner dans votre mémoire pour vous souvenir de l’association mentale. La variable est explicite et dit exactement ce qu’il y a l’intérieur. Résultat la compréhension du code s’en retrouve amélioré et facilité.

Une instance de la class User est déjà un concept abstrait puisqu’il n’est pas possible de savoir si c’est le User Roger ou Alphone.

Si vous avez une seule association, vous n’aurez probablement pas de problème à lire et comprendre. Imaginez, si vous devez faire référence à plusieurs associations, vous risquez d’avoir beaucoup de difficulté à lire et comprendre le code.

Read the rest of Les associations mentales tuent la productivité

7 idées pour s’améliorer en programmation PHP

1.L’utilisation des constantes pour le bien de vos yeux

Trop souvent les programmeurs PHP ont utilises les constantes pour différent usage tel que configuration, langage, variable globale. Une constante devrait être une valeur qui ne change pas tout au long de l’existence de l’application et non tout au long de l’exécution du script.

Par exemple si vous avez une classe RGB vous pourriez avoir la constante RGB::RED = #FF0000 cette valeur est une valeur constante elle ne changera jamais. Ce n’est pas d’avoir une valeur qui ne change pas tout au long de l’application, mais bien une valeur qui est constante qui ne change pas.

L’utilité principale des constantes est de clarifier votre code, de donner un nom plus humain et facile a lire. Par exemple, vous avez surmènent déjà eu des fonctions / method telle que

1
$logger->log('blabla', 3, 1 | 4);

Mettez-vous a la place dans les souliers du programmeur neuf qui arrive et regarde cette ligne. Au premier coup d’oeil, il est facile de voir que l’ont veut logger « blabla » mais pour le reste… Aucune idée de ce que c’est.

Voici des exemples d’une meilleur utilisation des constantes.

1
2
3
4
5
$logger->log(
   'blabla',
   ILog::LEVEL_WARNING,
   ILog::OPTION_DELAYED | ILog::OPTION_MERGE
);

De cette façon, nous ne somme pas obliger d’aller voir la définition de la méthode pour la comprendre que le 2e paramètre est le niveau sévérité du message et que le 3e sont les options.

Voici l’exemple du RGB.

1
2
3
4
5
6
7
8
9
10
11
12
class RGB {
  const RED   = '#ff0000';
  const BLUE  = '#0000ff';
  const GREEN = '#00ff00';
  ...
}
 
// Sans constante
$color = new RGB('#ff0000');
 
// Avec constante
$color = new RGB(RGB::RED);

Read the rest of 7 idées pour s’améliorer en programmation PHP

Posted in Articles PHP by Yanik Lupien. No Comments

Facebook Widget

En collaboration avec Visicom Média, j’ai participé à la programmation ainsi qu’aux découpages et l’intégration d’un widget pour la VMN Toolbar. Ce widget permet de rester connecté à son compte Facebook. Une des particularités de cette application est qu’il utilise les serveurs de Facebook directement pour tous le contenue, donc une fois connecté, aucune requête n’est faite au serveur de Visicom Média.

Technologies : PHP, Javascript/jQuery, XHTML/CSS, Facebook API

Adresse : http://apps.mystart.com/partners/default/widget_details.php?wid=1324

Read the rest of Facebook Widget

Posted in Outils internet by Yanik Lupien. No Comments

MyStart.com

En collaboration avec Visicom Média, j’ai participé aux découpage, intégration et développement de certaines composantes de ce service de recherche en ligne tel que la boîte de recherche sur la page d’accueil ainsi que celle  sur la page de résultat. J’ai aussi développé le sélecteur de thème sous la boîte de recherche. Toutes les composantes sont entièrement dynamiques au niveau de la largeur. J’ai aussi développé l’outil de proposition de mot clé.

Technologies utilisées : jQuery, XHTML/CSS

Adresse : http://www2.mystart.com/

Read the rest of MyStart.com

Posted in Développement avancé by Yanik Lupien. No Comments

Groupe Galland – Site web

Dans ce projet, réalisé avec Tapage Communication, j’ai découpé, intégré et développé le site web français et anglais. J’ai développé des pages personnalisées pour l’affichage  d’autobus selon une structure de données précises. J’ai monté les différents formulaires pour la saisie de données sur le site web. J’ai aussi utilisé la libraire PHPExcel pour la production de rapport de satisfaction selon les données entrées sur les différents rapports par les clients. Pour la partie administrative, j’ai développé un plugin WordPress pour l’édition de données spécifiques aux autobus Groupe Galland. L’objectif était de simplifier et de normaliser les informations de chaque fiche d’autobus.

Technologies utilisées : PHP/MySQL, jQuery, XHTML/CSS et GD, PHPExcel, WordPress

Adresse :  http://www.autobusgalland.com/

Read the rest of Groupe Galland – Site web

Posted in Découpe et intégration CMS by Yanik Lupien. No Comments

VMN Toolbar – Web TV Widget

Pour Visicom Media, j’ai développé un widget pour la VMN Toolbar.

Technologies utilisé : PHP/MySQL, jQuery, AJAX, XHTML/CSS, JSON, VMN Toolbar

Adresse : http://apps.mystart.com/partners/default/widget_details.php?wid=1300

Read the rest of VMN Toolbar – Web TV Widget

Posted in Développement avancé by Yanik Lupien. No Comments

Centre bodyshop – Section membres

Pour Tapage Communication, j’ai monté la section membre des centres bodyshop.

Technologies utilisées : PHP/MySQL, XHTML/CSS, jQuery

Adresse : http://www.centrebodyshop.com/fr/services

Read the rest of Centre bodyshop – Section membres

Posted in Découpe et intégration CMS by Yanik Lupien. No Comments