Artisan Développeur

Qualité, amélioration continue, agilité.

Test install beta de blackfire.io

Aujourd’hui je commence le dev d’un nouveau projet, avec Symfony2, dans l’optique de l’amélioration continue (KaiZen), je me suis penché un peu sur les profiler, et puisque Sensio Lab lance un nouveau produit on va tester 🙂
Pour les tests je fais tout en local, Kubuntu 14.10.

$ apache2 -v
Server version: Apache/2.4.7 (Ubuntu)
Server built: Jul 22 2014 14:36:38

$ php -v
PHP 5.5.9-1ubuntu4.5 (cli) (built: Oct 29 2014 11:59:10)
Copyright (c) 1997-2014 The PHP Group
Zend Engine v2.5.0, Copyright (c) 1998-2014 Zend Technologies
with Zend OPcache v7.0.3, Copyright (c) 1999-2014, by Zend Technologies
with Xdebug v2.2.3, Copyright (c) 2002-2013, by Derick Rethans

Avant tout s’enregistrer sur le site, avec le compte github ou sensio c’est rapide.
S’enregistrer sur blackfire.

L’installation est vraiment simple, https://blackfire.io/getting-started
, sous ubuntu, j’ai utilisé le repo pour debian et tout s’est bien passé.
(petite astuce pour éviter les sudo tout le long, alt+F2 puis kdesudo konsole – pour kde – ou gksudo gnome-terminal)

Vous aurez besoin des id et token pendant la config, disponibles à cette adresse, en étant identifié :
https://blackfire.io/account/credentials

Les commandes condensées:

curl -s https://packagecloud.io/gpg.key | sudo apt-key add -

echo "deb http://packages.blackfire.io/debian any main" | sudo tee /etc/apt/sources.list.d/blackfire.list

sudo apt-get update

sudo apt-get install blackfire-agent

sudo blackfire-agent -register #credentials serveur

sudo /etc/init.d/blackfire-agent restart

blackfire config #credentials client

sudo apt-get install blackfire-php

sudo apache2ctl restart

Pour utiliser le plugin web, il faut utiliser chrome pour l’instant (vivement le plugin firefox), il faut aller sur cette page, et installer le plugin :

https://blackfire.io/doc/web-page

Une fois installé, on clique dessus, on choisit le slot, qu’il est préférable de renommer, puis « Profile! ».

companion

2

Et enfin les données du profiler :
3

Il ne reste plus qu’à bien étudier les infos remontées, au fur et a mesure de l’avancement du code.

strpos tips, if(strpos($haystack , $needle)) piège :)

Une astuce,

un retour de galère, je travaille sur un parser pour du xml, je cherche certaines occurrences, comme « ![CDATA ».

Je faisais simplement un

if( strpos( "!CDATA[", $monXml ) ){
 /* do something */
}

Et jamais la condition n’était valide… Je retourne donc sur la doc php, lire en entier la page strpos :
http://au1.php.net/manual/fr/function.strpos.php

Strpos, retourne la position de $needle, et la première position commence à 0.

Si $needle se trouve au début de la chaîne, strpos retourne 0. Ce qui donne :

if(0){ /* ... */ }

La solution est toute simple :

if( strpos( "!CDATA[", $monXml ) !== false){
 /* do something */
}

Avec l’opérateur === ou !== je vais vérifier si c’est vraiment false.

tags: strpos error, strpos ne fonctionne pas, mauvais retour strpos, strpos always false.

auto completion XFT (xml) with eclipse

Hello !

I have to do some XFT transaction for e-tourisme dev. I planed to use NuSoap in Symfony2, see my previous post.

I work with eclipse, and I want to have auto completion for my XFT transaction to enhance my dev (life) quality ^^

First thing to do is adding the xsd catalog to « eclipse xml catalog ».

Go « Windows -> preferences -> XML -> Catalog »
preference_xml_catalog

Add a new catalog, I choose to save the XSD file into my workspace.

preference_xml_catalog1

preference_xml_catalog2

To test it, I create a « New Xml file » with the assistant

preference_xml_catalog3

choose « Create XML file from an XML schema file »

preference_xml_catalog4

Choose my new catalog in the list (www.exchangefortravel.org)

preference_xml_catalog5

Choose without prefix (I’m not a xml guru, I don’t think I need prefix for my project, but it’s probably not the best answer for everyone).

If I don’t uncheck all checkboxes, eclipse is working, and do nothing, I suppose it’s the last option. But remember, I use this assistant just once, to see how the first line with the namespace is created.

preference_xml_catalog6-noPrefix

That’s it ! I’ve the first line, with the namespace. The generated tag is Access, I change it by « Transaction », I add <Control> and, when I open a new « < »  I see the auto completion.

preference_xml_catalog7

Feel free to ask, to comment, to critic, to enhance, to share 🙂

Nicolas