Devops for Growth
112.1K views | +2 today
Follow
Devops for Growth
For Product Owners/Product Managers and Scrum Teams: Growth Hacking, Devops, Agile, Lean for IT, Lean Startup, customer centric, software quality...
Curated by Mickael Ruau
Your new post is loading...
Your new post is loading...

Popular Tags

Current selected tag: 'PHP'. Clear
Scooped by Mickael Ruau
June 3, 2014 12:43 PM
Scoop.it!

PEPr :: Details :: File_EDIFACT

A php package to create EDIFACT interchanges.
This package provides generic data classes as well as high-level class to create DIRDEB messages.
Further application classes for other EDIFACT message types can easily be developed.
No comment yet.
Scooped by Mickael Ruau
May 12, 2014 8:29 AM
Scoop.it!

Jean-François Lépine - Qualité logicielle et métriques de code - comment fixer les valeurs limites ?

Jean-François Lépine - Qualité logicielle et métriques de code - comment fixer les valeurs limites ? | Devops for Growth | Scoop.it

Plus j'avance dans la réalisation de PhpMetrics, plus une question se pose : je dispose de métriques sur le code source, mais à partir de quel moment alerter l'utilisateur ? Quelle est la valeur idéale ? Quelles sont les valeurs minimales et maximales ?

Mickael Ruau's insight:


Je vous propose un petit retour d'expérience sur la manière dont j'ai tenté de fixer ces valeurs pour PhpMetrics. Ce qu'il faut savoir, c'est que j'ai procédé itérativement selon la manière suivante :

  1. utilisation de valeurs théoriques
  2. pondération de la théorie
  3. analyse démographique
  4. ajustement par l'expérience
No comment yet.
Scooped by Mickael Ruau
May 3, 2014 4:55 AM
Scoop.it!

Qu’est-ce qu’un code source de qualité ?

Qu’est-ce qu’un code source de qualité ? | Devops for Growth | Scoop.it

Le code source est l'ADN d'une application. Quand on regarde sous le capot d'un site Web ou d'un logiciel, on peut trouver tout et n'importe quoi. 

Mickael Ruau's insight:

Qu’est-ce qui fait un code source de qualité ? 6 éléments de réponse.

1. Une architecture claire2. Un code source documenté3. Des fonctions mutualisées4. Un code source compréhensible par tous5. Un code qui ne réinvente pas la roue6. Un code source testé unitairement
No comment yet.
Scooped by Mickael Ruau
March 18, 2014 6:08 AM
Scoop.it!

PMD / Guide Open Source

PMD / Guide Open Source | Devops for Growth | Scoop.it

PMD, connu également sous le nom de "Project Mess Detector", ou de "Project Meets Deadline" est un outil d'analyse statique de code destiné à détecter les erreurs de programmation les plus courantes.

Mickael Ruau's insight:


En utilisant un système de règles extensibles, PMD est capable de détecter les try-catch vides, le code mort, code sur-compliqué, copié-collé de code (grâce au plugin CPD). PMD est également capable de calculer la complexité cyclomatique d'un code, indicateur intéressant dans l'évaluation de la qualité logicielle.
PMD est sous une licence de type BSD.


PMD analyse le code source Java, le code source JavaScript et les fichiers XML/XSL. Il existe un équivalent pour analyser le code PHP (PHPMD, a.k.a. PHP Mess Detector).

Les règles peuvent s'écrire à travers des expressions XPath, des classes Java (ou PHP pour PHPMD).

No comment yet.
Scooped by Mickael Ruau
March 8, 2014 2:06 PM
Scoop.it!

iniscan: a security scanner for php.ini — blog.phpdeveloper.org

There’s lots of sites out there that offer recommendations about how you should set up your config file to follow along with the best security practices, but they’re either all the same thing (copy and pasted?) or refer to settings that are now deprecated. So, in an effort to make it easier for developers (and sysadmins) to set up a php.ini file with a more secure configuration, I created the “iniscan” tool (catchy name, huh?).

Mickael Ruau's insight:

PHPSecInfo was a web-based tool that you could load in a browser and report back similar information as what the iniscan tool reports. A lot of the rules in the iniscan tool are inspired by the ones he defined.

