• Home
  • Nous contacter

Le blog d'Adfab

Le blog d'Adfab

Le blog d'Adfab

Le blog d'Adfab

Quentin DENEUVE

Outils

Créer un package pour Composer avec Github et Packagist – Partie 2

Créer un package pour Composer avec Github et Packagist – Partie 2

Il s’agit de la deuxième partie d’un tutoriel, je vous conseille de commencer par la première partie.

LIRE LA SUITE
27/06/2015 BY: Quentin DENEUVE
SHARE
LIRE LA SUITE
Outils

Créer un package pour Composer avec Github et Packagist – Partie 1

Créer un package pour Composer avec Github et Packagist – Partie 1

De nos jours, les développements que nous faisons sont de plus en plus réfléchis pour pouvoir être « réutilisables »

LIRE LA SUITE
19/06/2015 BY: Quentin DENEUVE
SHARE
LIRE LA SUITE
Framework

L’autoloading en php

L’autoloading en php

Grâce au model objet mis en place avec PHP5 et la mise en place d’un système d’autoload basé sur le nom des classes, les anciens systèmes comme l’utilisation d’un immense fichier d’inclusion pour tous les fichiers ou alors des « require » en entête de chaque fichiers ayant une dépendance avec un autre fichier, sont désormais finis.

Avec les namespaces, les normes PSR, plus particulièrement PSR-0, permet de définir un pattern pour permettre le chargement automatique de toutes les librairies respectant cette norme. Cette norme se résume comme tel : Chaque classe possède son arborescence fichier en tant que namespace. Par exemple, la classe MonModule\Query\State\Builder se trouvera  dans le fichier MonModule/Query/State/Builder.php à partir du dossier ou se trouve vos modules, tout simplement.

De plus :

  • Chaque classe doit avoir en namespace le nom de son module ou de son créateur
  • Chaque fichier contient une seule classe et son extension est « .php »
  • Les « _ » contenus dans le nom de la classe seront convertit en séparateur de dossier (« / »)

La norme PSR ajoute d’autres conventions d’écriture que vous devez connaitre pour réaliser vos classes proprement, en voici une liste non exhaustive :

  • Les noms des classes sont en PascalCase
  • Les noms des méthodes sont en camelCase
  • Utiliser les balises < ?php ou < ?= et pas d’autre
  • Ne fermer pas la balise php en fin de fichier de classe

Les classes normées de cette manière peuvent être auto-loadée grâce a cette fonction émise par leurs documents :

<?php

function autoload($className)
{
    $className = ltrim($className, '\\');
    $fileName  = '';
    $namespace = '';
    if ($lastNsPos = strripos($className, '\\')) {
        $namespace = substr($className, 0, $lastNsPos);
        $className = substr($className, $lastNsPos + 1);
        $fileName  = str_replace('\\', DIRECTORY_SEPARATOR, $namespace) . DIRECTORY_SEPARATOR;
    }
    $fileName .= str_replace('_', DIRECTORY_SEPARATOR, $className) . '.php';

    require $fileName;
}

 

N’hésitez pas à aller lire les différentes feuilles de la norme PSR ici : https://github.com/php-fig/fig-standards/tree/master/accepted/fr

LIRE LA SUITE
20/11/2014 BY: Quentin DENEUVE
SHARE
LIRE LA SUITE
CMS

Les CMS et l’open source

Les CMS et l’open source

Aujourd’hui beaucoup de sites utilisent un Système de Gestion de Contenu (SGC, ou CMS en anglais). Il s’agit d’un site déjà construit, qui permet de façon simple de gérer son contenu, comme les articles, pages ou encore les commentaires. Ce système s’installe rapidement sans connaissance particulière dans le domaine informatique. En voici une liste des plus populaires :

  • WordPress 54,3% des sites français*
  • Drupal 13,2% des sites français*
  • Joomla! 8,1% des sites français*
  • …

*source technotop

LIRE LA SUITE
18/11/2014 BY: Quentin DENEUVE
SHARE
LIRE LA SUITE
Jeux

