Catégories
Développement PHP

Profiter du Zend Framework dans une application PHP non MVC

Zend est un famework PHP très pratique. Nous allons voir qu’il n’est pas nécessaire de développer une application MVC pour utiliser Zend Framework (même si c’est mieux dans l’idéal).

Dans le cadre d’une vieille application open source que je suis en train de rafraîchir, j’avais besoin d’un framework PHP complet afin de transposer les vieux scripts (faits maison dans l’application) par des appels au framework Zend. Appliquer le modèle MVC n’était pas envisageable, car cela signifiait développer  à nouveau l’application qui avait juste besoin d’un coup de polish.

L’initialisation du Zend Framework  se fait comme cela :

set_include_path(get_include_path() . PATH_SEPARATOR .
                   realpath(dirname(__FILE__) . '/../library'));
require_once $path . '/../library/Zend/Loader/Autoloader.php';
$zend_autoloader = Zend_Loader_Autoloader::getInstance();

Ensuite, les objets Zend sont disponibles dans l’application. Un exemple avec l’objet E-mail :

$transport = new Zend_Mail_Transport_Smtp($settings['email']['HOST'], $config);

L’objet de traduction de l’interface :

$path = realpath(dirname(__FILE__));
include($path."/../languages/en.php");
include($path."/../languages/fr.php");
$translate = new Zend_Translate('array', $english, 'en_EN');
$translate->addTranslation($french, 'fr_FR');
$locale = new Zend_Locale(Zend_Locale::BROWSER);
if($translate->isAvailable($locale)) {
     $translate->setLocale($locale);
} else {
     $translate->setLocale('en');
}

Ou encore une connexion LDAP :

try{
 		//Initiate connection
 		$user_id 	= "uid=".$user_id;
 		$ldap_conn 	= new Zend_Ldap($config);

 		try{
 			$ldap_conn->bind($user_id.",".$config["baseDn"],$password);
 			$ldap_conn->disconnect();
 			return true;
 		} catch (Zend_Ldap_Exception $e){
 			$ldap_conn->disconnect();
 			error_report_show("login.php", INVALID_LOGIN );
 		}

 	}catch (Zend_Ldap_Exception $e){
 		$ldap_conn->disconnect();
 		error_report_show("login.php", LDAP_CONNECTION_FAILED);
 	}

Pour information, l’application est un fork du projet RTH laissé à l’abandon. Il s’agit d’une application de gestion des cas de test (Test Case Manager) disponible sous sourceforge. Si vous souhaitez y participer, vous êtes les bienvenus.

1 réponse sur « Profiter du Zend Framework dans une application PHP non MVC »

Bonjour,

J ai essayé mais en vain….

Vous ecrivez :
«  » »
set_include_path(get_include_path() . PATH_SEPARATOR .
realpath(dirname(__FILE__) . ‘/../library’));
require_once $path . ‘/../library/Zend/Loader/Autoloader.php’;
$zend_autoloader = Zend_Loader_Autoloader::getInstance();
«  » »

C’est quoi $path ?
Et realpath(dirname(__FILE__) . ‘/../library’)…. il comprend pas

Merci d’avance

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.