No comment yet.
Scooped by Mickael Ruau
February 7, 2014 4:33 AM
Scoop.it!

Indice de maintenabilité d’un projet PHP et Jenkins | Blog de Jean-François Lépine

Indice de maintenabilité d’un projet PHP et Jenkins | Blog de Jean-François Lépine | Devops for Growth | Scoop.it

Dans mon dernier billet je vous avais présenté un outil sur lequel je travaille : PhpMetrics. Cet outil permet de calculer différents indicateurs sur le code source, dont l’Indice de Maintenabilité, le Poids des commentaires, la Difficulté d’un code, etc.

Mickael Ruau's insight:

Si vous n’avez jamais utilisé Jenkins, je vous invite à lire les excellents billets de Pascal Martin sur l’installation et la configuration d’un premier projet PHP. Et si vous êtes un peu fainéant, vous pouvez aussi directement utiliser la procédure d’installation expliquée sur sur jenkins-php.org.

No comment yet.
Scooped by Mickael Ruau
January 28, 2014 9:42 AM
Scoop.it!

Evaluer la qualité de code avec PHP Mess Detector | WEB-d - Développement Web

Evaluer la qualité de code avec PHP Mess Detector | WEB-d - Développement Web | Devops for Growth | Scoop.it
Evaluer la qualité de code avec PHP Mess Detector
Mickael Ruau's insight:

PHP Mess Detector (PHPMD) permet d'évaluer la qualité de code source PHP. Il détecte les variables et les méthodes non-utilisées, les noms de variable trop court ou trop long, les méthodes trop complexes, etc.

http://phpmd.org/

No comment yet.
Scooped by Mickael Ruau
January 15, 2014 10:56 AM
Scoop.it!

Développer un plugin GLPI

Développer un plugin GLPI | Devops for Growth | Scoop.it
Création d'un plugin pour GLPI
Mickael Ruau's insight:

Ce tutoriel aborde la création d'un plugin pour le logiciel de gestion de parc et d'incident : GLPI. Aucune connaissance sur le développement de GLPI n'est nécessaire, par contre les bases du développement en PHP sont indispensables ainsi qu'une connaissance du langage objet.

Dans ce tutoriel j'utiliserai une bibliothèque externe nommée Smarty (moteur de templates) pour gérer toute la partie « Vue » du plugin.

No comment yet.
Scooped by Mickael Ruau
January 14, 2014 10:38 AM
Scoop.it!

PHP Security Audit Tool

This is an open source tool to do static analysis of php code for security exploits
No comment yet.
Scooped by Mickael Ruau
December 16, 2013 7:04 AM
Scoop.it!

Arolla | Profitez des avantages de la programmation fonctionnelle, dans votre langage habituel

Arolla | Profitez des avantages de la programmation fonctionnelle, dans votre langage habituel | Devops for Growth | Scoop.it

Vous entendez parler de plus en plus souvent de programmation fonctionnelle, et c’est normal puisque ce style de programmation est essentiel pour profiter des processeurs multi-coeurs. Mais devez-vous changer de langage pour cela ? 

Mickael Ruau's insight:

Vous avez choisi Java ou C# pour vos projets ? Si ces langages orientés objet ne sont pas réputés pour leur possibilités en programmation fonctionnelle, il est tout à fait possible de programmer en Java ou C# dans un style fonctionnel. C’est même une excellente idée, et pas seulement pour la montée en charge  :

Propre : le style de programmation fonctionnel réduit la proportion de défauts en s’imposant des règles telles que l’interdiction de modifier l’état d’un objet ou l’obligation de garantir qu’une fonction ne doit avoir aucun impact sur le reste du programmeTestable :  le style de programmation fonctionnel favorise des fonctions pures qui manipulent de simples valeurs et qui sont donc extrêmement faciles à tester en isolation.Économique : le style de programmation fonctionnel permet d’écrire moins de code pour obtenir un même résultat en factorisant des portions de code réutilisable d’une façon plus agressive qu’en programmation objet classique ; cette réduction de la taille du code réduit encore davantage le nombre de défauts d’un programmeÉvolutivité du design : le style de programmation fonctionnel simplifie le design et permet donc de raisonner plus efficacement sur les changements à apporter, par exemple pour distribuer un traitement entre plusieurs cœurs ou machines, ou pour optimiser les performances d’un calcul en particulierAbordable : le style de programmation fonctionnel n’est pas du tout incompatible avec l’approche objet, et peut être mis en œuvre progressivement, sur du nouveau code ou sur du code legacy
No comment yet.
Scooped by Mickael Ruau
December 6, 2013 4:33 AM
Scoop.it!

