Mostrando las entradas con la etiqueta php. Mostrar todas las entradas
Mostrando las entradas con la etiqueta php. Mostrar todas las entradas

martes, junio 19, 2007

Guía de LAMP (Linux Apache PHP MySQL) para torpes III - El Editor Quanta

Vamos ahora a familiarizarnos con el editor quanta para la programación de nuestros scripts.
Para esto abrimos el editor quanta desde el menu de inicio->desarrollo->Quanta
o abrimos una consola y ejecutamos
$> quanta
Lo que vamos a hacer ahora es configurar las opciones del editor, para esto vamos a la opción Settings->Configure Editor
luego aprecerá un diálogo para configurar las opciones.
Las opciones que se configuran son:
Appareance:
- Quitar Dynamic word wrap (Opcional)
- Show line numbers
Editing:
- Quitar Show tabulators
- Tab width: 4
Open Save:
- Quitar Backup on Save-> Local files

Configurar la documentación de php en quanta.
Bajamos de la página oficial de php el manual en múltiples archivos en html
http://www.php.net/get/php_manual_es.tar.gz/from/a/mirror
Luego desempaquetamos el manual en el directorio de documentación de quanta

$> tar -zxvf php_manual_es.tar.gz
$> sudo mv html/ /usr/share/apps/quanta/doc/php

Configurar el depurador de php en quanta
Esta parte es un poco avanzada y ya no para tan torpes, pero un debugger es una muy buena herramienta para programar sin errores; algo que muchos programadores de PHP obvian al momento de hacer sus aplicaciones. Vamos a configurar quanta con soporte a DBG y xampp con soporte a Xdebug que es una extensión nativa de php para depurar los scripts.

1.- Instalar el DBG para quanta
$> sudo apt-get install kdewebdev-dbg

2.- Instalar el paquete XAMPP Development package
lo bajamos de la página de xampp
http://www.apachefriends.org/en/xampp-linux.html
y lo descomprimimos en el opt
$> sudo tar -zxvf xampp-linux-devel-1.6.2.tar.gz -C /opt

3.- Instalar los paquetes para compilar xdebug
$> sudo apt-get install gcc autoconf make automake bison flex g++ libtool re2c

4.- Bajamos la última versión de xdebug de http://xdebug.org/install.php y compilamos

$> tar -zxvf xdebug-2.0.0RC4.tgz
$> cd xdebug-2.0.0RC4
$> phpize
$> ./configure --with-php-config=/opt/lampp/bin/php-config --enable-xdebug
$> make
$> sudo make install

5.- habilitar extensión en el php.ini y agregar al final
$> sudo gedit /opt/lampp/etc/php.ini
zend_extension="/opt/lampp/lib/php/extensions/no-debug-non-zts-20060613/xdebug.so"

Reiniciar XAMPP
$> sudo su -
$> lampp restart

Verificamos la instalación de Xdebug en XAMPP, abrimos en el navegador la dirección
http://localhost/xampp/phpinfo.php
y en la parte donde sale powered by Zend 2 se ve el añadido "with Xdebug v2.0.0RC4"

Cerramos y volvemos a abrir el quanta y ya estamos listos para hacer nuestro primer proyecto en LAMP con un entorno de debug incluido, esto lo veremos en el próximo tutorial

miércoles, mayo 16, 2007

Guía de LAMP (Linux Apache PHP MySQL) para torpes II - Entorno y Herramientas

Bien asumimos, que hemos instalado Linux y XAMPP y ya pasamos todos los puntos del 1er tutorial, ha llegado el momento de preocuparnos por el entorno de ejecución y las herramientas de desarrollo.

El Entorno de Ejecución.
En Linux las variables de entorno juegan un papel crucial para ejecutar comandos y definir variables que son asumidas por los procesos. Para nuestro caso lo mas importante es definir en la variable de entorno $PATH, que es la variable que le indica al sistema donde estan los directorios de los archivos ejecutables. En linux no interesa la extension de un archivo para que sea ejecutable, basta que tenga permisos de ejecución.
Para ver el $PATH actual basta ejecutar
$> echo $PATH

