Vous consultez les articles taggés zend
Déc
7

Zend Framework : Aide de vue pour afficher les données issues d’un flux RSS

Voici une aide de vue Zend Framework qui vous permettra de lire les données provenant d’un flux RSS.
Pour cela nous allons utiliser la classe Zend_Feed_Reader

Voilà donc votre helper Rss.php situé dans votre dossier views/helpers/

<?php
 
class View_Helper_Rss extends Zend_View_Helper_Abstract
{
 
    public function rss($url)
    {
		$reader = new Zend_Feed_Reader();
    	        //Si vous avez besoin de passer par un proxy
		$config = array('proxy_host'=>'localhost','proxy_port'=>8080, 'proxy_user'=>'user', 'proxy_password'=>'password');
	    	   $adapter = new Zend_Http_Client_Adapter_Proxy();
		   $adapter->setConfig($config);
	    	   $reader->getHttpClient()->setAdapter($adapter);
 
 
    	try {
	    	$feed = $reader->import($url);
 
			$data = array(
			    'title'        => $feed->getTitle(),
			    'link'         => $feed->getLink(),
			    'dateModified' => $feed->getDateModified(),
			    'description'  => $feed->getDescription(),
			    'language'     => $feed->getLanguage(),
			    'entries'      => array(),
			);
 
			foreach ($feed as $entry) {
			    $edata = array(
			        'title'        => $entry->getTitle(),
			        'description'  => $entry->getDescription(),
			        'dateModified' => $entry->getDateModified(),
			        'authors'       => $entry->getAuthors(),
			        'link'         => $entry->getLink(),
			        'content'      => $entry->getContent()
			    );
			    $data['entries'][] = $edata;
			}
 
			return $data['entries'];
    	} catch (Zend_Exception $e) {
    		throw new Zend_Exception('Impossible de récupérer le flux RSS');
    	}
    }
 
}

Ensuite dans votre vue vous l’appelez avec en paramètre l’url du flux RSS à charger.

<?php 
      	//On va récupérer le flux rss du site du zéro par exemple	
            $urlRss = 'http://www.siteduzero.com/Templates/xml/tutoriels_fr.xml';
      		try {
      			$actusRss =  $this->rss($urlRss);	
      		} catch(Zend_Exception $e){
      			echo $e->getMessage();	
      		}
 
      		?>
<?php 
//Ensuite vous parcourez vos résultats avec un partialLoop par exemple
echo $this->partialLoop('front-commun/actuRss.phtml', $actusRss); ?>
Déc
6

Zend Framework : Aide d’action pour télécharger un fichier


Aujourd’hui nous allons voir comment réaliser une aide d’action (helper) en Zend Framework qui vous permettra le téléchargement direct d’un fichier (par défaut, un lien vers un fichier ouvrira le fichier dans le navigateur).

Pour cela nous allons créer un fichier Download.php dans votre dossier controllers/helpers

< ?php
class Controller_Helper_Download extends Zend_Controller_Action_Helper_Abstract 
{
	/**
	 * 
	 * Enter description here ...
	 */
	public function direct($dossier,$filename)
	{
		return $this->download($dossier,$filename);
	}
 
	  public function download($dossier,$filename)
    {
        $filepath = $dossier.DS.$filename;
    	$filesize = filesize($filepath);
        $filemd5 = md5_file($filepath);
 
        // Gestion du cache
        header('Pragma: public');
        header('Last-Modified: ' . gmdate('D, d M Y H:i:s') . ' GMT');
        header('Cache-Control: must-revalidate, pre-check=0, post-check=0, max-age=0');
        // Informations sur le contenu à envoyer
       // header('Content-Tranfer-Encoding: ' . $type . "\n");
        header('Content-Length: ' . $filesize);
        header('Content-MD5: ' . base64_encode($filemd5));
        header('Content-Type: application/force-download; name="' . $filename . '"');
        header('Content-Disposition: attachement; filename="' . $filename . '"');
        // Informations sur la réponse HTTP elle-même
        header('Date: ' . gmdate('D, d M Y H:i:s', time()) . ' GMT');
        header('Expires: ' . gmdate('D, d M Y H:i:s', time() + 1) . ' GMT');
        header('Last-Modified: ' . gmdate('D, d M Y H:i:s', time()) . ' GMT');
        readfile($filepath);
        exit;
    }
 
}