Linux: 25 PHP Security Best Practices For Sys Admins

Linux: 25 PHP Security Best Practices For Sys Admins | Devops for Growth | Scoop.it
Here are twenty-five php security best practices for sysadmins for configure PHP securely under Linux, Unix, OS-X and BSD operating systems.
Mickael Ruau's insight:

Your PHP based server is now properly harden and ready to show dynamic webpages. However, vulnerabilities are caused mostly by not following best practice programming rules. You should be consulted further resources for your web applications security needs especially php programming which is beyond the scope of sys admin work.

References:PHP security - from the official php project.PHP security guide - from the PHP security consortium project.Apache suseexec - documentation from the Apache project.Apache 2.2 - security tips from the Apache project.The Open Web Application Security Project - Common types of application security attacks.Recommended readings:PHP Security Guide: This guide aims to familiarise you with some of the basic concepts of online security and teach you how to write more secure PHP scripts. It's aimed squarely at beginners, but I hope that it still has something to offer more advanced users.Essential PHP Security (kindle edition): A book about web application security written specifically for PHP developers. It covers 30 of the most common and dangerous exploits as well as simple and effective safeguards that protect your PHP applications.SQL Injection Attacks and Defense This book covers sql injection and web-related attacks. It explains SQL injection. How to find, confirm, and automate SQL injection discovery. It has tips and tricks for finding SQL injection within the code. You can create exploits using SQL injection and design to avoid the dangers of these attacks.
No comment yet.
Scooped by Mickael Ruau
November 27, 2013 5:49 AM
Scoop.it!

Automated Testing With Selenium2 And PHPUnit

Automated testing of web pages has been made even easier with the release of Selenium2. The PHPUnit test suite has kept pace with Selenium2 development and has integrated automated selenium tests into the already expansive toolkit.
No comment yet.
Scooped by Mickael Ruau
November 20, 2013 10:34 AM
Scoop.it!

À propos de PSR-0, PSR-1 et PSR-2 - mageekblog

Depuis quelques mois, les recommandations du PHP Framework Interoperability Group, ex PHP Working Group, ont beaucoup gagné en visibilité dans le monde des développeurs PHP grâce
Mickael Ruau's insight:

Pour rappel, PSR-0 a pour but d'éviter la mise en œuvre de plusieurs mécanismes d'auto-chargement de classe lorsque l'on utilise des composants provenant de projets différents.

 

Pour cela, elle définie un certain nombre de règles concernant à la fois le nom des fichiers, leur contenu ainsi que leur organisation.

 

Cette recommandation a maintenant plusieurs années, mais elle était restée confidentielle jusqu'à ce que composer la démocratise et elle fait maintenant pratiquement partie du vocabulaire courant des développeurs PHP, à tel point qu'elle a été l'un des principaux sujets de discussion au cours du dernier forum PHP, aussi bien parmi les conférenciers que parmi les visiteurs.

 

Fort de ce succès, le PHP Framework Interoperability Group a donc poursuivi ses travaux et a rédigé les recommandations PSR-1 et PSR-2, qui sont, de mon point de vue et à contrario, de la merde !

No comment yet.
Scooped by Mickael Ruau
May 26, 2014 3:36 PM
Scoop.it!

PHP_UML

A reverse engineering, metamodel driven tool that scans PHP files and directories, and delivers an UML/XMI representation of the classes / packages found. The XMI code that it generates can be imported into any UML modeling tool. It is available on PEAR.

No comment yet.
Scooped by Mickael Ruau
May 3, 2014 12:44 PM
Scoop.it!

SonarQube : Veiller à la qualité de son code | Blogdevphp.fr