Para modificar permanentemente el valor del $PATH escribimos ese valor en el archivo /etc/profile y eso es valido para cualquier distribución

$>sudo su -

Con esto accedemos como root y ya no necesitamos poner sudo al inicio

$> echo "export PATH=/opt/lampp:/opt/lampp/bin:\$PATH" >> /etc/profile


Cerramos la sessión de escritorio y volvemos a entrar para ver los cambios en la consola

$> echo $PATH

Luego ya podemos ejecutar el comando lampp (administracion de servicios), php (interprete de consola), pear (administracion de librerias de php) y mysql (consola de comando de mysql)
$> sudo su -
$> lampp start

$> php -i
$> pear list
$> mysql
mysql> select version();
mysql> quit;

Ahora hay un detalle, cada vez que reiniciamos nuestra pc tenemos que estar arracando el XAMPP, para evitar esto basta poner la ejecucion de XAMPP en el archivo /etc/rc.local
$>sudo su -
$> echo "/opt/lampp/lampp start" >> /etc/rc.local

de esta forma cada vez que reiniciemos la maquina se iniciará automáticamente nuestro LAMP

Herramientas de Desarrollo
Para aprender a programar, no hay mejor forma que escribiendo código, y para esta ardua tarea la mejor herramienta para PHP en Linux es quanta, no viene instalado por defecto así que manos a la obra.

$> sudo apt-get update
$> sudo apt-get install quanta kdewebdev kfilereplace kimagemapeditor kommander kompare tidy

Para los usuarios de otras distribiciones verificar por los nombres de paquetes.

Una vez que hemos instalado nuestra herramienta de desarrollo, crearemos un directorio donde pondremos y probaremos nuestros ejemplos de código
$> sudo mkdir /opt/lampp/htdocs/tutolamp
$> sudo chmod 777 /opt/lampp/htdocs/tutolamp
con esto le estamos dando permisos totales de escritura en el directorio para poder grabar nuestros ejemplos desde quanta. En el siguiente tutorial nos familiarizaremos con el uso de quanta y nuestros primeros scripts.

Guía de LAMP (Linux Apache PHP MySQL) para torpes I - Inicio

Una de mis principales ofuscaciones cuando he dictado cursos de LAMP, es que; los alumnos si bien llevaban las clases en Linux, cuando estaban en sus casas o trabajos, usaban winbugs y no veian Linux hasta la clase siguiente, bueno esta es una guía para aquellos usuarios "torpes" en Linux, que saben que es el mejor sistema operativo para programar, pero le tienen miedo por fama de ser complicado o diferente. Ubuntu es una distribución que ha facilitado enormemente las tareas de escritorio, haciendolo incluso mas sencillo que Window$.
Bien empecemos.
Primero y antes que nada tienes que Instalar Ubuntu Linux, de preferencia y muy recomendada la última versión, ¿Qué no sabes instalar o le tienes miedo a Ubuntu? aquí unos links para que instales y pases este crucial punto.
http://www.guia-ubuntu.org/index.php?title=Portada
http://tuxhuellas.com/2007/04/22/introduccion-a-ubuntu-704/

Segundo es necesario instalar Apache, PHP y MySQL.
Antes que nada tienes que perderle miedo a la consola
en Gnome accedes a Aplicaciones->Accesorios->Terminal (Gnome Terminal)
en KDE Inicio->Sistema->Programa de Terminal (Konsole)

Luego viene la instalación propiamente dicha y hay varias formas para lograr esto.
La primera y mas recomendada en entornos de producción es hacerlo con los paquetes que tiene la propia distribución de Linux; en Ubuntu sería
$> sudo apt-get install php5 mysql-server php5-mysql php5-gd (No ejecutar para este manual)

