miércoles, 22 de octubre de 2014

Más sobre Composer

El otro día os hablaba de Composer el gestor de dependencias para proyectos en PHP que permite incorporar a nuestros proyecto en PHP multitud de librerías, gestionando sus dependencias de forma magistral. Pues hoy he encontrado el artículo Composer, gestor de dependencias para PHP que amplía la información que yo mismo puse aquí. Os recomiendo su lectura.

Actualización (23/10/2014): Los chicos de desarrolloweb.com han publicado hoy una segunda parte del artículo de Composer llamada Cómo Instalar Composer, donde se detallan las distintas formas de instalar Composer en los más populares sitemas poerativos: Windows, Linux, Max OSX, ...

jueves, 16 de octubre de 2014

Función javascript para formatear un número de teléfono

El título de este artículo lo dice todo: Función javascript para formatear un número de teléfono. Así pues ahí va:

String.prototype.formatPhone = function(sep) {

    if(typeof sep == 'undefined') {
        sep = ' ';
    }

    var num = this.replace(/[^\d\+]/g, '');
    var len = num.length;

    if(len < 7) {
        return num;
    }
    else if(len < 10) {
        return num.replace(
            /(\d{1,3})(\d{3})(\d{3})/,
            '$1' + sep + '$2' + sep + '$3'
        );
    }
    else {
        return num.replace(
            /(\d+)(\d{3})(\d{3})(\d{3})/,
            '$1' + sep + '$2' + sep + '$3' + sep + '$4'
        );
    }
};

Y para usarlo...

    var phone = '[+34] 93 6665544'.formatPhone(' ');
    document.write(phone);

Resultado: +34 936 665 544.

lunes, 13 de octubre de 2014

Manual de buenas prácticas en Symfony2

Me acabo de enterar a través del fabuloso blog Symfony.es de Javier Eguiluz de la presentación del manual oficial de buenas prácticas para desarrollar aplicaciones en Symfony2. Si estás interesado puedes descargarlo en formato PDF en inglés o en español, aunque el propio Javier advierte que el contenido cambiará en los próximos días pues por ahora sólo se ha publicado una versión preliminar. También puedes consultar on-line el manual en Español.

Se trata de una serie de reglas que configuran un conjunto de buenas prácticas que recomiendan desde SensioLabs y que han sido aprobadas por el propio Fabien Potencier. Puedes estar de acuerdo o no con esta guía por lo que si eres desarrollador experto no es necesario que las sigas. Tampoco es obligatorio modificar un proyecto existente para seguirlas. Sin embargo me parece una gran ayuda especialmente para principiantes y para proyectos nuevos. Personalmente no estoy totalmente de acuerdo con todas pero me parece muy interesante especialmente las recomendaciones sobre como crear el bundle de aplicación, y donde poner los recursos como las vistas o las traducciones.

jueves, 28 de agosto de 2014

Herramientas para desarrollo web: Composer

Composer es una de las herramientas fundamentales para desarrollar aplicaciones y páginas web en lenguaje PHP, ya que permite administrar las dependencias de nuestro proyecto con las distintas librerías externas que necesitemos usar. Composer instala las librerías que el proyecto necesita en una carpeta del propio proyecto. Vamos a ver como funciona con un ejemplo:

Supongamos que nuestro proyecto PHP necesita generar archivos Excel. En lugar de crear todo el código necesario desde cero, miramos en Packagist si alguien ha creado una herramienta open-source que haga lo que necesitamos y vemos que existe una librería llamada PHPExcel. Esa librería a su vez necesitará otras, probáblemente. En lugar de descargar el código fuente de la librería y buscar las dependencias dejamos que sea Composer el que resuelva el problema.

Para ello lo primero será tener instalado Composer en el PC, ya sea de forma global o en el directorio raíz del proyecto. Composer es un programa escrito en php que descargaremos y ejecutaremos.

$ curl -sS https://getcomposer.org/installer | php

Obtendremos un archivo llamado composer.phar que luego para instalarlo globalmente podemos moverlo a un directorio del path como /usr/bin o /usr/local/bin, dándole permisos de ejecución.

$ mv composer.phar /usr/local/bin/composer
$ chmod a+x /usr/local/bin/composer

Una vez tenemos Composer instalado de forma global, creamos el archivo composer.json en la raíz de nuestro proyecto:

{
    "require": {
        "phpoffice/phpexcel": "dev-master"
    }
}

Y entonces usamos composer para que resuelva las dependencias:

$ composer install

La ejecución de composer crea la carpeta vendor y descarga automáticamente la librería phpexcel y las dependencias de ésta si las hay. También crea un archivo llamado autoload.php que será necesario incluir en nuestro proyecto para usar las librerías creadas por composer.

<?php
require __DIR__ .'/vendor/autoload.php';

Requerimientos:

Al ser un programa escrito en PHP Composer es multiplataforma por lo que funciona tanto en Linux como en OSX y en Windows. Necesita una versión de PHP 5.3.2 o superior y puede requerir modificar alguna configuración en php.ini, pero el propio instalador informa de cualquier incompatibilidad. Además es conveniente tener instalado Git, Svn u otras herramientas para el control de código fuente.


Enlaces:

martes, 29 de julio de 2014

Silex, un micro-framework para PHP basado en Symfony2

