No description, website, or topics provided.
PHP Other
Switch branches/tags
Nothing to show
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
application
config
library/Yab
public
.gitattributes
.gitignore
README.md

README.md

Yab_Framework

Yab Framework est un framework PHP, offrant une architecture d'application complète :

  • modèle MVC
  • configuration multi-environement
  • interfaçage à plusieurs base de données

Mais avec en plus quelques atouts par rapports aux autres frameworks :

  • système de routage (et de reverse routage)
  • une couche model intelligente (reverse sur la base)
  • une méthode de fetch innovante sur les recordsets

Le framework n'est pas basé sur un système de namespace.

Un loader global permet une utilisation du framework brique par brique.

Fonctionnement de base

Le principe de base est de rediriger l'ensemble des requêtes HTTP pointant sur des resources inexistantes sur le fichier dit "bootstrap" de l'architecture, celui-ci est dans public/index.php. Pour effectuer cette redirection, on étend la configuration de notre serveur Web gràce au fichier public/.htaccess.

Il faudra donc idéalement définir le DocumentRoot de votre serveur Web sur le répertoire public/.

Si vous ne pouvez pas le faire, ce n'est pas grave, il faudra juste préciser au framework dans le fichier de configuration le paramètre request.base_url = "/public".

Voici le code du bootstrap :

index.php

$root = dirname(dirname(__FILE__)).DIRECTORY_SEPARATOR;

require $root.'library/Yab/Loader.php';

try {

	$loader = Yab_Loader::getInstance();

	$loader
		->addPath($root.'application')
		->configure($root.'config/config.ini')
		->startMvc();

} catch(Yab_Exception $e) {

	echo $e;

}

Toutes les requêtes HTTP seront donc directement redirigées vers ce morceau de code qui charge la classe Loader, qui charge une config, puis qui lance le MVC.

Yab_Loader

La classe Yab_Loader est un singleton.

Son rôle est d'assurer le chargement des classes du framework en définissant un gestionnaire d'autoload basé sur une convention de nommage.

De ce fait, l'appel à une classe Yab_Truc_Machin déclanchera automatiquement la recherche d'un fichier dans le répertoire library/Yab/Truc/Machin.php.

Le gestionnaire d'autoload est mis en place dés le premier appel au singleton Yab_Loader, via Yab_Loader::getInstance().