Le Blog

Le blog laboratoire de F.L.D. Studio
0

Debug mon PHP

Bug

Traquer le bug

On le sait debuger du PHP c'est compliqué car ce langage qui permet de programmer à l'aide d'un simple bloc-note ne dispose pas toujours d'un IDE (gratuit ou simple) qui lui soit dédié. On est donc loin (très loin) des outils de débuggage classique que l'on peut trouver avec les langages de développement de clients lourds type Visual Basic, Windev, Clarion, Delphi, etc... Adieu mode pas à pas, espionneur de variables, point d'arret et autre facilitateur d'interrogation de variables.

Echo de variables, print_r, var_dump() ou debug_backtrace() sont des outils rustiques qui quoiques fiables ne fournissent pas toujours une information très lisible.

On peut bien sur développer sa propre fonction de log des erreurs comme celle-ci qui permet de desactiver le gestionnaire d'erreurs de PHP et de loger les erreurs dans un fichier (ici : \errorlog\errorlog.html) 

set_error_handler('GestionErreur'); à placer avant utilisation de la fonction
//
function GestionErreur ($errno, $errstr, $errfile, $errline, $errcontext) // Gestionnaire Erreurs
// 
{ 
//print $errno.'<br>'; NE GERE QUE LES ERREURS MYSQL
/* global $sql; // test si probleme vient de sql
 if ( eregi('sql', $errstr) )
 {
 $MYSQL_ERRNO = mysql_errno();
 $MYSQL_ERROR = mysql_error();
 $errstr .= "Erreur MySQL : $MYSQL_ERRNO : $MYSQL_ERROR";
 $sql = "Erreur MySQL : $MYSQL_ERRNO : $MYSQL_ERROR";
 }
 else 
 {
 $sql = NULL;
 } 
*/ 
 $errorstring = '<h1>'.date('d-m-Y H:i:s') .'</h1>'; // Erreur
 $errorstring.= '<p><h2>Erreur Script</h2></p>'; 
 $errorstring .= "<p><br/>$errstr<br/>(# $errno).</p>\n"; 
 //if ($sql) $errorstring .= "<p>SQL query : <fieldset>$sql</fieldset></p>\n";
 $errorstring .= "<p>Erreur sur la ligne <b>$errline</b> du fichier '$errfile'.</p>\n";
 $errorstring .= "<p>Script : <b>'{$_SERVER['PHP_SELF']}'.</b></p>\n";
 
 if (isset($errcontext['this'])) // Environnement Objet 
 {
 if (is_object($errcontext['this'])) 
 {
 $errorstring.='<p><h3>Objet</h3></p>';
 $classname = get_class($errcontext['this']);
 $parentclass = get_parent_class($errcontext['this']);
 $errorstring .= "<p>Classe/Objet : '$classname', <br>Classe/Parent : '$parentclass'.</p>\n";
 }
 }
 
 $errorstring.='<p><h3>var_dump(SERVER)</h3></p>'; // Environnement Serveur
 ob_start(); // Envoi resultat de l'écran dans une variable 
 var_dump($_SERVER); // Dump variables environnement
 $errorstring.=ob_get_contents(); // Recupere buffer dans la variable
 ob_end_clean(); // Vide le buffer 
 
 $logfile = $_SERVER['DOCUMENT_ROOT'] .'/errorlog/errorlog.html'; // Définition chemin fichier log : (racine site)\errorlog\errorlog.html
 error_log($errorstring.'<hr/>', 3, $logfile); // Enregistrement de l'erreur
 die(); // Ne pas executer le gestionnaire d'erreur de PHP
}

ou utiliser des bibliothèque de codes prévues à cet effet.

Ressources

Extention Firefox

Catégories: Développement WEB

Tags: Outil

Commentaires: Pas de commentaires

0

Wamp Server

Logo WAMP

Développement Web

Télécharger et installer Wamp Server, le configurer selon ses besoins.

Exemple : pour utiliser le SSL

  1. Vérifier ssl_module dans le module Apache.
  2. Vérifier php_openssl dans les extentions PHP

Créer son propre certificat :  http://www.blog.florian-bogey.fr/installer-un-certificat-ssl-sous-wamp.html

Tutoriels vidéo

Installer Wamp
Wamp et Windows 8
Créer des Virtual Hosts Apache

Ressources

Catégories: Développement WEB, Vidéo

Commentaires: Pas de commentaires

0

Web Components

Logo Web Component

L'avenir de la conception pour le Web

 Si il y a bien une chose qui va révolutionner le développement de sites Internet, c'est les Web Components. Un Web component est bel est bien un composant pour le Web.C'est à dire une brique logiciel ayant une ou plusieurs fonctionnalitées et que l'on pourra utiliser de façon simple, pratique et standard pour concevoir des interfaces utilisateurs.

Comprendre les Web components aujourd'hui c'est prendre de l'avance sur les technologies de demain.

A l'heure du HTML5 nous pouvons utiliser la balise <video></video> pour afficher une vidéo avec un composant natifs propre au navigateur. La syntaxe est claire, simple et sémantique. Cette instruction est interprétée par le navigateur qui affiche alors un composant pleinement fonctionnel permettant de lire un fichier vidéo. Cette mécanique est transparente, c'est le navigateur qui "fait le travail" (à l'aide du Shadow DOM)

Les Web components vont permettre aux développeus de créer leurs propres balises HTML pour inserrer leurs widgets ou ceux des autres à l'intérieur d'une page HTML.

Sachant que les Web Components seront dotés de fonctions permettant de scruter le changement d'état du DOM et des modèles on comprend l'impact qu'il auront aussi sur la conception des Framwork de demain. Le binding entre l'interface utilisateur (HTML) et le code (JavaScript) et ses variables deviendra un élément naturel et simple du développement. Ce concept n'est pas sans rappeller un des aspects essentiel de la librairie AngularJS  qui pose effectivement les bases du Web de demain.

Conférence du 9 avril 2013 par Julien Vey à Paris, les Web Components en 10 points clés :

  1. Standard du W3C
  2. Soutenu par les 3 principaux acteurs du WEB (Google, Mozilla, Microsoft)
  3. Template
  4. Encapsulation
  5. Composition
  6. Encapsulation de style
  7. Réutilisabilité
  8. Observation du DOM
  9. Obervation du modèle
  10. Déjà La (?!!!)

La même conférence avec les slides :  http://www.infoq.com/fr/presentations/web-components

Ressources

Le site officiel : http://webcomponents.org/


Paris JS 16 - Web Components par ParisJS

Catégories: Développement WEB, Vidéo

Commentaires: Pas de commentaires