[php] Kohana + Zend Framework интеграция
Published on 01.07.2010
Не е тайна че обичам Kohana, не просто обичам а я обожавам, но пък Zend Framework никак не е за подценяване, има много готови библиотеки една от които е разработената с Google - Google Gdata, която дава възможност за достъп до API то на Youtube, Google Calendar, Google Docs, Picasa .... и още много други... И какво правим когато искаме да използваме тези класове за проект който се пише с Kohana framework ?
Ето какво
1. Сваляме gdata библиотеката, разархивираме я в system/vendors/Zend/
2. Отиваме в application/libraries/
3. Създаваме файл Zend.php
4. Добавяме следното съдържание в създадения по рано файл
<?php class Zend { /** * Returns a singleton instance of URI. * * @return object */ public static function instance($class = NULL) { static $instance; // Create the singleton if ($instance == NULL) { // Initialize the URI instance $instance = new Zend($class); } else { $instance->load($class); } return $instance; } /** * 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.'vendors'); 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"); } }5. Запазваме И това е ! Начина на използване е следният
public function youtube() { Zend::instance('Zend/Gdata/ClientLogin'); Zend::instance('Zend/Gdata/YouTube'); .... вашият код ..... }ПС: това е за Kohana 2.x версията. За 3.x все още не ми се е налагало но предполагам метода е същият.