Jan 5 2010

PEAR

Nick

PEAR es un sistema para la redistribución e instalación de librerías y frameworks para PHP que inicio en 1999, de la mano de Stig Bajkke, para promover la reutilización de código. PEAR es una biblioteca estructurada que promueve un estándar de codificación y mantiene un sistema para redistribuir y administrar paquetes.

El administrador de paquetes (PEAR package manager), que corre bajo linea de comandos, pear, permite instalar, desinstalar y actualizar paquetes de una forma fácil. Existen paquetes para tareas básicas, por ejemplo: autenticación, bases de datos, cifrado, XML.

Un paquete PEAR es distribuido como un archivo comprimido, tar.gz. Cada archivo consiste en un componente para PHP. De esta forma pear lo instala de manera global en el sistema.

Instalando PEAR

Versiones recientes de PHP, mayores a PHP 4.3.0, ya traen todo lo necesario para trabajar con PEAR. A menos que por extrañas razones no tengas instalado PEAR puedes pasar a la siguiente sección.

Windows

  1. Una vez instalado PHP, ejecutar c:\{PATH-TO-PHP}\go-pear.bat

  2. Agregar la ruta al path.

Linux/Unix

  1. Distribuciones basadas en Debian.
    • apt-get install php-pear
  2. Forma genérica.
    • # curl http://pear.php.net/go-pear | php

Servidor

Si deseas instalar PEAR en un servidor al que no tienes acceso por ssh.

  1. Descarga http://pear.php.net/go-pear
  2. Coloca el archivo go-pear.php en tu servidor. p.e. http://ihtoa.org/pear/go-pear.php
  3. Úsalo desde la interfaz web.

Instalando paquetes

Como ya se menciono PEAR funciona a base de paquetes. Un paquete es una colección de archivos organizados y definidos por meta-información contenida en el paquete. Un paquete es una librería.

PEAR tiene en su canal por default varios paquetes bastante interesantes.

Un canal es un sitio web que distribuye paquetes para la instalación manual o mediante el PEAR package manager. Ademas provee meta-información de los paquetes que sirve para identificarlos y decidir cual de ellos instalar.

Por default, PEAR solo tiene registrado su propio canal: pear.php.net. Sin embargo, diversos proyectos basados en PHP pueden ofrecer su propio canal de PEAR para proporcionar una forma fácil de instalación para su aplicación. En la pagina Channels de PEAR se encuentra una lista con algunos otros canales, aunque no son los únicos.

Para instalar un paquete y/o agregar un canal se usa la linea de comandos. El comando pear nos permite administrar todo lo necesario para trabajar con PEAR.

Para ver una lista detallada de lo que podemos hacer basta teclear pear.

Canales

  • channel-add <channel.xml> ::  Agrega un canal.
  • channel-delete <channel name> :: Elimina un canal, solo si no hay paquetes instalados de este canal.
  • channel-discover [<channel.xml>|<channel name>] :: Agrega un canal.
  • channel-info <channel name> :: Muestra información sobre al canal especificado.
  • channel-update [<channel.xml>|<channel name>]:: Actualiza el canal especificado.
  • update-channels :: Actualiza todos los canales.

Paquetes

  • info [channel/]<package> :: Muestra información acerca del paquete especificado.
  • install [channel/]<package> :: Instala el paquete especificado.
  • uninstall [channel/]<package> :: Desinstala el paquete especificado.
  • upgrade [[channel/]<package>] :: Actualiza el paquete especificado. Si no se especifica un paquete actualiza todos los paquetes de todos los canales.

Información

  • list [-a] [-c <channel>] [-i] [[channel/]<package>] :: Si se especifica un paquete muestra todos los archivos que pertenecen a dicho paquete. Sin parametros muestra los paquetes instalados en el canal por default. -c channel muestra los paquetes instalados del canal especificado. -a muestra todos los paquetes instalados de todos los canales disponibles.
  • list-all [-c channel] :: Muestra todos los paquetes  del canal especificado, sino se incluye el parametro muestra todos los paquetes del canal por default.
  • list-channels :: Muestra información de todos los canales disponibles.
  • list-files <package> :: Muestra los archivo del paquete especificado.
  • list-upgrades :: Muesta las actualizaciones de todos los canales disponible.

Ejemplos

  • Symfony
    # pear channel-discover pear.symfony-project.com
    Adding Channel "pear.symfony-project.com" succeeded
    Discovery of channel "pear.symfony-project.com" succeeded
    # pear list-all -c symfony
    All packages [Channel symfony]:
    ===============================
    Package                 Latest Local
    symfony/pake            1.1.4        Build system with capabilities similar to make.
    symfony/symfony         1.4.1        Symfony is a complete framework designed to optimize the development of web applications.
    symfony/YAML            1.0.2        The Symfony YAML Component.
    symfony/EventDispatcher 1.0.0        The Symfony Event Dispatcher Component.
    # pear install -o symfony/symfony
    downloading symfony-1.4.1.tgz ...
    Starting to download symfony-1.4.1.tgz (3,150,576 bytes)
    .............................................................................................................................................................................................................................................................................................................................................................................................................................done: 3,150,576 bytes
    install ok: channel://pear.symfony-project.com/symfony-1.4.1
    # symfony --version
    symfony version 1.4.1 (/usr/share/php/symfony)
  • FirePHP
    # pear channel-discover pear.firephp.org
    Adding Channel "pear.firephp.org" succeeded
    Discovery of channel "pear.firephp.org" succeeded
    # pear list-all -c pear.firephp.org
    All packages [Channel pear.firephp.org]:
    ========================================
    Package             Latest Local
    firephp/FirePHPCore 0.3.1        Core feature and communication library
    firephp/ZendServer  0.1.3        FirePHP for Zend Server
    # pear install -o pear.firephp.org/FirePHPCore
    downloading FirePHPCore-0.3.1.tgz ...
    Starting to download FirePHPCore-0.3.1.tgz (22,630 bytes)
    ........done: 22,630 bytes
    install ok: channel://pear.firephp.org/FirePHPCore-0.3.1
