Architecture d’un projet avec symfony 3

symfony bundle

Développer avec Symfony 3 demande de respecter une certaine architecture bien différente de Symfony 2 afin que notre application respecte le principe  de maintenabilité et réutilisabilité.

De ce fait aujourd’hui tout s’articule autour d’un bundle unique  « src\AppBundle » qui représente le bundle principal de notre application  car  un bundle doit être capable de fonctionner tout seul mais cela n’étant pas le cas toujours.  Finis donc la logique en Symfony 2 qui voulait qu’on divise notre architecture en différents bundles.

Néanmoins nous pouvons créer de nouveau  bundles personnels dans notre application  soit :

  • Bundle qui sera interne à notre application
  • Bundle qui pourra être utilisé dans toutes nos applications et distribuable.

Dans cet article nous allons aborder le rôle des principaux dossiers dans l’architecture  d’un projet Symfony 3 standard, libre à vous selon votre expérience et celle de vos équipes de structurer personnellement certaines parties.

Nouveau Composant Workflow avec Symfony 3.2

symfony_logo

La gestion de l’évolution des statuts ou des états  dans un projet est souvent source de manipulation très complexe.

Aujourd’hui avec le composant Workflow  qui a été ajouté à Symfony 3.2, le développement  d’un tel système est plus souple, plus rapide et plus besoin d’ajouter un bundle tiers.

Nous vous présenterons une vue d’ensemble  de ce nouveau composant afin que vous puissiez avoir une idée de son  fonctionnement  avant la sortie officielle de Symfony 3.2 qui est actuellement en version Beta.

DoctrineMigrationsBundle avec Symfony 3.1

symfony bundle

Appréhender l’évolution du schéma de la base de données est très important durant le cycle de vie d’un projet, car la base de données étant le cœur de notre produit nous devons avoir toutes les informations sur ses changements et pouvoir faire un rollback au moindre problème. DoctrineMigrationsBundle est un bundle doctrine qui nous permet donc de suivre cette évolution, de migrer la structure et les données de notre base de données, de manière sécurisée et standardisée.

Outils pour la qualité logicielle en PHP

Cet article est une suite logique de l’article « Culture pour la qualité logicielle PHP », lequel vous a présenté les différents aspects à appréhender chaque jour afin d’avoir une culture de conception de produits de qualité. Aujourd’hui nous  verrons les outils  les plus utilisés à notre disposition afin de mettre en pratique ces aspects, nous n’expliquerons pas en détails l’installation, ni l’utilisation de ces outils mais nous vous les présenterons de manière globale afin de percevoir leurs importance dans la qualité logicielle. Nous vous présentons une liste, non exhaustive, des outils ayant des versions open source.

La qualité logicielle en PHP

Quality_icon-checklist

Aujourd’hui, les développeurs passent beaucoup de temps à faire et défaire du code, à toujours écrire des fonctionnalités similaires de projet en projet, à s’arracher les cheveux sur le code d’un autre, à développer des fonctionnalités complètement inutiles pour le client, à faire des var_dump, print_r, die, exit régulier pour debugger.

Pourquoi tant de souffrance quotidienne et de perte de temps ?

Mon propos portera sur une notion beaucoup utilisée en génie logiciel, qui peut permettre à chacun d’atténuer ses souffrances, à savoir la qualité logicielle qui est, selon moi, un réflexe que doivent avoir toutes équipes projet durant la vie du projet.

La qualité logicielle peut se définir comme étant un ensemble de tâches à effectuer et de moyens mise en place afin de donner une satisfaction optimale aux besoins du client, des utilisateurs, en somme, à toutes les équipes et de tendre vers le zéro défaut.

Résoudre vos problématiques de fuite mémoire avec Garbage Collector & yield

logo_php

Le Garbage Collector ou ramasse-miettes (Plus d'infos) a fait son apparition à partir de la version  PHP  5.3.0. Nous pouvons dire que c'est une solution pour les problématiques liées aux fuites mémoire que rencontre plusieurs développeurs PHP en matière de récupération du résultat d'une requête ou d'affectation de données volumineuses  dans un tableau PHP .

Ils sont souvent en face d'une erreur bien connue :  "Fatal error: Allowed memory size". Mais alors que faire ? C'est ce que je vais vous expliquer dans cet article.