Note

The online documentation is produced by a web publishing technology created by us to read the documents origins in OpenOffice Writer (ODT) and Microsoft Word (docx) formats and produces native web and PDF versions. In this way we maintain Louder project documentation update and in sync on each of its formats.
Select a Language:
Componente Extensions
Introducción
El componente Extensions se encarga de administrar las extensiones cargadas en una aplicación ya sea de forma dinámica ó estática.

Una extensión es un componente del framework que no se carga por defecto y tampoco es inyectado al requerirse en un proceso de negocio.
Cargar una extensión dinámicamente
La carga dinámica de extensiones permite cargar componentes del framework ó de usuario en el momento en el que se necesiten y por consiguiente reducir ligeramente la carga de lectura de disco.
Ejemplo: Cargar una extension dinámicamente usando el componente Extensions
<?php

class PressController extends ApplicationController {

     public function indexAction(){

          //Cargar extensión de Localización
          Extensions::loadExtension("Kumbia.Locale");

      }
}
Cargar una extensión estáticamente
Los extensiones que se usen ampliamente en la aplicación pueden cargarse mediante el archivo de configuración de las aplicaciones llamado config/boot.ini. La estructura del archivo es la siguiente:
Ejemplo: Cargar una extension estáticamente usando boot.ini
; Cargar extensiones

[modules]
extensions = Kumbia.Acl,User.MyComponent,Mail.Phpmailer

La sección modules tiene la opción de configuración extensions en la cual se puede definir las extensiones a cargar separandolas por comas. Las extensiones que están en el namespace Kumbia hacen parte de la biblioteca de componentes de framework, las que empiezan por User son componentes que el desarrollador a creado y están ubicadas en el directorio library de la aplicación, por último, la extensión se localiza en el directorio principal Library de la instancia como es el caso de PhpMailer.
Cargar componentes de Zend Framework
Componentes especificos de Zend Framework pueden ser cargados estáticamente ó dinámicamente usando la convención "Zend.Componente". Por defecto el framework es buscado en la ruta de la instancia Library/Zend, esta ruta puede ser modificada usando el método Extensiones::setZendDirectory.

Para cargar una extensión dinámicamente se usa:
Ejemplo: Cargar componentes de Zend Framework
Load::extension("Zend.Dojo")

Para cargarlas en config/boot.ini se usa:
Ejemplo: Cargar componentes de Zend Framework estáticamente
[modules]
extensions = Zend.Amf
Cargar archivos individuales al iniciar la petición
Este componente también permite cargar archivos individuales al inicio de cada petición que preferiblemente sean usados con frecuencia buscando mejorar el rendimiento.

Estos archivos se definen declarativamente separandolos por comas en el archivo boot.ini así:
Ejemplo: Cargar archivos PHP individuales en boot.ini
[classes]
files = apps/default/classes/MiClase.php, Library/Kumbia/ActiveRecord/SessionRecord/SessionRecord.php,Library/Kumbia/Locale/LocaleMath/LocaleMath.php
Obtener información de extensiones cargadas
Los siguientes métodos de clase Extensions proporcionan información sobre las extensiones cargadas:

public boolean static isLoaded(string $extensionName)
Devuelve true si la extensión ya ha sido cargada en la petición actual, false de lo contrario.

public array static getLoadedExtensions()
Devuelve un arreglo con los nombres de las extensiones cargadas en la petición actual.
Inyección de componentes
Kumbia Enterprise Framework utiliza inyección de dependencia para cargar los componentes justo cuando son requeridos. Si un componente es usado frecuentemente por la aplicación es probable que cargarlo estáticamente mejore el rendimiento en los demás casos es recomendable permitir que sean inyectados durante la ejecución.