Archives de catégorie : PHP

Cette catégorie regroupe l’ensemble des articles traitant du langage PHP

Cours gratuit consacré au framework PHP SILEX

J’ai le plaisir de vous annoncer la disponibilité d’un cours gratuit, téléchargeable librement au format PDF, sur mon compte Github.

Ce cours est consacré au framework PHP SILEX. Je l’ai rédigé dans le courant du mois de septembre 2016, et j’ai eu la chance de pouvoir le « rôder » avec des élèves qui suivaient une formation au développement informatique, dans le cadre d’une reconversion.

SILEX est un micro-framework, c’est à dire un framework « léger », facile à apprendre et à mettre en oeuvre. SILEX est bâti sur les fondations du framework Symfony, dont il utilise la plupart des composants, tout en en simplifiant l’utilisation.

J’ai conçu ce cours de manière à ce que l’apprenant soit le plus autonome possible. Si vous avez de bonnes bases en PHP, vous devriez pouvoir aller au bout du cours sans difficulté et sans aide extérieure. Si vos bases en PHP sont fragiles, rien ne vous empêche d’essayer, même si certaines opérations vous sembleront peut être confuses, ou trop complexes.

Qu’apprendrez-vous dans ce cours consacré à SILEX ? Eh bien, à peu près tout ce qu’il faut savoir quand on souhaite développer des applications webs de niveau professionnel. Vous apprendrez, par exemple, comment créer :

  • des pages dynamiques avec le moteur de templating Twig,
  • des menus déroulants avec le framework CSS Bootstrap,
  • des formulaires avec validation (toujours via Twig),
  • des modules de gestion de type CRUD (càd des modules regroupant les 4 opérations de base que sont la création, l’affichage, la mise à jour et la suppression d’une donnée « métier »)
  • des listes avec barre de pagination et tri dynamique des colonnes,
  • des fonctions d’export de données aux formats PDF, CSV, XML et JSON.
  • des tableaux de bord graphiques, avec le projet Highcharts.

Vous l’aurez sans doute compris, j’ai mis l’accent dans ce support de cours sur le développement d’applications « métier ». Cela m’a conduit à intégrer à ce cours des composants d’éditeurs tiers, comme Bootstrap et Highcharts. Je n’ai pas souhaité rédiger une présentation détaillée de chacun des composants utilisés, ce n’est pas le sujet de ce cours, mais j’ai fourni – quand cela me semblait utile – des liens vers des sites approfondissant certains des sujets traités.

Bonne lecture !!

Grégory

P.-S. : Pour télécharger le support, c’est par ici.

Générer des Graphes en SVG avec PHP

J’avais lu il y a quelques temps un article très intéressant de Brian Venn (Software Engineer, IBM), publié sur le site DeveloperWorks, et qui s’intitulait :
« Render dynamic graphs in SVG »

Je vous encourage vivement à lire son article dont le lien est le suivant :

www.ibm.com/developerworks/xml/library/x-svggrph/

Les exemples de code fournis par Brian en complément de son article étaient écrits en Java, et j’ai eu envie de les réécrire en PHP, pour voir si je parvenais à un résultat intéressant.

J’ai obtenu un premier jet qui était un portage assez basique des classes Java écrites par Brian. Puis j’ai retravaillé ce code de manière à refactoriser certains éléments et à éliminer un peu de code redondant d’une classe à l’autre. J’ai également ajouté une interface pour améliorer la robustesse du code, et j’ai ajouté les méthodes setHeight() et setWidth() de manière à pouvoir définir dynamiquement les hauteurs et largeurs des graphes (elles étaient définies « en dur » dans la version proposée par Brian).

Au final, j’ai abouti à une classe modèle (SVGChartModel) servant de socle à trois classes instanciables permettant de générer les 3 types de graphes décrits par Brian Venn dans son article : SVGBarchart, SVGLineGraph et SVGScatterGraph.

La génération d’un graphe SVG se fait très simplement au sein d’un script PHP (ici le script barchart.php) :

$test = '10 20 30 40 50 60 70 100 25';
$graph = new SVGBarchart($test);
$graph->setWidth(800) ;
$graph->setHeight(600) ;
$graph->drawGraph();
echo $graph->render();

On note que les données sont ici transmises « en dur » via la variable $test, mais on peut les charger dynamiquement à partir de n’importe quelle source (XML, base de données, CSV…).

Ce script PHP est « appelé » dans une page HTML au moyen de la balise HTML « object », comme vous le verrez en analysant le code source joint à cet article.

Voici pour le principe général, pour le reste, je vous laisse le soin d’analyser le code PHP que je joins à cet article sous la forme d’un fichier Zip.

Exemple de graphes obtenus à partir des classes PHP jointes à cet article :

graphes_exemples

Code source à télécharger :

FichieSVGGraphDevWorksr ZIP

Lancement de script PHP en mode asynchrone sur IBMi

L’exécution de traitements en mode asynchrone est une problématique que les développeurs IBMi connaissent bien, avec l’utilisation des bonnes vieilles commandes SBMJOB (pour le lancement de travaux batchs) et WRKJOBSCDE (pour l’accès au planificateur de travaux).

Dans le contexte d’une application PHP s’exécutant dans un environnement IBM i, il est tout à fait possible d’utiliser ces même outils de soumission de travaux. Je vous indique la méthode de base ci-dessous, et ensuite je vous présenterai une méthode alternative, que je trouve beaucoup plus pratique, à savoir ZendJobQueue.

Cliquez ici pour lire l’article dans son intégralité.