Array_walk, array_map, array_walk_recursive

Une question que l’on m’a posé.

Quel instruction je n’ai jamais jamais réussi à utiliser dans php ? Dans le sens jamais trouvé d’utilisation pratique.

Ma réponse est un array_recursive_walk() et dans la même idée les RecursiveIteratorIterator

Et puis on m’a demander la différence entre un array_walk et un array_map.

Halt compiler : twig et php dans le même fichier

Introduction

je vais parler de l’instruction __halt_compiler().

Cette instruction arrête l’interprétation du PHP. Instruction inutile ? Pas vraiment..

Pour ce faire je vais montrer un exemple ou je vais mixer un fichier php et un fichier twig ensemble.

L’instruction __halt_compiler()

D’après php.net

Stoppe l’exécution du compilateur. Ceci peut être très utile pour embarquer des données dans des scripts PHP, comme des fichiers d’installation. L’octet de la position du début des données peut être déterminé par la constante __COMPILER_HALT_OFFSET__ qui n’est définie que s’il y a une fonction __halt_compiler() présente dans le fichier.

Git un peu de fun

Il est possible de faire des commits qui clignotent avec la commande suivante.

1
git commit --all-empty -m "^[[5m Bonjour ^[[0"

Attention le caractère ^[ est la touche Escape (on parle de caractère d’échappement). Il n’est pas très simple à taper. Il faut appuyer sur Ctrl+v puis <ESC>

Bienvenue dans le monde du terminal et du ANSI. Il existe de véritable oeuvre d’art juste en mode texte. Et dans le temps les fichiers pirates contenaient souvent des fichiers textes avec Logo et présentation de la team.

On peut rajouter des trucs plus rigolos

1
git commit --allow-empty -F <(curl https://raw.githubusercontent.com/thiderman/doge/master/doge/static/doge.txt)

Tout les terminaux ne sont pas égaux.

Voici un gif animé de mes commits

So meme

Cela ne clignote pas beaucoup sur gnometerminal essayons avec Xterm

On a un menu interactif

C’est un peu mieux.

Workshops de javascript

Et si on essayait un workshop…

Les workshops de javascript sont des cours interactifs de javascript.

Installation

Pour installer le cours de Node.js c’est très simple. A condition d’avoir node.js installé.

1
2
npm install -g learnyounode
learnyounode

Voila ce que vous devriez voir.

On a un menu interactif

Gmail Vim mêmes Raccourcis

Les raccourcis de Gmail ressemblent à vi.

Résumé : appuyer sur ? dans gmail pour avoir le tableau complet, les raccourcis claviers suivant ne sont pas activés par défaut

Le titre est un peu exagéré.. Je vais essayer de montrer que la philosophie est un peu la même.

Mais sur Vi On utilise les flèches de direction h, j, k, l pour gauche, bas, haut, droite pour se déplacer (enfin surtout j et k). Et bien les touches j(bas) et k(haut) marchent pareilles sous Gmail.

Pour chercher sous Vi on utilise la touche / , essayez sous Gmail et vous aller directement dans la barre de recherche.

Décorer PHPUnit avec les Listeners

Des test unitaires plus jolis

Comme tout les programmeurs vous faites des tests unitaires. En php, On utilise souvent PHPUnit. quand je lance mes tests je vois cela.

Mon terminal n\

C’est un peu triste. Et encore j’ai activé la couleur !.

il existe des variantes avec --testdox

Mise en place de Travis

Introduction

Après la création de la librairie, la création et la publication du package, je propose d’ajouter l’intégration continue avec Travis. Travis est gratuit pour les projets open-source. (L’url n’est d’ailleurs pas la même c’est travis-ci.org pour les projets publics, et travis-ci.com pour les projets privés)

Créer son dépôt sous Packagist

Introduction

J’avais montré dans le précédent Post, une fonction qui permet de créer des histogrammes.

J’ai décidé de la publier sous Packagist. Je n’avais jamais fais. Je vous propose de suivre mon cheminement

  • Je mets au propre le fichier
  • J’ajoute le composer.json
  • j’ajoute les tests unitaires
  • Je crée le dépôt sur Github
  • J’enregistre le dépôt sur Packagist