miércoles, 30 de diciembre de 2009

viernes, 18 de diciembre de 2009

sábado, 12 de diciembre de 2009

PHPMailer: Envía correos desde tu web

viernes, 27 de noviembre de 2009

Utilizando NuSOAP en CodeIgniter

Read the English version of this post in http://phpsblog.agustinvillalba.com/using-nusoap-in-codeigniter

Hoy quiero hablar de la inclusión de la librería PHP NuSOAP en el framework de desarrollo CodeIgniter, dado que hace unos días me vi en la necesidad de realizar esta integración. En este artículo me centraré en la integración de la librería para consumir servicios web ofrecidos por un sitio externo a nosotros.
1. ¿Qué es NuSOAP?
Pero antes echemos un vistazo a ojo de pájaro qué es y para qué sirve es librería NuSOAP. Esta utilísima librería con uso muy extendido en el desarrollo web es un kit de herramientas (ToolKit) para desarrollar Web Services bajo el lenguaje PHP. Está compuesto por una serie de clases que nos harán mucho más fácil el desarrollo de Web Services. Provee soporte para el desarrollo de clientes (aquellos que consumen los Web Services) y de servidores (aquellos que los proveen). NuSOAP está basado en SOAP 1.1, WSDL 1.1 y HTTP 1.0/1.1. Aunque no es el único, dado que existen más herramientas de este tipo, podría decirse que esta es de las mejores y por tanto, de las más utilizadas en el desarrollo web.

2. Integrando NuSOAP en CodeIgniter

Una vez que ya sabemos qué es NuSOAP, pasamos a integrarla en nuestro framework de desarrollo. Lo primero será descargarnos la librería, la descomprimimos y la incluimos en el directorio system/application/libraries de nuestro framework CodeIgniter. Con esto ya tenemos todo listo para poder pasar al siguiente paso: realizar la integración.

La forma más cómoda de integrar esta librería en CodeIgniter  es creando nuestra propia "pseudo" librería de CodeIgniter la cual a su vez llama y permite el uso de la verdadera librería NuSOAP que nos hemos bajado previamente. Digo "pseudo" porque realmente lo único que haremos será una interfaz de comunicación entre los controladores de nuestra aplicación y la librería NuSOAP en sí misma. Pasamos a desarrollar nuestra propia librería CodeIgniter, para ello creamos un nuevo archivo llamado nuSoap_lib.php (o como ustedes quieran llamarlo, el nombre sólo depende de su imaginación) dentro del directorio /system/application/libraries, al mismo nivel que el directorio que contiene a la librería NuSOAP.
Dentro de nuSoap_lib.php introducimos el siguiente código:
<?php if (!defined('BASEPATH')) exit('No direct script access allowed');
class nuSoap_lib{
function Nusoap_lib()
{
    require_once(BASEPATH.'libraries/NuSOAP/lib/nusoap'.EXT);
}
}
?>

Con esto ya tenemos creada nuestra "pseudo" librería de NuSOAP, a partir de ahora ya podemos utilizarla desde nuestros controladores. Para ello hemos de introducir el siguiente código en nuestro controlador para llamar a la librería nuSoap:

class Client extends Controller {
    function __construct() {
        parent::Controller();

        $this->load->library("nuSoap_lib");
    }

