Advertisement
  1. Code
  2. PHP

Fácil gestión de paquetes para CodeIgniter con Sparks

Scroll to top
Read Time: 11 min

Spanish (Español) translation by Luis Chiabrera (you can also view the original English article)

Sparks es un nuevo sistema de administración de paquetes para CodeIgniter que extiende el núcleo con soporte para chispas similares a gemas.

Este tutorial entrelaza una descripción general de nivel de entrada de la arquitectura y el uso del sistema Sparks con la creación de un palomar, una chispa simple para administrar datos RSS.


Introducción

Los paquetes son bloques de código reciclable que pueden hacer las vidas de los desarrolladores mucho más fáciles.

Los desarrolladores de CodeIgniter han salivado durante mucho tiempo sobre los gestores de paquetes como gems y npm, sistemas que fortalecen a sus respectivas comunidades con herramientas y un repositorio central para desarrollar, reciclar y compartir componentes de aplicaciones útiles entre sí. Ahora, la espera terminó. Gracias a un nuevo sistema, Sparks, los desarrolladores de CodeIgniter finalmente pueden regocijarse, ya que un sistema de administración de paquetes en crecimiento es finalmente el suyo.

Visión general

Si no ha trabajado con ellos antes, solo piense en los paquetes como bloques de código reciclable que pueden hacer que la vida de los desarrolladores sea mucho más fácil. ¿Tal vez necesita una interfaz para un cubo de almacenamiento en la nube de Amazon? Sáltate las últimas noches que se vierten sobre la documentación de S3 y solo agarra la chispa.

Por su parte, el sistema de chispas consta de tres partes:

  1. Un repositorio central (getsparks.org) para almacenar y compartir chispas
  2. Una utilidad para administrar las chispas instaladas en una aplicación de CodeIgniter dada
  3. Las chispas en si

Para los fines de este tutorial, presentaremos los dos primeros, pero nos centraremos en el desarrollo de chispas y algunas consideraciones básicas para desarrollar una chispa. ¿Suena bien? Veamos cómo se hace.


Paso 1: Instalando Sparks

Es oficial: Sparks está programado para la integración en el núcleo de CodeIgniter, posiblemente tan pronto como la próxima versión 2.1. Pero dado que no es parte de una instalación predeterminada, todavía tendrá que configurar el sistema manualmente.

Si está en OSX o Linux, o si tiene la interfaz de línea de comandos de PHP instalada en Windows, la instalación es tan simple como instalar una copia limpia de CodeIgniter y emitir lo siguiente en el directorio de instalación:

Si todo fue bien, deberías ver algo como esto:

Installing the sparks systemInstalling the sparks systemInstalling the sparks system

Si por alguna razón eso no funcionó, o si está en Windows y no ha agregado PHP a su ruta de comando, también puede instalar chispas manualmente. Es un poco más de trabajo, pero el resultado es el mismo:

  1. Agregando un directorio llamado Sparks en la raíz de su directorio codeigniter
  2. Agregar una clase de cargador personalizada a application / core / MY_Loader.php
  3. (opcional) descargando y extrayendo la utilidad de línea de comandos de Sparks en su directorio codeigniter

Su instalación de CodeIgniter ahora debe estar parcheada para soportar chispas.


Paso 2: Comenzando

En la Europa medieval, cada casa señorial incluía un pequeño edificio anexo para que las palomas anidaran llamado palomar. Ya que estaremos construyendo una chispa que involucre tanto twittear como alimentar, el nombre es lo suficientemente apropiado. Pero también cumple con el único requisito de nombrar: para ser incluido en el repositorio en GetSparks.org,

Los nombres de proyectos de GetSparks deben ser únicos

Delineando la chispa

Antes de que podamos codificar, tendremos que diseñar un proyecto. En el directorio de sparks en la raíz de su instalación de CodeIgniter (créelo, si no existe), agregue una nueva carpeta para contener la chispa:

La convención dicta que las chispas están organizadas por versión, por lo que necesitaremos una subcarpeta para guardar el primer borrador. 0.0.1 es un buen lugar para comenzar.

Esta carpeta es donde tendrá lugar toda la acción. Cuando el resto del tutorial se refiere a nuestro "directorio de chispas", aquí está.

El archivo spark.info