SonarQube : Veiller à la qualité de son code | Blogdevphp.fr | Devops for Growth | Scoop.it

Soucieux de la qualité de votre code, vous pourrez utiliserSonarQube afin de l'analyser et avoir un rapport détaillé des modifications à apporter. Il peut analyser plusieurs langages comme Java, PHP, Python...

Ceci s'effectue par l'installation de plugins, sur le tableau de bord de la plateforme. SonarQube s'inscrit dans une vraie démarche qualité du code en cours de réalisation.

Il lévera des alertes sur la duplication de code, indiquera des erreurs qu'il jugera mineures, majeures, critiques..., vous pourrez voir directement dans l'interface le code incriminé. 

No comment yet.
Scooped by Mickael Ruau
April 27, 2014 6:48 AM
Scoop.it!

List of unit testing frameworks - Wikipedia, the free encyclopedia

List of unit testing frameworks - Wikipedia, the free encyclopedia

Check features a simple interface for defining unit tests, putting little in the way of the developer. Tests are run in a separate process, so Check can catch both assertion failures and code errors that cause segmentation faults or other signals. The output from unit tests can be used within source code editors and IDEs.

No comment yet.
Scooped by Mickael Ruau
March 18, 2014 6:02 AM
Scoop.it!

Intégration continue - PHP, Selenium et Xvfb - Partie 1 - Metal3d - Fedogeek

Depuis quelques mois je me suis penché sur les outils d'intégration continue pour les projets PHP. Il en existe un bon paquet, mais celui qui pour le moment répond le mieux à mes attentes reste phpUnderControl.

Mickael Ruau's insight:

Nous allons donc procéder à ces opérations:

  • installer les outils pear: phpcs, phpmd, phpcpd, phpunit
  • installer selenium IDE avec le plugin php (ces outils ne sont pas obligatoires mais rendent la tâche tellement plus simple...)
  • préparer un environnement X virtuel pour lancer les tests selenium
  • installer phpundercontrol
  • configurer la bête...
No comment yet.
Scooped by Mickael Ruau
February 13, 2014 6:09 AM
Scoop.it!

Architecture LAMP : la bonne stack PHP pour le Web ?

Architecture LAMP : la bonne stack PHP pour le Web ? | Devops for Growth | Scoop.it

Il y a quelques années l’architecture Web LAMP  était à la mode dans le monde opensource. De nos jours, la question se pose et le choix de cette stack PHP opensource nécessite une solide justification. Rapide tour d’horizon des alternatives.



Mickael Ruau's insight:

En conclusion, je vous livre sans surprise ma stack PHP favorite pour 2014 :

  • Nginx 1.4.5 (dispo depuis 2 jours) ;
  • MySQL 5.6
  • PHP 5.5
No comment yet.
Scooped by Mickael Ruau
January 28, 2014 9:57 AM
Scoop.it!

Tests PHPUnit | WEB-d - Développement Web

Tests PHPUnit | WEB-d - Développement Web | Devops for Growth | Scoop.it

Il est également possible de créer et exécuter les tests directement dans Netbeans.

Dans la fenêtre Tools -> Options, onglet PHP -> General, il faut ajouter le dossier de PHPUnit (généralement /usr/share/php/PHPUnit) au Global Include Path.

 

 

Mickael Ruau's insight:

Ensuite, pour créer un test, il suffit de faire un clic droit sur le fichier, puis de sélectionner Tools -> Create PHPUnit tests. Lorsqu'on crée le premier test, NetBeans demande dans quel dossier les fichiers de test doivent être placés. Il n'y a pas d'obligation, mais l'habitude veut qu'on les place dans un dossier "tests" situé à la racine du projet.

No comment yet.
Scooped by Mickael Ruau
January 16, 2014 9:59 AM
Scoop.it!

"4" par 4.0 ? - Blog éclectique

4 * 4.0 donne des résultats parfois surprenants selon les langages...

Mickael Ruau's insight:

"4" * 4.0 donne :

En Ruby : "4444"En PHP et Javascript : 16En Java : Exception:The operator * is undefined for the argument type(s) String, double

 

 

Et tant qu’il y était, il a testé l’addition :

"4" + 4.0 donne :