Diffuser un jeu sur Facebook grâce à la plateforme Playground

Diffuser un jeu sur Facebook grâce à la plateforme Playground

Avec la plateforme Playground mise à votre disposition en OpenSource, imaginer, créer et partager votre jeu se fait facilement, en quelques clics.

Ce tutoriel vous expliquera comment diffuser un jeu Playground sur Facebook, de façon simple et rapide.

LIRE LA SUITE
30/01/2014 TAGS: Playground BY: Quentin DENEUVE
SHARE
LIRE LA SUITE
Outils

Qu’est-ce que Composer ?

Qu’est-ce que Composer ?

Avec l’arrivé de PHP5, les notions de bibliothèques, composants, package, n’ont jamais été si présent dans le développement web. En effet, grâce à l’ajout des objets et des namespaces, le langage PHP est devenu comme tous les autres langages de programmation, un langage souple, modulable et réutilisable. La très forte communauté a donc créé des milliers de composants, bibliothèques, mais très vite, le surplus est devenu fouillis et il fallait mettre de l’ordre dans tout ça.

Qu’est-ce que Composer ?

Composer est un outil mis en place pour la communauté des développeurs de PHP. A l’image de « npm » pour nodejs ou « bundler » pour ruby, il sert de gestionnaire de dépendance entre applications et librairies.

De façon plus précise, Composer permet de gérer pour chaque projet, la liste des modules et bibliothèques nécessaires à son fonctionnement ainsi que leurs versions. Il est utilisable via la console en ligne de commande. De plus, il permet de mettre en place un système d’autoload pour les bibliothèques compatibles.

Exemple d’utilisation

Pour utiliser Composer, tout se passe dans le fichier composer.json à la racine de votre projet. Ce fichier va définir toutes les informations concernant votre projet ainsi que toutes ses dépendances.

Nous allons prendre comme exemple le fichier composer.json du module zendsqueleton (disponible ici) qui est un cas simple pour comprendre :

{
    "name": "zendframework/skeleton-application",
    "description": "Skeleton Application for ZF2",
    "license": "BSD-3-Clause",
    "keywords": [
        "framework",
        "zf2"
    ],
    "homepage": "http://framework.zend.com/",
    "require": {
        "php": ">=5.3.3",
        "zendframework/zendframework": "2.2.*"
    }
}

Premièrement, nous voyons que le fichier est un simple tableau au format json. Les premiers éléments sont un ensemble d’attributs définissant le projet. Ce qui nous interesse est la clé « require », c’est ici que sont définit les dépendances. Il y en a deux, chacun avec un nom et une version. Il vous faudra donc PHP 5.3.3 minimum et zendframework dans sa version 2.2 la plus récente.

Le site Packagist.org

Le site : https://packagist.org/

Ce site permet d’enregistrer vos propres packages mais aussi de chercher tous les packages disponible, avec une page complète qui liste les différentes versions du package, et une description.

Aller plus loin avec Composer

  • Le site officiel : https://getcomposer.org/

LIRE LA SUITE
29/01/2014 BY: Quentin DENEUVE
SHARE
LIRE LA SUITE
Outils

Les doublures de test dans PHPUnit

Les doublures de test dans PHPUnit

Les doublures de test, à quoi ça sert ?

Lors de nos tests unitaires, nous voulons tester une classe de notre projet, mais on aimerait tester seulement notre classe sans dépendre des autres utilisées au sein de celle-ci. Car elles auront leurs propres tests.

LIRE LA SUITE
21/01/2014 BY: Quentin DENEUVE
SHARE
LIRE LA SUITE

A propos d’Adfab

Nous sommes un studio de production digitales et d’innovation digitales au service des agences et des annonceurs
Nous recherchons le scintillement dans les regards et le plaisir de réalisations sur-performantes
Nous sommes techno-agnostiques
Nous sommes Adfab

Le blog d'Adfab
Copyright © 2018 Adfab Connect