bedrox/bedrox

Framework indépendant développer pour une utilisation en tant qu'API. Le projet pourra renvoyer des retours dans différents langages : JSON, XML, HTML, etc...


License
PHP-3.01

Documentation

Installation d'un nouveau projet

Afin de pouvoir utiliser pleinement Bedrox, il faut commencer par créer un nouveau projet avec composer en tapant la commande suivante :

composer create-project bedrox/bedrox-api mon_dossier

Vous pourrez ainsi démarrer votre nouveau projet avec une architecture complète et pré-configurée.

Les dossiers d'un projet se présentent de la manière suivante :

mon_dossier:
  config: # configurations de l'application
    routes:
      users.yaml
    env.yaml
    routes.yaml
    security.yaml
  public: # dossier web
    .htaccess
    index.php
  src: # sources de l'application
    App:
      Cli: # conteneur des commandes à ajouter au CLI
        Commands: # contient mes commandes CLI personnalisées
          CustomExample.php
        Console.php
      Controllers: # contient les controllers des routes
        DefaultController.php
      Entity: # contient les entités pour les databases
        Users.php
      Services: # contient les services à injecter dans les controlleurs
        AppService.php
        UsersService.php
      Kernel.php
  vendor: # comporte toutes les dépendances de composer
  composer.json

Nous aborderons tous ces fichiers lors de la configuration du projet

Configuration d'un projet

Notre projet étant installé, nous allons devoir le configurer afin qu'il fonctionne pour notre environnement. Dans cette partie, nous verrons comment modifier les fichiers de configuration et utiliser le framework.

L'installation d'un nouveau projet possède certains des exemples qui seront vu dans la documentation.

Pour correctement modifier ces fichiers, contenu dans le dossier config/, nous verrons des exemples concerts.

- ATTENTION ! Actuellement, seul l'encodage en "utf-8" pour l'application et les databases est supporté.

Environnement

Pour configurer l'environnement de l'application, il faut remplir le fichier ./config/env.yaml avec la synthaxe suivante :

app:
  name: '%APP_NAME%'
  version: '%APP_VERSION%'
  env: 'dev|prod'
  database:
    type: 'native|doctrine'
    driver: 'app_sgbd()'
    ### Voir les exemples pour les différentes databases supportées
  encodage: 'app_encode()'
  format: 'app_format()'
  router: '%RELATIVE_PATH_TO_ROUTER_FILE_FROM_ROOT_PROJECT%'
  security: '%RELATIVE_PATH_TO_SECURITY_FILE_FROM_ROOT_PROJECT%'

Vous pouvez retrouver le détails concernant ce fichier dans la documentation ENV.md.

Routes

Vous pouvez déclarer autant de route et de controller que vous le souhaitez. Afin de configurer une route, créez le fichier ./config/routes.yaml. Vous pouvez le remplir de la manière suivante :

%ROUTE_NAME1%:
  path: '%ROUTE_PATH%'
  controller: '%NAMESPACE\CLASSNAME%::%FUNCTION_NAME%'

%ROUTE_NAME2%:
  path: '%ROUTE_PATH%{%ENTITY%}'
  controller: '%NAMESPACE\CLASSNAME%::%FUNCTION_NAME%'
  params:
    %ENTITY%

set_string:
  path: '%ROUTE_PATH%[%TYPE%]'
  controller: '%NAMESPACE\CLASSNAME%::%FUNCTION_NAME%'

Vous pouvez retrouver le détails concernant ce fichier dans la documentation ROUTES.md.

Sécurité

Afin de configurer le firewall, il faut créer le fichier ./config/security.yaml et le remplir de la manière suivante :

security:
  firewall:
    type: 'app_auth()'
    token:
      encode: 'token_algos()'
      secret: '%APP_SECRET%'
    anonymous:
      %ROUTE_NAME1%
      %ROUTE_NAME2%

Vous pouvez retrouver le détails concernant ce fichier dans la documentation SECURITY.md.

Utilisation du framework

Nous verrons dans cette partie comment utiliser Bedrox.

Environnements

Le framework possède deux modes de développement : dev & prod.

Développement

L'environnement dev vous permet d'afficher toutes les exceptions et les dumps gérés par le framework.

(voir la section debug)

Production

L'environnement prod est encore en cours de développement.

Il permettra de gérer le comportement de l'application en fonction des types d'erreurs retournés.

Debug

Bedrox fournit deux fonctions de dump. Celles-ci s'adaptent au format de votre application afin de printer dans un logiciel autre que votre navigateur internet.

dump(...string: array|mixed[]);
dd(...string: array|mixed[]);

Vous pouvez retrouver le détails concernant ce fichier dans la documentation DEBUG.md.

Command Line Interface

Documentation en cours de rédaction.

Controllers

Documentation en cours de rédaction.

Entités

Documentation en cours de rédaction.

Services

Documentation en cours de rédaction.