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.

Une réflexion au sujet de « Profiter du Zend Framework dans une application PHP non MVC »

  1. alinux

    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

    Répondre

Laisser un commentaire

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