Merci d'utiliser EASMVC !

Le design pattern MVC de EASMVC

Le design pattern MVC de EASMVC fonctionne de la manière suivante :
Prenons une url index.php?documentation/index/&test=1&test2=2

L'arborescence suivante montre les différents emplacements pour les controllers, classes et vues :

	
- application
	- classes /* les classes créées*/
	- configuration /* les configurations*/
	- layout /*le layout de toutes pages HTML*/
	- library /*l'emplacement de la library EAS*/
	- views /* les vues associées aux controllers*/
- images
- scripts
- styles
	

Ajouter un controller

Dans application/controllers, les controllers à ajouter ont une convention de nommage :
NomDuController.controller.php
Prenons un controller que l'on nomme About. On créera un fichier About.controller.php et dans celui ci nous mettons le code suivant :

	
class AboutController extends Eas_Core_ControllerUtils{
	
	public function doIndex(){
		
	}
}
	
doIndex est l'action (et l'action par défaut si pas d'action spécifié dans l'url).
Ainsi si l'on veut accéder à index.php?about/contact, il faut créer l'action doContact.
Si l'on veut accéder à index.php?about/me-contacter, il faut créer l'action doMeContacter.

Exemple :

	
class AboutController extends Eas_Core_ControllerUtils{
	
	public function doIndex(){
		
	}
	
	public function doContact(){
		
	}
	
	public function doMeContacter(){
		
	}
}
	
Il est à noter que par défaut une vue est associé à l'action. Dans le cas de index.php?about/contact, il faut créer une vue contact.page.php dans le dossier views/About/Contact.page.php

Comme le système utilise par défaut le nom de l'action comme nom de vue, il n'est pas forcément utile de déclarer l'action dans le controller. En effet, si le controller ne trouve pas l'action en tant que methode, il éxécutera par défaut doIndex() mais en utilisant la vue spécifier dans l'url (donc l'action).

Ainsi vous pouvez créer autant de vue que vous voulez qui seront redirigée par l'action doIndex :

Exemple

url : http://www.site.com/index.php?about/contact
	
class AboutController extends Eas_Core_ControllerUtils{
	
	public function doIndex(){
		/*
		si l'url est "contact" et que l'action doContact() 
		n'existe pas, alors la vue utilisée est 
		"About/Contact.page.php" via doIndex()
		*/
	}
	
}
	
url : http://www.site.com/index.php?about/me-contacter
	
class AboutController extends Eas_Core_ControllerUtils{
	
	public function doIndex(){
		/*
		si l'url est "me-contacter",  et que l'action doMeContacter() 
		n'existe pas, alors la vue utilisée est 
		"About/MeContacter.page.php" via doIndex()
		*/
	}
	
}
	

Enfin pour finir, sachez qu'il est possible d'utiliser une methode d'initialisation qui permet d'initialiser des propriétés ou autre avant le déclenchement de l'action.
Cela peut être utile lorsque vous souhaitez initialiser certaines valeurs, ou utiliser des scripts dans plusieurs actions par exemple.

Exemple

	
class AboutController extends Eas_Core_ControllerUtils{
	
	public function initialisation()
	{
		$this->header->scripts(array('highlight.min.js'));
		$this->header->styles(array('pojoaque.css'));
	}
	public function doIndex(){
		...	
	}
	public function doContact(){
		...	
	}
	
}
	
	

Les vues

Toutes les vues sont situées dans le répertoire views. Le chemin d'accès à une vue sera toujours views/Controller/Action.page.php.

Par défaut, une action fait un appel à une vue associée à l'action. Si vous souhaitez utiliser une autre vue, vous pouvez le spécifier dans l'action du controller.

Exemple :

	
class AboutController extends Eas_Core_ControllerUtils
{
	public function doIndex()
	{
		$this->setView('Contact'); 
		/* va chercher la vue Contact.page.php 
		dans le répertoire views*/
	}

}
	
la propiété $this->view vous permet d'assigner des valeurs ou objets à votre vue :

Exemple :

controller/About.controller.php
	
class AboutController extends Eas_Core_ControllerUtils
{
	public function doIndex()
	{
		$this->view->name = 'EAS'; 
		$contact = new Contact();

		$this->view->results = $contact->getEachRow(); 
	}

}	
	
views/About/Index.page.php
	
<section>
	<header>
		<h1><?php echo $this->view->name?></h1>
	</header>
	<?php foreach ($this->view->results as $result) {?>
	<div><?php echo $result['test']?></div>
	<?php }?>
</section>	
	

Enfin vous pouvez décider de vous passer de vue en utilisant la méthode $this->disableView()

controller/About.controller.php
	
class AboutController extends Eas_Core_ControllerUtils
{
	public function doIndex()
	{
		$this->disableView()
		/*aucune vue et layout ne sera utilisé*/
	}

}	
	

Le layout

Par défaut un layout est choisi pour le rendu des vues. Le layout par défaut est application/layout/layout.php.
Ce fichier contient la structure de votre page html (head, scripts principaux, ...).

Vous pouvez choisir de changer de layout en le spécifiant dans le controller :

controller/About.controller.php
	
class AboutController extends Eas_Core_ControllerUtils
{
	public function doIndex()
	{
		$this->setLayout('layout-mobile'); 
		/* va chercher le layout layout-mobile.php 
		dans le répertoire layout*/
	}

}	
	
Dans le fichier layout.php, il est impératif de mettre le code suivant pour permettre l'affichage de la vue dans le layout:
layout/layout.php
	
<html>
	<head>...</head>
	<body>
	...
	<?php  $this->layout->_content()
	/* permet d'afficher le contenu de la vue*/?>
	...
	</body>
</html>	
	
Pour finir vous avez la possibilité de ne pas utiliser le layout en le spécifiant dans l'action du controller :
controller/About.controller.php
	
class AboutController extends Eas_Core_ControllerUtils
{
	public function doIndex()
	{
		$this->disableLayout(); 
		/* supprime le layout mais permet toujours
		l'utilisation des vues*/
	}

}	
	

> la classe Eas_Header()