Las cosas se ven bastante desnudas hasta ahora, pero estamos listos para comenzar a llenarlas. La primera parte de la chispa, y el único archivo técnicamente requerido por la utilidad de chispa, es spark.info. Cree un nuevo archivo llamado spark.info en su directorio de chispa y agregue lo siguiente:

Estos campos representan toda la información que necesita la utilidad spark. Administre la versión y las dependencias de todas las chispas en esta instalación de CodeIgniter. La utilidad buscará cinco cosas, pero solo se requieren las tres primeras:

  • name - el id único de chispa
  • version - versión actual
  • compatibility - versión mínima de CodeIgniter
  • dependencies - (opcional) otras chispas requeridas por esta chispa
  • tags - etiquetas (opcionales) que describen esta chispa

Incluso si no está planeando utilizar la utilidad de chispa por sí mismo, todavía es educado incluir un archivo de spark.info con cualquier chispa que planee distribuir. Una de las ventajas reales de administrar chispas de esta manera, en lugar de pegarlas directamente en el directorio sparks, es que el administrador de chispas puede usar la compatibilidad, la dependencia y la información de versión de cada chispa para asegurar un buen juego con la instalación actual de CodeIgniter, y El uno al otro. También hay otro beneficio, como veremos en un momento: las chispas instaladas fuera de la utilidad del administrador deben tener sus dependencias instaladas manualmente.

Organizando la Chispa

Con el archivo de información escrito, es hora de darle un poco de estructura a la chispa. Crea cuatro nuevas carpetas en el directorio de la chispa:

  • config
  • ayudantes
  • bibliotecas
  • vistas

Si ha trabajado con CodeIgniter anteriormente, probablemente sean nombres familiares. La clase loader de CodeIgniter trata a Sparks como paquetes, lo que significa que el contenido de estos directorios se comprueba para los componentes de la aplicación que no se pueden encontrar en el directorio / application. Por ahora, esto se aplica a cinco tipos de recursos:

  • configs
  • ayudantes
  • bibliotecas
  • modelos
  • vistas

Paso 3: escribiendo la chispa

Antes de comenzar a programar, tómese un momento para asegurarse de que su directorio de chispa contenga todas las piezas necesarias.

Installing the sparks systemInstalling the sparks systemInstalling the sparks system

¿Todo en orden? Vamos a proceder.

Crea un archivo en el directorio config recién creado y llámalo dovecote.php. Almacenaremos algunas opciones básicas aquí para decirle a la chispa dónde puede encontrar datos RSS:

No es mucho, hemos definido un nombre de usuario de Twitter (@getsparks) para capturar tweets, hemos proporcionado un punto final de API para la línea de tiempo de Twitter y hemos agregado una URL adicional para buscar historias RSS.

Ahora que la chispa sabe dónde se pueden encontrar los datos, es hora de ir a recuperar algunas fuentes. Para hacer esto, necesitaremos crear una biblioteca, llámela dovecote.php, y guárdela en el directorio libraries :

Esta biblioteca proporciona funciones de ayuda para recuperar las opciones de nuestro archivo de configuración y publicar una fuente RSS, pero la pieza crítica es retrieve (). Esta función toma datos RSS de los proveedores descritos en el archivo de configuración de dovecote en varios pasos:

  • Primero, se genera la dirección del feed RSS de Twitter. Config esbozó un nombre de usuario (twitter) y un punto final (twitterURL); ahora, los dos se combinan utilizando sprintf.
  • A continuación, los datos RSS en cada fuente se recuperan utilizando la función loadURL de la biblioteca atomizer . Esta función devuelve un objeto "AtomizerFeed" que proporciona algunas funciones útiles para manipular datos RSS.
  • Finalmente, la operación convolve de AtomizerFeed se utiliza para combinar los elementos de las dos fuentes en una sola fuente, que se devuelve.
  • En este punto, estamos casi listos para iniciar el palomar en una aplicación en vivo. Solo tenemos que verificar para asegurarnos de que nuestra aplicación incluya todas las dependencias del palomar y que la chispa se cargue correctamente.


    Paso 4: Dependencias

    Cuando escribimos spark.info, recordemos la línea donde describimos las dependencias de palomar:

Esto significa que el palomar se basa en otra chispa, el atomizador, para funcionar. Una vez que las chispas se confirman en el repositorio getsparks.org, la utilidad del administrador descargará las dependencias automáticamente. Sin embargo, mientras permanezcamos en el desarrollo local, tendremos que hacerlo nosotros mismos.