La segunda es por código fuente, pasamos de este punto para un post mas avanzado.

La tercera y la que usaremos para este turorial es XAMPP
Es una versión de Apache, PHP y MySQL precompilada con muchas extensiones y lista para usar en el /opt solo hay que descomprimir el archivo y ya esta. Lo mejor de todo es que funciona en la mayoría de distribuciones de Linux y se puede trasladar todo el entorno de trabajo comprimiendo solo la carpeta /opt/lampp. Comenzemos bajando la última versión de xampp
de http://www.apachefriends.org el link directo es
http://sourceforge.net/project/showfiles.php?group_id=61776&package_id=60248

una vez que lo bajamos descomprimimos el archivo en el /opt
$> sudo tar -zxvf xampp-linux-XX.YY.ZZ.tar.gz -C /opt
XX.YY.ZZ es la version que bajamos, recuerda que si has bajado con firefox, por defecto lo baja en el Desktop, entonces el comando seria $> sudo tar -zxvf Desktop/xampp-linux-XX.YY.ZZ.tar.gz -C /opt

Luego ejecutamos xampp para arrancar Apache PHP y MySQL
$> sudo /opt/lampp/lampp start

Abrimos nuestro navegador firefox y ponemos la dirección http://localhost y ya tenemos
las últimas versiones de Apache, PHP y MySQL para programar. ¿fácil no?, bien pero ustedes dirán aún no he programado nada. Tranquilo; empezaremos por el clásico Hola Mundo

$> sudo gedit /opt/lampp/htdocs/holamundo.php
  1. <?php
  2. echo "hola mundo";
  3. ?>


Guardamos el archivo y abrimos en el navegador http://localhost/holamundo.php

En el siguiente post preparemos el entorno y herramientas de desarrollo para sacarle jugo a nuestro LAMP.

Nota: Para los que no usan Ubuntu, basta con acceder como root y ejecutar todos los comandos sin el sudo al inicio

jueves, noviembre 16, 2006

Fameworks en JavaScript y Ajax (II)

Siguiendo con la segunda parte de los frameworks para el desarrollo en Ajax y JavaScript voy a comentar acerca de los frameworks implementados en un lenguaje de Servidor, y que luego generarán automáticamente código en Ajax.
De todos los frameworks; destacan principalmente aquellos que están hechos en Java; pues son, los mas completos y elaborados; miencionaré los principales y al final, describiré algunos frameworks en otros lenguajes.

Frameworks hechos en Java

Google Web Toolkit a.k.a GWT, este framework se destaca por ser el toolkit oficial de Google y que ha sido empleado para la creación de Gmail y Google Maps, el desarrollo con estas librerías se hace usando 100% el lenguaje Java; y luego, al ser compilado, generará el código en HMTL, Java y JavaScript; cuenta además con un sistema de componentes, que permite su extensibilidad y desarrollo por parte de la comunuidad. GWT cuenta actualmente con una herramienta visual (de pago) como plugin de eclipse.

Open Laszlo Es un framework de tecnologías RIA, que genera en el front end GUIs en Flash o DHTML; es la alternativa OpenSource a Flex de Adobe, pero además de generar flash; también puede generar Ajax. Cuenta con un lenguaje propio (LZX), para la creacion de interfaces y que luego al compilar generará el front end final.
Cuenta además con un IDE opensource, para eclipse IDEforLaszlo

ZK Es un framework que usan como lenguaje de marcado ZUL (variante de XUL), y para el scripting usa codigo Java; cuenta con una amplia variedad de widgets y es de fácil uso.

DWR A diferencia de los anteriores frameworks DWR solo cubre la parte de comunicación remota entre JavaScript y Java (similar a JSON), la diferencia relevante respecto a este; es que DWR genera automáticamente código JavaScript desde los métodos públicos de un Java Bean, y crea objetos Java que son pasados desde objetos JavaScript como argumentos de los métodos públicos del Bean; cuenta además con mecanismos de seguridad; es una opción muy interesante si se quiere integrar con frameworks de javascript descritos en la primera parte de este post.

