Pam : Php Approachable Microframework

Documentation

Php Approachable Microframework Pam est un microframework PHP basé sur l'architecture MVC.
PAM

Pam est un microframework PHP basé sur l'architecture MVC.

Pam est très facile à utiliser et très léger à mettre en œuvre.

La partie Modèle peut être utilisée pour toutes les actions CRUD et n'a pas besoin d'être surchargée pour les actions de base.

La partie View utilise le moteur de template Twig, il est donc possible d'utiliser des variables, des fonctions, des filtres, etc...

La partie Controller hérite des méthodes indispensables du contrôleur principal et le FrontController structure l'entrée de l'application.

Les sessions sont gérées par Pam pour les actions de connexion et de message utilisateur.

L'accès à la base de données est évidemment géré par la partie Database, via la classe PDO.

I - Installation

  1. Ouvrez un terminal, placez-vous dans le dossier de votre projet, puis tapez :
    composer require pjs/pam
  2. Copiez dans le dossier de votre projet tout le contenu du dossier :
    votreProjet/vendor/pjs/pam/Project
  3. Toujours dans le dossier de votre projet, tapez dans le terminal :
    composer dump-autoload

II - Model

1 / Les méthodes disponibles

La méthode statique get() de la classe ModelFactory sert à obtenir une connexion à la base données.

Et les méthodes list(), create(), read(), update(), delete() de la classe abstraite Model permettent d'effectuer les opérations CRUD.

Pour les utiliser, il faut commencer par créer une classe héritant de la classe abstraite Model.

2 / Le Model de la table

Cette classe doit être nommée & placée tel que spécifiés dans la classe ModelFactory :

votreProjet/src/Model/tableModel.php
table doit être remplacé par le nom de la table en question.

Le contenu de cette classe peut être réduit au minimum :

class TableModel extends Model {}
Exemples de Model

3 / L'appel depuis un Controller

Il suffit ensuite d'appeler la méthode nécessaire depuis un Controller de la manière suivante :

ModelFactory::get('table')->crud();
table doit être remplacé par la table en question & crud par la méthode choisie. Exemples de Controller

III - View

1 / Twig

Documentation de Twig

2 / Pam Twig Extension

Pam Twig Extension est destiné à définir des fonctions supplémentaires au sein de Twig dans le Framework.

Ces fonctions sont au nombre de 9 :

  • url()
  • isLogged()
  • userId()
  • userName()
  • userImage()
  • userEmail()
  • hasAlert()
  • readType()
  • readMessage()

3 / App Twig Extension

Il s'agit d'une extension de Twig destiné à définir des fonctions supplémentaires au sein de Twig dans le projet en cours.

Exemple de App_Twig_Extension

IV - Controller

1 / Les méthodes disponibles

Les méthodes url(), redirect(), render(), upload() de la classe abstraite Controller permettent de gérer les transferts des pages & des fichiers.

Pour les utiliser, il faut commencer par créer une classe héritant de la classe abstraite Controller.

2 / Le Controller de la page

Cette classe doit être nommée & placée tel que spécifiés dans la classe FrontController :

votreProjet/src/Controller/pageController.php
page doit être remplacé par le nom de la page en question. Exemples de Controller

3 / L'Action du controller

L'Action d'un Controller doit être nommée tel que spécifiée dans la classe FrontController :

public function IndexAction() {}
Index peut être remplacé par le nom d'une opération CRUD si nécessaire. Exemples d'Action

V - Helper

1 / Les Sessions

La classe Session dispose de nombreuses méthodes statiques :

  • createSession()
  • destroySession()
  • isLogged()
  • userId()
  • userName()
  • userImage
  • userEmail
  • createAlert()
  • hasAlert()
  • readType()
  • readMessage()

2 / L'appel des méthodes de Session

Il suffit d'appeler la méthode nécessaire depuis un Controller de la manière suivante :

Session::method();
method doit être remplacé par la méthode en question.