Symfony2 es uno de los frameworks para PHP más completos, versátiles y potentes que existen actualmente en el mercado. Pero, ¿Qué ocurre si no necesitamos tanta potencia? ¿Que hacemos si queremos desarrollar una pequeña página corporativa donde la potencia de Symfony2 es más un estorbo que una ayuda? En esos casos en lugar de usar Symfony u otro framework potente como Zend se suele optar por personalizar un Wordpress, un Joomla o cualquier otro CMS. El problema entonces es que perdemos el control del desarrollo en temas como gestión de permisos, teniendo que adaptar nuestros requerimientos a lo que pueda hacer el CMS elegido. Sin embargo existe una tercera vía: El uso de un micro-framework que sin ser tan potente como un Symfony o un Zend nos proporcione la suficiente versatilidad para desarrollar una pequeña página web de forma ágil. Y en este caso la propia SensioLabs y Fabien Potencier, creadores de Symfony, nos dan la solución: Silex.

Silex es un micro-framework para lenguaje PHP basado en componentes de Symfony2. Funciona con PHP 5.3 o superior y tiene licencia MIT (código fuente libre). La gran potencia de Silex es que aprovecha gran parte de los componentes del núcleo de Symfony2, que están sobradamente probados, pero en cambio en mucho más fácil de usar que Symfony2. El paquete básico de Silex permite desarrollar páginas web desde cero, proporcionando un sencillo sistema de definición de rutas propio y poco más. Sin embargo es posible añadir a Silex multitud de componentes externos que también usa Symfony: desde Twig hasta Doctrine, pasando por Swiftmailer y algunos de los componentes más potentes de Symfony como sus formularios, su sistema de validación, su sistema de traducciones, etc.

La documentación de Silex es muy completa, en la línea de los otros productos de SensioLabs.


Ejemplo: Hola mundo en Silex

require_once __DIR__ . '/../vendor/autoload.php';

$app = new Silex\Application();

$app->get('/', function() {
    $output = 'Hola mundo.';
    return $output;
});

$app->run();

viernes, 11 de julio de 2014

Nueva imágen corporativa y nueva web

Este mes estamos de celebración en iFraktal pues estrenamos, logotipo, imagen corporativa y página web. El diseño y las tendencias están en constante cambio y eso nos obliga también a nosotros a seguir esa ola de renovación constante.

Nosotros somos los primeros en aconsejar a nuestros clientes que una vez la página web está acabada, lo que hay que hacer es un proceso de renovación constante, algo que atraiga siempre la atención hacia su carta de presentación, es decir, su página web. Es por ello que nosotros nos hemos aplicado nuestro própio consejo y "nos hemos lavado la cara".

Así mismo hemos inaugurado un nuevo blog corporativo integrado dentro de la nueva página web, dejando este blog, que también renovaremos estéticamente, como herramienta de soporte técnico para desarrolladores internos y externos. Seguiremos por supuesto publicando información técnica, artículos y trucos siempre que podamos.


Enlaces de interés

miércoles, 28 de mayo de 2014

Software a medida

El software a medida es un producto de Ingeniería de Software desarrollado especialmente para un cliente, teniendo en cuenta los requerimientos del mismo y las políticas de su empresa u organización.

El software estándar por su parte está orientado un uso masivo por clientes con necesidades similares. Algunos productos de software estándar permiten también ciento grado de personalización de forma que con un desarrollo particular pueden adaptarse a las necesidades del cliente, aunque es difícil que se adapte exactamente a los requerimientos y políticas del mismo. Un ejemplo serían los diversos CMS (sistemas de gestión de contenidos) como Wordpress, Joomla, Prestashop, Drupal, ... Otros productos de software estándar no permiten ningún tipo de personalización.

A priori el software a medida siempre es más caro porque requiere más trabajo, pero cumple exactamente con las necesidades del cliente. Sin embargo en ocasiones las adaptaciones de software estándar a las necesidades de un cliente pueden costar tanto como hacer el software a medida desde cero. Todo depende de lo que el producto inicial se adapte a los requerimientos del cliente.

Como analogía entre software a medida y estándar se puede usar, con restricciones, el caso de un traje a medida frente a otro comprado en un centro comercial. Muchos clientes tendrán bastante con un traje del centro comercial al que le hacen unos mínimos arreglos. En cambio si el cliente tiene necesidades especiales por ser por ejemplo muy alto es difícil que encuentre un traje que le sirva en el centro comercial y tendrá que pedir a un sastre que se lo confeccione a medida. Otra posibilidad sería comprar el traje más grande del centro comercial y luego pedir a un sastre que se lo alargue. El coste del arreglo generalmente será menor que el traje a medida pero el resultado tampoco será el mismo.


Ventajas del software a medida:

  • Se adapta perfectamente a las necesidades del cliente.
  • No requiere un cambio en la forma de trabajar de la empresa u organización.
  • Se puede modificar y ampliar fácilmente.
  • Posibilidad de entregas modulares.
  • El software es propiedad del cliente.

Desventajas del software a medida:

  • Generalmente es más caro que el software estándar.
  • La implementación es más costosa y por lo tanto más lenta.

¿Cuando conviene desarrollar software a medida?

Una empresa u organización preferirá desarrollar software a medida cuando las necesidades de sus sistemas de información no se adapten exactamente a ningún producto comercial, personalizable o no, ya sea porque tienen requerimientos especiales o porque no deseen cambiar sus procesos de gestión. Los requerimientos especiales pueden ser cualquier cosa: desde informes especializados hasta procesos de gestión no habituales. La decisión de desarrollar software a medida puede afectar a la competitividad del cliente a medio plazo, por lo que es una decisión que hay que meditar bien antes de tomar una decisión definitiva.