# pear list-channels
Registered Channels:
====================
Channel                  Alias   Summary
doc.php.net              phpdocs PHP Documentation team
pear.firephp.org         firephp Server code for FirePHP Firefox
Extension (http://www.firephp.org/)
pear.php.net             pear    PHP Extension and Application
Repository
pear.symfony-project.com symfony The symfony project PEAR channel
pecl.php.net             pecl    PHP Extension Community Library
__uri                    __uri   Pseudo-channel for static packages
# pear list -a
Installed packages, channel __uri:
==================================
(no packages installed)
 
Installed packages, channel doc.php.net:
========================================
(no packages installed)
 
Installed packages, channel pear.firephp.org:
=============================================
Package     Version State
FirePHPCore 0.3.1   stable
 
Installed packages, channel pear.php.net:
=========================================
Package          Version State
Archive_Tar      1.3.5   stable
Console_Getopt   1.2.3   stable
PEAR             1.9.0   stable
Structures_Graph 1.0.3   stable
XML_Util         1.2.1   stable
 
Installed packages, channel pear.symfony-project.com:
=====================================================
Package Version State
symfony 1.4.1   stable
 
Installed packages, channel pecl.php.net:
=========================================
(no packages installed)

Para saber más

# pear channel-discover pear.symfony-project.com
Adding Channel “pear.symfony-project.com” succeeded
Discovery of channel “pear.symfony-project.com” succeeded
# pear list-all -c symfony
All packages [Channel symfony]:
===============================
Package                 Latest Local
symfony/pake            1.1.4        Build system with capabilities similar to make.
symfony/symfony         1.4.1        Symfony is a complete framework designed to optimize the development of web applications.
symfony/YAML            1.0.2        The Symfony YAML Component.
symfony/EventDispatcher 1.0.0        The Symfony Event Dispatcher Component.
# pear install -o symfony/symfony
downloading symfony-1.4.1.tgz …
Starting to download symfony-1.4.1.tgz (3,150,576 bytes)
……………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………..done: 3,150,576 bytes
install ok: channel://pear.symfony-project.com/symfony-1.4.1
# symfony –version
symfony version 1.4.1 (/usr/share/php/symfony)

Mar 14 2009

Revista: UXI Cubana

lesthack

uxi08v02

UXI es una revista que al igual que la revista Papirux y la revista Atix promueven y difunden el Software Libre. La revista ya lleva 2 años en linea, y nos cuentan lo que han pasado y que a pesar de ello siguen en pie las ganas de seguirla publicando:

Hace 2 años por estas fechas 3 estudiantes de la Comunidad de Software Libre, con el patrocinio del Proyecto Unicornios de la Universidad de las Ciencias Informáticas (UCI), nos dimos a la tarea de crear la primera Revista de Software libre de la universidad, muchos se mostraron excépticos, pero con buen ánimo y ganas de hacer fue publicada el 31 de enero de 2007 la primera edición de lo que sería UXi, nombre que ganó después a partir de propuestas hechas por los miembros de la comunidad. Como fundador de la revista recuerdo lo que comentamos luego de liberar el primer número “ahora lo más difícil será mantener la revista mensualmente” y estábamos en los cierto, desde entonces hasta hoy, ha sido un reto para el equipo editorial obtener artículos relacionados con nuestra temática, nos hemos esforzado mucho para cumplir con la misión de socializar el conocimiento en aras de apoyar el proceso de migración a software libre en la universidad y en Cuba. Con el tiempo UXi fue creciendo en calidad, se incluyeron otras secciones, se amplió el equipo editorial y con cada publicación aumentaba nuestro público lector…

Seguir leyendo…

De igual manera los invito a que le den un vistazo no solo a este número si no a todos los números, y donde podrás notar la evolución que han tenido Papirux, Atix y Uxi.

Descargar:

uxi08_v02 [PDF]

Enlace:

Revista Uxi


Dec 29 2008

Cake PHP

Nick

cake-logo

En mononeurona se hacen eco de la publicación de la versión más reciente de CakePHP.

CakePHP es una aplicación web de código abierto para la producción de aplicaciones web escritas en PHP. Está escrito en PHP y se distribuye bajo la licencia MIT. >>W

Después de exactamente dos años de desarrollo se presenta la siguiente versión estable de CakePHP. Algunas de sus caracterí­sticas:

  • Tests
  • Command-line infrastructure
  • Plugin architecture
  • Internationalization and Localization support
  • Email component
  • Security component
  • Cookie component
  • Database drivers
  • Caching
  • Debugger class, for detailed introspection of errors
  • Pagination
  • FormHelper

¿Que esperas? A descargarlo. Dicen que puede ser útil en algunas materias de la escuela. ;-)

Enlaces:

Bonus:

Como depurar programas escritos en PHP desde eclipse.

Enlace: CakePHP | Ví­a: Mononeurona