Drupal bridge zend yeah !!
Submitted by Sir Squall on Mon, 04/19/2010 - 11:48
C'est quand même vachement club de pouvoir utiliser drupal, et en même temps d'avoir accès au library zend.
Il y a un petit module qui s'occupe de tous est qui fonctionne vraiment bien http://drupal.org/project/zend
Il suffit d'installer et de télécharger la library zend et de la placer au bonne endroit et le tour est réglé, mais on peut faire mieux ;)!
Zend sa fonctionne comme un MVC, donc si on essayer de fusionner le principe mvc de zend avec notre petit drupal qui fonctionne en hook!
tous d'abord on va crée notre module myzend, avec un menu qui va servir de psedos controleur:
/** * Implementation of hook_menu(). */ function myzend_menu(){ $items = array(); /** * controleur */ $items['zend'] = array( 'title' => 'bridge zend', 'page callback' => 'myzend_content', 'access arguments' => array('access content'), 'type' => MENU_CALLBACK, ); return $items; } /** * like controler zend but in drupal */ function myzend_content(){ $args = func_get_args(); $hook = 'zend_'.array_shift($args); if(is_array($args)){ foreach($args as $value){ $data[] = $value; } } $res = module_invoke_all($hook,$data); $res = current($res); if(!empty($res)){ return $res; }else{ return false; } }
et avec la function func_get_args on récupere tous les paramètres qui sont passe après l'url zend, et on les passe dans module_invoke_all, on modifile le hook en 'zend_'hook et hop la le tour est joué, on peut passe n'importe qu'elle paramètre d'url, et n'importe qu'elle valeur et hoop la on as un petit hook spécial pour zend.
Next step, récuperer les paramètres de la db:
/** * Connecteur zend db */ function myzend_db(){ if(zend_initialize('Zend_Db_Adapter_Pdo_Mysql')){ //get the url global $db_url; //parse $url = parse_url($db_url); $db = new Zend_Db_Adapter_Pdo_Mysql(array( 'host' => $url['host'], 'username' => $url['user'], 'password' => $url['pass'], 'dbname' => trim($url['path'],'/') )); return $db; }else{ return false; } } }
Et voilà nous reste plus qu'as tester donc moi j'ai passer dans mon url zend/mail/1 un fonction qui récuperer l'adresse email des mes users:
/** * new hook zend */ function myzend_zend_mail($uid){ if(myzend_db() && $db = myzend_db()){ $sql = 'SELECT * FROM users WHERE uid = ?'; $result = $db->fetchAll($sql, $uid); $result = current($result); $out = $result['mail']; } return $out; }
Et voilà la magie a opérer un page drupal, avec un contenu récuperer par zend yeah baby!
C'est fait !!!
Tags:






1 response to "Drupal bridge zend yeah !!"
1. "Il suffit d'installer et de