    function index() {

        $this->nusoap_client = new soapclient("http://url.servidor.soap");
        
        if($this->nusoap_client->fault)
        {
            $text = 'Error: '.$this->nusoap_client->fault;
        }
        else
        {
            if ($this->nusoap_client->getError())
            {
                $text = 'Error: '.$this->nusoap_client->getError();
            }
            else
            {
                $row = $this->nusoap_client->call(
                    'funcionEnElServidor',
                    array(parametros)
                );
                
                ...

            }
        }
    }
De esta forma, podremos consumir servicios SOAP desde nuestra aplicación implementada con CodeIgniter. Como ven, es bastante sencillo y muy cómodo. Una razón más para seguir utilizando este sencillo y potentísimo framework que es CodeIgniter.

Read the English version of this post in http://phpsblog.agustinvillalba.com/using-nusoap-in-codeigniter

sábado, 21 de noviembre de 2009

Exportando un sitio Drupal

Read the English version of this post in http://phpsblog.agustinvillalba.com/exporting-a-drupal-site/

Hace unos días me vi en la necesidad de exportar desde mi servidor local al servidor de desarrollo on-line (dado que el trabajo es en equipo) un sitio desarrollado con el gestor de contenidos Drupal , para continuar el trabajo en grupo desde un único servidor, evitando así que el sitio evolucione de forma dispar en el servidor local de cada miembro del equipo de desarrollo. Investigando en la red he encontrado poca información y muy dispersa, de forma que me pareció útil ponerla toda junta en un único post.

1. La base de datos

Lo primero que necesitaremos será exportar la base de datos de nuestro servidor local. Lo podemos hacer con phpMyAdmin. Seleccionamos la base de datos de nuestro Drupal en el servidor local, hacemos click en la pestaña “Exportar”. En la pantalla que se nos muestra hemos de asegurarnos que la casilla de verificación de “Datos” esté marcada y hemos de marcar también la casilla de verificación “Enviar (genera un archivo descargable)”, así podremos almacenarlo como un archivo con la extensión “.sql”.

Una vez hemos exportado la base de datos de nuestro servidor local, hemos de importarla en nuestro servidor de destino (ya sea de desarrollo o de producción). Para ello utilizaremos nuestro gestor de base de datos, en nuestro caso será otra vez phpMyAdmin. Primero creamos la base de datos con el nombre que queramos, y una vez creada ya podemos importar el archivo .sql que generamos en la exportación anterior. Una vez realizado esto, ya tenemos nuestra base de datos de Drupal en nuestro servidor de destino.

2. Estructura de directorios

Una vez tenemos la base de datos, hemos de exportar la estructura de directorio que conforma el Drupal desde nuestro servidor local a nuestro servidor de destino. Para ello bien podemos hacerlo comprimiendo todo el sitio en un archivo .zip o sin comprimir con el tiempo de transferencia que eso conlleva. En cualquiera de los dos casos, como resultado final hemos de tener el directorio descomprimido en el directorio de publicación de nuestro servidor de destino (htmlpublic, public, /var/www/, o como se llame en nuestro servidor…). Hemos de asegurarnos que el directorio sites/default de nuestro Drupal tenga permisos de escritura por parte del servidor web.

3. Configuración del servidor web

Si intentamos acceder al sitio Drupal en nuestro nuevo servidor, es posible que podamos ver la página de inicio sin problemas, pero desde que intentamos navegar por él veremos que las secciones no son accesibles. Esto se debe a que no está configurado adecuadamente el servidor web, dado que Drupal por defecto utiliza la url limpia (es decir, los parámetros pasados por url no se ven de la forma ?variable=valor&variable2=valor2, sino de la forma /variable/valor). Por lo tanto, hemos de configurar nuestro servidor para que permita el uso de urls limpias. En estas líneas explicaremos cómo configurarlo en caso de que tengamos acceso a los archivos de configuración del servidor con permisos de administrador. Para ello accedemos con permisos de edición al archivo:

/etc/apache2/sites-available/default

En este archivo, hemos de sustituir en el siguiente código:

Options Indexes FollowSymLinks MultiViews
AllowOverride None
Order allow,deny
allow from all

La línea
AllowOverride None
ha de ser sustituida por
AllowOverride All

De esta forma nuestro servidor ya podrá reconocer las url limpias. Una vez salvados los cambios, reiniciamos el servidor web y nuestra exportación estaría concluida. A partir de ahora podremos utilizar nuestro sitio Drupal sin problemas y con todas las garantías de que no evolucione de forma independiente en el servidor local de cada desarrollador del equipo.

Read the English version of this post in http://phpsblog.agustinvillalba.com/exporting-a-drupal-site/