Ti trovi su Risorse Webmaster > Usare Zend Framework con CodeIgniter

Usare Zend Framework con CodeIgniter




Tutti coloro che hanno utilizzato almeno una volta il framework CodeIgniter avrà notato che per realizzare un progetto di grande portata da solo non basta. Per realizzare un buon progetto servirebbe lo Zend Framework che offre librerie adattate per la creazione di un motore di ricerca tipo google, di un sistema per la conversione di qualsiasi documento in pdf e via dicendo.

Ovviamente Zend Framework e CodeIgniter sono due sistemi diversi ma è possibile estendere le funzionalità di base CodeIgniter con Zend Framework.

Ciò che ho fatto è quello di utilizzare semplicemente la struttura della libreria CodeIgniter per caricare le risorse di Zend Framework. Di seguito è riportato il tutorial.

 Supponendo che hai già installato CodeIgniter. In caso contrario si prega di consultare il manuale per l'installazione.

  1. Scarica Zend Framework dal sito ufficiale.

  2. Decomprimere il pacchetto Zend Framework, e copiare la cartella Zend (in Library) nela catrtella application/libraries/ di CodeIgniter. Si può effettivamente inserire la cartella ovunque, ma ricordatevi di modificare lo script di conseguenza (leggi i commenti nello script!).

  3. Posizionare la libreria dello script (fornite alla fine del post) in application/libraries/

  4. Fatto! Questo è tutto quello che devi fare. Ora, vediamo un esempio di utilizzo.


Esempio di utilizzo.

<?php

class Welcome extends Controller {

        function Welcome()
        {
                parent::Controller();
        }

        function index()
        {
                $this->load->library('zend', 'Zend/Service/Flickr');
                // newer versions of CodeIgniter have updated its loader API slightly,
                // we can no longer pass parameters to our library constructors
                // therefore, we should load the library like this:
                // $this->load->library('zend');
                // $this->zend->load('Zend/Service/Flickr');

                $flickr = new Zend_Service_Flickr('YOUR_FLICKR_API_KEY');

                $results = $flickr->tagSearch('php');
                foreach ($results as $result)
                {
                        echo $result->title . '<br />';
                }
                //$this->load->view('welcome_message');
        }
}
?>

Library script

Copia ed inclola il nuovo file chiamato Zend.php in application/libraries/.


<?php if (!defined('BASEPATH')) {exit('No direct script access allowed');}

/**
 * Zend Framework Loader
 *
 * Put the 'Zend' folder (unpacked from the Zend Framework package, under 'Library')
 * in CI installation's 'application/libraries' folder
 * You can put it elsewhere but remember to alter the script accordingly
 *
 * Usage:
 *   1) $this->load->library('zend', 'Zend/Package/Name');
 *   or
 *   2) $this->load->library('zend');
 *      then $this->zend->load('Zend/Package/Name');
 *
 * * the second usage is useful for autoloading the Zend Framework library
 * * Zend/Package/Name does not need the '.php' at the end
 */
class CI_Zend
{
        /**
         * Constructor
         *
         * @param       string $class class name
         */
        function __construct($class = NULL)
        {
                // include path for Zend Framework
                // alter it accordingly if you have put the 'Zend' folder elsewhere
                ini_set('include_path',
                ini_get('include_path') . PATH_SEPARATOR . APPPATH . 'libraries');

                if ($class)
                {
                        require_once (string) $class . EXT;
                        log_message('debug', "Zend Class $class Loaded");
                }
                else
                {
                        log_message('debug', "Zend Class Initialized");
                }
        }

        /**
         * Zend Class Loader
         *
         * @param       string $class class name
         */
        function load($class)
        {
                require_once (string) $class . EXT;
                log_message('debug', "Zend Class $class Loaded");
        }
}

?>

Script per l'utilizzo con Kohana

<?php defined('SYSPATH') or die('No direct script access.');

/**
 * Zend Framework Loader
 *
 * Put the 'Zend' folder (unpacked from the Zend Framework package, under 'Library')
 * in CI installation's 'application/libraries' folder
 * You can put it elsewhere but remember to alter the script accordingly
 *
 * Usage:
 *   1) $this->load->library('zend', 'Zend/Package/Name');
 *   or
 *   2) $this->load->library('zend');
 *      then $this->zend->load('Zend/Package/Name');
 *
 * * the second usage is useful for autoloading the Zend Framework library
 * * Zend/Package/Name does not need the '.php' at the end
 */
class Zend
{
        /**
         * Constructor
         *
         * @param       string $class class name
         */
        function __construct($class = NULL)
        {
                // include path for Zend Framework
                // alter it accordingly if you have put the 'Zend' folder elsewhere
                ini_set('include_path',
                ini_get('include_path') . PATH_SEPARATOR . APPPATH . 'libraries');

                if ($class)
                {
                        require_once (string) $class . EXT;
                        Log::add('debug', "Zend Class $class Loaded");
                }
                else
                {
                        Log::add('debug', "Zend Class Initialized");
                }
        }

        /**
         * Zend Class Loader
         *
         * @param       string $class class name
         */
        function load($class)
        {
                require_once (string) $class . EXT;
                Log::add('debug', "Zend Class $class Loaded");
        }
}

?>

 
© Computer Flash | |