ECHO2 Es otro framework que cuenta con multiples widgets para el desarrollo en Ajax y cuenta ademas con plugin para eclipse (de pago) para la edición visual.

Rialto; aunque lo mencione en el anterior artículo como un framework de javascript; Rialto cuenta además con extensiones para trabajar con Taglibs y JSF y además con otros lenguajes de servidor como PHP, .Net y Python

Frameworks y/o Librerías en otros lenguajes de servidor
Frameworks para PHP:
Sajax y Xajax, similares a DWR pero mas limitados. soportan solo funciones de PHP
PEAR HTML_Ajax; de la misma línea de DWR soporta clases, pero es solo de una dirección; la mayor parte de librerías existente en PHP son de este tipo.
PRADO experimental; Prado es un sistema de componentes gráficos para PHP5, similar a Asp.Net cuenta con extensiones experimentales para Ajax.
Otros frameworks con características Ajax son Symfony, CakePHP

Fameworks para .NET
Atlas, es la implementación oficial de Microsoft para .NET, tiene integración con ASP.Net, C#, VB (aqui la única gran pregunta de siempre; es si es compatible con otros browsers diferentes a I.E.)
MagicAjax, Conjunto de Widgets para usar con Asp.Net

Otros Lenguajes
RubyOnRails, el framework por excelencia para Ruby, viene integrado con scriptaculous y tiene clases en Ruby que generan el código en Ajax.

Turbogears y Django; frameworks para Python con características y funciones para soportar Ajax

Bueno para terminar, una recomendación muy importante a parte de la decisión de usar tal o cual framework; de nada te sirve hacer los mejores efectos o pintar bonitas interfaces si no se domina JavaScript; el pilar de Ajax y de la Web 2.0, es este lenguaje, tenganlo muy en cuenta.
En los futuros posts ire agregando pequeños tutoriales de JavaScript y Ajax.
Saludos a todos y esta vez prometo blogear mas seguido (va en serio :P).

domingo, febrero 26, 2006

PDGO Php DataGrid Object

Aprovechando el fin de semana acabo de publicar mi granito de arena
para el software libre; pdgo (Php Datagrid Object) es una librería escrita en php5 que permite con unas cuantas líneas de código y un query, obtener un DataGrid con opciones de edición, inserción, borrado, vista, búsqueda, paginado, ordenación, importación y exportación de datos; todo lo que nos gusta a los vagos de programación
:-P.

Trabaja con Pear DB para el backend de la base de datos y con HTML quick para generar formularios dinámicos, también exporta datos a Excel con Pear SpreadSheet.
Queda bastante chamba por hacer así como publicar los tutoriales de rigor.
Por ahora es un alfa release y espero de sus comentarios y sugerencias para ir mejorando este programa.
Puedes chequearlo en sourceforge pdgo.sourceforge.net

domingo, febrero 19, 2006

Mas Waporware: PHP Datagrid

Dentro de mi listas de promesas waporware :-P agrego el compromiso de publicar en sourceforge el proyecto con el que me vanaglorié con algunos de mis amigos :-D y que lo desarrollé siguiendo la filosofía del vago "trabaja una vez descansa después".
El proyecto es basicamente una grilla de datos en PHP 5 para tareas CRUD (Create,Read,Update Delete) que comunmente es una tabla en una base de datos.
Mi proyecto es similar a phplens y aunque no tiene todas las opciones de esta, permite
hacer las tareas principales de mantenimiento de datos con solo unas lineas de programación ;-)

Actualización: Ya cree mi proyecto en SourceForge pdgo (PHP Data Grid Object) y en este fin de semana lanzo la primera release; versión alfa por supuesto :-)