Lire la suite

Juil
7

Convertir une page HTML en PDF avec ZendParadoxPDF

Paradox PDF, conversion de fichier HTML en PDF

ZendParadoxPDF est un plugin Zend qui permet de générer à la volée un PDF à partir d’une page HTML. C’est à la base un plugin EZ Publish que j’avais déjà eu l’occasion d’utiliser et dont j’avais été très satisfait.

Pour cela, il faut avoir Java d’installé sur son serveur car le script appel un fichier JAR qui s’occupe de la génération PDF.

Mise à part cette petite contrainte, ce générateur est plutôt efficace par rapport à d’autres dans la mesure où il supporte assez bien le CSS et notamment l’attribut « float », ce qui évite d’avoir à refaire une vue spécifique avec une mise en page avec des tableaux . Pour générer un PDF, il suffit d’avoir un fichier XHTML valide.

Lire la suite

Jan
8

Choisir un framework PHP

Edit du 13 janvier 2011 : si vous recherchez un tutorial pas à pas sur Yii en français, vous pouvez consulter ma traduction (le premier article est ici) de la série Learning the Yii Framework de Larry Ullman.

Dernièrement, j’ai passé pas mal de temps à tenter de savoir quel serait pour moi (j’insiste sur le côté très subjectif de la conclusion de cet article) le framework le plus adapté à mon niveau et à mes besoins.

Lire la suite

Déc
28

Astuce : ne fermez pas vos tags PHP !

Si vous programmez en PHP, vous avez sans aucun doute déjà inclus un fichier dans un autre :

include "monFichier.php";

Si vous programmez en PHP, je suis également certain que vous avez déjà rencontré cette erreur :

Headers already sent by monFichier.php

Je me trompe ?

Cette erreur vient souvent du fait que vous avez laissé trainer un caractère (balise, retour chariot, caractère quelconque)  dans un fichier qui n’est censé rien afficher (librairie, classe). Si vous incluez ce fichier et que vous utilisez une fonction qui utilise les headers (headers(), session_start() ou setcookie(), par exemple), la fameuse erreur va apparaître.

La solution est donc de ne pas fermer vos tags PHP dans les fichiers qui ne contiennent que du PHP. En MVC, cela signifie que vous ne devez en principe pas rencontrer de tag php fermant ?> (closing tags PHP) ailleurs que dans les vues.

Si vous utilisez symfony, vous aurez remarqué qu’ils ne ferment pas les tags PHP dans les classes générées. Plus fort que le Roquefort (j’adore cette expression, désolé) : Zend Framework, dans ses conventions de codage (ici et ) , indique qu’il est interdit de mettre un tag PHP fermant dans un fichier ne contenant que du code PHP.

Vous trouverez sur le site Finish Joomla des exemples de ce que je viens d’expliquer et une liste de projets open source qui ont choisi de supprimer les tags PHP fermants.

Sep
28

Autocomplétion PHP Zend Studio 7.2

Par défaut, l’autocomplétion PHP ne fonctionne pas

La solution est de supprimer le fichier :

Zend/workspaces//.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.dltk.ui.prefs

http://forums.zend.com/viewtopic.php?f=59&t=6317

Edito

Bienvenue sur Mémorandom.

Mémorandom est le blog de 2 développeurs web, Appo et Nico.

Vous y trouverez des informations sur différents domaines touchant de près ou de loin au développement web

Tutoriels Yii Framework

Nos derniers articles

Blogs Dev

Liens

Étiquettes