Cestfait.ch

  • Home
  • Drupal
  • PHP 5
  • Jquery
  • Web Dev
  • Sys admin
  • Logiciels libres
  • Videos
  • Divers
  • Nous contacter
  • Mon c'est fait!
Home

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 !!!

 

0
Log in to vote
No votes yet
  • Login or register to post comments
  • Share this
Tags:
  • Divers
  • drupal
  • zend framework

1 response to "Drupal bridge zend yeah !!"

1. "Il suffit d'installer et de

Submitted by Anonymous on Thu, 12/09/2010 - 23:52.
"Il suffit d'installer et de télécharger la library zend et de la placer au bonne endroit" Mais ou se trouve donc ce bon endroit, j'ai suivi la doc, mais dans l'admin on me dit qu'elle n'est pas installée
  • Login or register to post comments

User login

  • Create new account
  • Request new password
  • Sign in with Twitter

Translate

Sondage

Qu'elle version de drupal utilisez-vous ?

Submitted by Sir Squall on Tue, 04/10/2012 - 16:30
  • Login or register to post comments

Recent comments

  • Arf, je suis à l'armée!
    40 weeks 1 day ago
  • hahaha c'est juste! Il n'y a
    46 weeks 4 days ago
  • yeah comme sa fait plaisir de
    46 weeks 6 days ago
  • wouahou merciii :-) !
    50 weeks 5 days ago
  • J'y réponds aujourd'hui ici
    50 weeks 5 days ago
  • Salut, court article mais
    50 weeks 6 days ago
  • Oktoberfest power!!!
    1 year 3 weeks ago
  • yep je vais faire un petit
    1 year 5 weeks ago
  • It's regular approuved
    1 year 5 weeks ago
  • Pas d'exemple????
    1 year 5 weeks ago

Tags

cropping Divers drupal Drupal emacs firefox gmap Google Images Jquery jquery karmic koala La phrase du jour Lausanne Logiciels libres mysql PHP 5 RPG Sys admin ubuntu Web Dev yasnippet youtube Zend
more tags

Popular content

Today's:

  • Squall Beer Challenge '09
  • viportuguese-shop.com
  • Emacs Transparent
  • 8ème Forum eCulture - ERACOM - 4 septembre 2009
  • Grep afficher les lignes avant et après
  • Boxxy likes Drupal
  • Tinymce styles sorted
  • Drupal Mollom sa rox!
  • Bash scripting MySql
  • Bel homme célibataire

All time:

  • Drupal 7 effet avec les jquery.ui.dialog sur Drupal 6 !
  • Dries Keynote DrupalCon Paris 2009
  • Drupal bridge zend yeah !!
  • Jquery slider c'est de la bonne !!!
  • Drupal and Zend, form validate :)
  • Jquery JSON en _POST
  • [Drupal] Lightbox avec une gmap! yeah
  • [Drupal] Domain Access & memcache sa donne quoi ?
  • viportuguese-shop.com
  • Node Import et Taxonomy CSV

Last viewed:

  • Drupal 7
  • Drupal solr attachement intégration
  • [Drupal 6] textarea avec wysiwyg
  • Dompter IE7 IE8
  • directory_separator, un truc old-skool a jeter
  • Die !
  • DevOps power
  • Datatables : Big form in POST
  • d7
  • Crontab all user

Twitter

Latest Articles

Derniers liens publiés

  • Get the list of all enabled module
    http://drupal.org/node/440962
  • Cloudflare et Dropbox nommés Technology pioneers
    http://techcrunch.com/2011/09/01/cloudflare-dropbox-palantir-and-kickstarter-named-technology-pioneers-by-the-world-economic-forum/
  • Apprend le javascript en t'amusant
    http://www.codecademy.com
  • EPSACrop sur Drupal 7
    http://www.aswissidea.org/
  • Drupal solr attachement intégration
    http://tika.apache.org/

Pub

Google gadget

Add to Google

Facebook page

jiwa

all good song

Partenaires

Cyber Warfare

Drupal Factory

Dev Factory

I love Smashing Magazine!
Fervens Drupal theme by Leow Kah Thong. Designed by Design Disease and brought to you by Smashing Magazine.