11jun/105
Añadir librería propia a Zend Framework
Existe la posibilidad que cuando estemos realizando el desarrollo de nuestra aplicación, necesitemos tener acceso a funcionalidades que puedan ser utilizadas en más de un punto. Por lo que podemos optar a sacar esa funcionalidad a una librería externa que pueda ser reutilizada.
Para ello, seguiremos los siguientes pasos:
- Añadimos las siguientes entradas a nuestro archivo application.ini
- Creamos la estructura de directorios en función de lo indicado en la línea 3 del paso anterior y creamos dentro el archivo que contendrá nuestra clase de la librería privada
- Creamos una clase sencilla, que escriba en pantalla algún mensaje, cuando sea llamada desde nuestra aplicación. A destacar el nombre de la clase, la cual contiene la ruta de directorios hasta ella.
- Para finalizar, incluimos una llamada a la clase que se ha creado dentro de nuestra librería privada en IndexController.php, al final del todo, por ejemplo
- Accedemos a la home de nuestra aplicación y vemos cómo se realiza correctamente la llamada a nuestra clase que se encuentra en nuestra librería privada
includePaths.library = APPLICATION_PATH "/../library" autoloaderNamespaces[] = ZendExt_ pluginPaths.ZendExt_Application_Resource = "ZendExt/Application/Resource"
Donde en la línea 1 indicamos la ruta desde la aplicación hasta el directorio donde está nuestra librería. En la línea 2 indicamos el namespace donde se econtrará nuestra librería, y en la línea 3 se indica la ruta completa donde están los archivos que constituyen nuesrta nueva librería
class ZendExt_Application_Resource_Prueba {
function __construct() {
Zend_Debug::dump("ZendExt_Application_Resource_Prueba CONSTRUIDO " . APPLICATION_PATH, date('D, d M Y H:i:s'), $echo = true);
}
function __destruct() {
Zend_Debug::dump("ZendExt_Application_Resource_Prueba DESTRUIDO " . APPLICATION_PATH, date('D, d M Y H:i:s'), $echo = true);
}
public function write(){
Zend_Debug::dump("Prueba_Clase de escritura", $label = 'Mensaje', $echo = true);
}
}
class IndexController extends Zend_Controller_Action
{
public function init(){
/* Initialize action controller here */
}
public function indexAction(){
//Título de la vista
$this->view->title = "Mis Libros";
//Añadimos el título a la vista
$this->view->headTitle($this->view->title, 'PREPEND');
//Añadimos la llamada a la librería jQuery
$this->view->headScript()->appendFile($this->view->baseUrl() . "/js/jquery-1.4.2.min.js");
//Creamos el modelo, para la consulta de libros
$libros = new Model_DbTable_Libros();
//Devolvemos a la vista todos los libros
$this->view->libros = $libros->fetchAll();
$prueba = new ZendExt_Application_Resource_Prueba();
}
}
¡¡¡Y esto es todo por el momento!!!
¡¡¡Cualquier comentario, mejora, o ayuda sobre este tema siempre será bienvenido!!!
[ad#Google Adsense]
Si te ha gustado este artículo, te puede interesar ...
Comentarios (5)
Trackbacks (0)
( suscribirse a los comentarios de esta entrada )
Aún no hay trackbacks.
12 diciembre, 2010 - 21:09
Excelente! Muchas gracias por el consejo… ^_^
12 diciembre, 2010 - 21:34
@RowG
Hola, de nada!!! Y pásate por aquí cuando quieras!!!
Salu2,
José Carlos
10 enero, 2011 - 18:53
Saludos:
Stoy aprendiendo a mejorar mis conocimientos en ZF, tengo un problema al tratar de agregar una nueva libreria.
en el application.ini las primeras lineas que uso para gregar mi libreria son…
[production]
includePaths.library = APPLICATION_PATH “/../library”
autoloaderNamespaces[] = “Nexus_”
pluginPaths.Nexus = “Nexus”
;structura
library –
|_ Nexus _
|_ Nexus.php
;y dentro de mi clase Nexus.php
.. y cuando llamo a mi clase desde mi controlador
$objNexus = new Nexus();
…………….. me muestra un tremendo orror… cuando corro el proyecto.. e ingreso a mi vista de mi controlador en el browser, me muestra tremenda hoja en blanco, y cuando comento mi clase instanciada todo funciona normal …
Ayuda no tengo idea, de como solucionarlo…
muchas gracias por apoyar a la comunidad..
11 enero, 2011 - 17:01
@Gadowks
Hola, por lo que veo el lugar donde se encuentra el fichero “Nexus.php” con la librería, no se encuentra ubicado correctamente, ya que este debería estar dentro del directorio “/Nexus”. De manera que quedaría la ruta de la siguiente manera: /library/Nexus/Nexus.php.
¡¡¡Espero haberte servido de ayuda!!!
Salu2,
José Carlos
11 enero, 2011 - 17:03
@Gadowks
Hola de nuevo, perdona, veo al aprobar el comentario, que la estructura de directorios y archivo es la correcta, por lo que te faltaría instanciar correctamente la clase, siendo su manera correcta la siguiente:
$objNexus = new Nexus_Nexus();