Si está utilizando el administrador de chispas, puede instalar Atomizer navegando a su directorio CodeIgniter e invocando la función install del administrador:

Nota: si estás en Windows, deberás invocar php tools \ spark install -v0.0.2 atomizer en su lugar.

Si no está utilizando el administrador, o si la instalación no se completó con éxito, puede descargar Atomizer de Github y extraerlo en el directorio sparks de su aplicación junto a la carpeta que contiene el palomar.


Paso 5: Autocarga

Antes de que el palomar esté disponible para otras partes de la aplicación, debemos asegurarnos de que se cargará correctamente. Regrese a la carpeta de configuración en su directorio de chispa y pegue lo siguiente en un nuevo archivo llamado autoload.php.

Cada vez que CodeIgniter carga una chispa, intentará cargar todos los recursos listados en autoload.php también. Esto permite a los autores de Sparks definir los recursos a los que los usuarios deberían tener acceso inmediato cada vez que cargan la chispa. Debido a que la biblioteca dovecote está especificada aquí, por ejemplo, tendremos acceso inmediato a la función retrieve tan pronto como se cargue la chispa.

Vale la pena mencionar que los recursos descritos en autoload.php no necesitan residir en el directorio de la chispa. Siempre que se encuentren en algún lugar de la ruta de búsqueda de CodeIgniter, la aplicación debería poder encontrarlos. Observe que atomizer se está cargando en el ejemplo anterior; ¡No haría mucho bien enumerar las dependencias de una chispa pero no podría cargarlas!

Guarda el archivo de carga automática y vamos a cargarlo todo. En el controlador de bienvenida en su aplicación principal (/application/controllers/welcome.php), agregue lo siguiente:

Vamos a caminar a través de eso:

  1. Le pedimos a CodeIgniter que cargue el palomar, sabiendo que todos los recursos solicitados en config / autoload.php también se cargarán
  2. La función retrieve del palomar se usa para obtener copias de las fuentes RSS descritas en config / dovecote.php
  3. La línea de tiempo combinada producida por retrieve se sirve como una fuente RSS que utiliza la función publish de dovecote

Véalo en acción

Navega para welcome / dovecote en tu navegador, y deberás recibir un RSS que describa los tweets y artículos que ha recopilado dovecote.


Paso 6: Construyendo sobre la Chispa

Hagamos el palomar un poco más útil. Primero, crearemos una plantilla de vista básica para mostrar el título de cada artículo en nuestra línea de tiempo:

A continuación, haremos que la vista sea accesible al proporcionar una función auxiliar que otras partes de la aplicación pueden usar para representar la línea de tiempo en HTML.

La función dovecote_timeline y su vista epónima ahora se pueden usar para representar la línea de tiempo en cualquier lugar de nuestra aplicación. Pero, de acuerdo con la filosofía de lo que necesita CodeIgniter, no lo haremos disponible automáticamente a través de autoload.php. En su lugar, tendremos que cargar el ayudante manualmente cada vez que sea necesario. Regrese al controlador de bienvenida de su aplicación y actualice la función dovecote para generar una versión HTML del feed:

Actualice su navegador y ahora debería ver una lista de todos los elementos en la línea de tiempo de los palomeros.

An HTML version of the dovecote timelineAn HTML version of the dovecote timelineAn HTML version of the dovecote timeline

Terminando

¡Felicidades! Ahora eres el propietario de una chispa muy simple, pero hay mucho más que se puede hacer. Antes de enviar dovecote a la acción, puede considerar escribir funciones adicionales. Los detalles dependen de usted, pero algunas características útiles pueden incluir:

  • almacenamiento en caché de respuestas API
  • Vistas para embellecer los datos recuperados.
  • persistencia de datos para guardar elementos de la línea de tiempo más antiguos (¡primero revise la licencia del feed)

Este tutorial ofrece los esquemas más simples de lo que se puede hacer con chispas e introduce las ventajas que las chispas pueden proporcionar para minimizar la repetición y acelerar el desarrollo.

¿Trabajando en tu propia chispa? ¿Tienes problemas para empezar? ¡Comparte un poco más en los comentarios a continuación y muchas gracias por leer!

Advertisement
Did you find this post useful?
Want a weekly email summary?
Subscribe below and we’ll send you a weekly email summary of all new Code tutorials. Never miss out on learning about the next big thing.
Advertisement
Looking for something to help kick start your next project?
Envato Market has a range of items for sale to help get you started.