informatique:developpement:projets:mircro-framework-php

Développement d'un framework PHP

  • Générales :
    • Autoloader (PSR-4)
    • Conteneur / dépendance d'injection (PSR-11, Container-Interop/Service-Provider)
    • Abstraction de BDD : PDO
    • Cache (PSR-16)
    • Config : chargement et registre
    • Debug
    • Http : abstraction de la couche HTTP (PSR-7, PSR-15, PSR-17)
    • Log (PSR-3)
    • Utilitaires : classes outils.
    • Routage : routage de requête http.
    • Session : gestionnaire de session (abstraction de $_SESSION)
  • Ligne de commande :
    • Cli + Script
  • Web services :
    • Serveur REST
    • Service REST
    • Client REST
  • Web socket / Long polling :
    • Event loop
    • Serveur de websocket / Long polling (?)
  • Application web :
    • HMVC : Controleur + Modele + Vue + Dispatcher
    • Templating : Php
    • URI : via PSR7 HTTP/URI
    • I18N
  • Autres :
    • Auth : via Json Web Token.
    • Acls : gestion des droits.

Software As a Service

ACLs

Dependency Injection/Service Location

Codes sources de Conteneurs :

Docs :

Notes :

  • Voir le pattern Service Locator et la différence avec un DI Container.
  • Exemple de DIC performants : Dice, Aura and Orno
  • Problème éventuel et solution : Using abstract factories with Slim 3
  • Aura gère les paramètres dans les appels aux classes du conteneur. C'est la solution retenu pour le Framework.

Config

  • INI :
    • IniParser : Parser de fichier ini ajoutant des améliorations
    • Configula : Parser multi formats : PHP ($config), JSON (json_decode()), INI (parse_ini_file()), YAML (symfony/yaml package)
  • YAML :

Cache

Console (CLI)

Database

I18N

Logger

  • Chrome Logger : permet d'afficher les messages de log côté Console du navigateur.

MVC

MVC : dispatcher

MVC : hiérarchique (HMVC)

REST : Client

REST : Serveur

Router

  • Routing is the process of taking a URI endpoint (that part of the URI which comes after the base URL) and decomposing it into parameters to determine which module, controller, and action of that controller should receive the request
  • Source :
    • FastRoute : plusieurs solutions de routage, très performant… trop de fichiers…
    • AltoRouter : très simple 1 fichier ! Modifier le Router actuel selon ce principe mais avec l'analyse des Regexp de Fastroute
  • Voir :

Websocket

Code source :

  • React PHP - Event loop : fourni une boucle d'évènement (event loop), “Event-driven, non-blocking I/O with PHP”.

Docs :

  • informatique/developpement/projets/mircro-framework-php.txt
  • Dernière modification : 2020/05/22 20:08
  • de jpmilcent