En Ruby : TypeError: can't convert Float into StringEn PHP : 8En JavaScript : 44En Java : "44.0"
No comment yet.
Scooped by Mickael Ruau
January 14, 2014 10:39 AM
Scoop.it!

PHP Security Scanner

PHP Security Scanner is a tool written in PHP intended to search PHP code for vulnarabilities. MySQL DB stores patterns to search for as well as the results ...
No comment yet.
Scooped by Mickael Ruau
January 14, 2014 6:55 AM
Scoop.it!

Ember.js say hello to Apigility. - Empirio Lab

Ember.js say hello to Apigility. - Empirio Lab | Devops for Growth | Scoop.it

Some month ago, I heard about Apigility and lately I have been playing a little with it. So what’s Apigility?: Apigility is an API Builder, designed to simplify creating and maintaining useful, easy to consume, and well structured APIs.

For this tutorial I’m going to show you how to create a Todo-Api, using Apigility on the backend and Ember.js on the front end.

 

 

Mickael Ruau's insight:

Installing Apigility is easy, you download it from www.apigility.org or installing using composer by running this cmd:

php composer.phar create-project –sdev zfcampus/zf-apigility-skeleton path/where/to/install


After that it is just to fire it up.

No comment yet.
Scooped by Mickael Ruau
December 13, 2013 10:21 AM
Scoop.it!

3 nouvelles versions de PHP: PHP 5.5.7, PHP 5.4.23 et PHP 5.3.28 disponibles

3 nouvelles versions de PHP: PHP 5.5.7, PHP 5.4.23 et PHP 5.3.28 disponibles | Devops for Growth | Scoop.it
3 nouvelles versions de PHP: PHP 5.5.7, PHP 5.4.23 et PHP 5.3.28 disponibles.
No comment yet.
Scooped by Mickael Ruau
November 29, 2013 9:43 AM
Scoop.it!

Leçon du jour - mageekblog

Recourir à l’opérateur ?: (aka l'opérateur elvis) m’a donc semblé une très bonne idée pour mettre une chaîne vide dans ma variable dans ce cas de figure et être ainsi toujours certain de manipuler une chaîne de caractère après mon appel àsubstr().

Ainsi, à l'aide d'une fonctionnalité moderne de PHP, j'obtenais un code concis mais restant très lisible.

Sauf qu’en fait, c’était une très mauvaise idée, et je l’ai compris grâce à mes tests unitaires.

En effet, le test correspondant à la méthode utilisant ce code passait au rouge de manière complètement aléatoire.

Mickael Ruau's insight:

J’ai donc cherché l’origine de ce dysfonctionnement et après m’être tapé la tête dans les murs à plusieurs reprises, j’ai fini par comprendre.

Dans mon test unitaire, j’utilise la fonction uniqid() pour nourrir la méthode que je teste.

Comme son nom l’indique, cette fonction génère une chaîne aléatoire unique, composée de lettres et de chiffres, y compris le chiffre 0.

Or, si le résultat de l’appel à la fonction substr() est 0, la condition à gauche de l’opérateur ?: n'est pas vérifiée et ce dernier retourne donc la valeur située à sa droite.

 

(...)

Et pour finir, la façon dont j'ai découvert ce bug démontre l'intérêt de recourir à l'aléatoire via par exemple uniqid() dans les tests, car sans cela, j'aurais pu passer à côté et le découvrir bien plus tard, à un moment où il aurait été potentiellement bien plus onéreux à corriger.

No comment yet.
Scooped by Mickael Ruau
November 20, 2013 10:35 AM
Scoop.it!

Expérience avec le PSR-0 : Drupal, Zend Framework 2, Symfony 2 | Club*Nix

Expérience avec le PSR-0 : Drupal, Zend Framework 2, Symfony 2 | Club*Nix | Devops for Growth | Scoop.it
Le PSR-0 est une norme du PHP Framework Interop Group basée sur les espaces de noms (namespaces, PHP >= 5.3) pour permettre la création de composants interopérables et chargeables (par autoloading) sans efforts.
Mickael Ruau's insight:

Ceci est une petite expérience permettant de montrer l’intérêt du PSR-0.

 
No comment yet.