martes, 1 de febrero de 2011

manual PHP - Para los drunken PHP apprentice lvl0

Hola a todos, bien, esta es la primera entrada al blog (medio de continuidad de la comunidad), debido a algunos problemas que no vale la pena mencionar nos quedamos sin hogar físico, pero no queremos que esto se pierda y mientras gestionamos un lugar en donde seguir nuestras reuniones queremos mantenerlos al tanto de cómo nos va o cómo hacemos las cosas; como siempre se aceptan sugerencias...

Hace unos meses revisé un material muy interesante pero que lamentablemente he perdido así que me propongo rehacerlo pero a mi estilo y para que los menos instruidos como lo fuimos todos en un determinado momento puedan entenderlo y aplicarlo.

En este manual veremos los pasos a seguir para convertirse en todo un drunken PHP master, sí sé que no es muy ponedor pero realmente conseguirás el título de Drunken PHP Master  con práctica.



Manos a la obra.
Drunken PHP Apprentice lvl 0 : "Cayendo al abismo de PHP"

El único acrónimo que necesitarás:

Si eres nuevo en la programación web, pronto te darás cuenta que en terminología esto no es más que un puñado de acrónimos cada uno más indescifrable que el anterior ASP.NET, CGI, SOAP, XML, XAML, HTTP, FTP - y así podríamos enumerarlos en una lista de nunca acabar. Al igual que los conocimientos que se enmarcan en lo que a programación web se refiere. Pero un momento antes que te pongas tus zapatillas y salgas huyendo de esta ardua labor, existe un secreto que debes saber. Para colocar todo junto y dar una presentación, dinamismo y lo que engloba la web sólo hay un acrónimo que necesitas tener en cuenta: PHP.

Cálmate y no te alarmes, acabas de oir de PHP?, bueno sabes cuán poderoso es este lenguaje? sabés qué puede hacer por tí?, hoy en día PHP tiene la envidiable posición de ser el único lenguaje de código abierto enfocado al scripting del lado del servidor que es fácil y divertido para aprender. No es propaganda recientes encuestas revelan que más de 16 millones de sites utilizan PHP como scripting del lado del servidor.

Pero y por qué PHP? - seguramente te lo estás preguntando - Haber la respuesta corta es: es poderozo, fácil de usar y es GRATIS. Extremadamente robusto y escalable, podemos usar PHP para la mayoría de aplicaciones on demmand, podemos lograr increíbles performance de nuestras aplicaciones web. Puedes empezar a crear aplicaciones con acceso a datos inmediatamente, soporte XML y su fácil adaptación a frameworks hacen de PHP un buen camino para el desarrollo modular de aplicaciones web. Si a esto le sumamos una amplia comunidad de usuarios, una base de conocimientos que crece cada día, además de un gran precio (GRATIS) hacen de PHP un camino hacia el éxito!!! bueno también tenemos que agregarle nuestra capacidad para producir aplicaciones.

El objetivo de la Drunken PHP guide es muy simple: Les enseñaré el uso básico de PHP y trataré de demostrarles porqué es la mejor herramienta para desarrollo web hoy en día. No voy a asumir nada acerca de su nivel de conocimientos a parte claro de entender un poco de HTML y de tener un buen sentido del humor... y antes que preguntes sí cubriremos PHP 4 y 5 con algunas acotaciones (o trataremos de hacerlas para que no te pierdas).

AHORA SÍ EMPEZEMOS!!

El ambiente correcto:

PHP es utilizado con un servidor Web como APACHE. Las peticiones de los scripts PHP son tomadas por el servidor web y son manipuladas por los intérpretes de PHP (sí algo así como un traductor de idiomas). Una vez descifrados son enviados al servidor de aplicaciones el que se encarga de mostrarlos en el navegador cliente. Dentro de los scripts de PHP puedes hacer todo lo que regularmente haces en una aplicación normal como por ejemplo: realizar cálculos, procesos de ingreso de información de los usuarios, interactuar con la base de datos, leer y escribir en archivos, entre otras cosas.

Nuestro PHP Drunken Guide se enfoca en el uso de PHP en un servidor APACHE sobre Windows, pero tranquilamente puedes usarlo sobre Linux, Unix, Mac OS. Las instrucciones detalladas sobre el uso de PHP sobra cada plataforma las encontrarás en http://www.php.net/manual/en/install.php - o puedes también descargarte una copia de php5 en http://www.php.net/ y leer las instrucciones de instalación.

Existen caminos cortos con sabiduría contenida pero poco explotada, recomiendo altamente que instalen todo de cero, con esto me refiero a descargar las fuentes, compilarlo, o colocarlo y hechar mano de los archivos de configuración eso hará que podamos comprender mucho más a fondo las cosas y en un futuro también dar soporte a los servidores con conocimiento de causa.

Estos caminos cortos son los preinstalados de servidores completos como appserv, wamp, etc; como ya se los dije una vez recomiendo XAMPP - LAMPP, que pueden conseguir en http://www.apachefriends.org/en/index.html con guías y ejecutables además de las capacidades pre configuradas que posee cada distribución.

Para el desarrollo puedes utilizar un bloc de notas T_T ; lo sé es feo y plano, pero te demuestra que desde ahí puedes programarlo. Yo utilizo ECLIPSE IDE, es muy versátil y sencillo de utilizar, lo puedes conseguir en http://www.eclipse.org/downloads/

Ahora vé pequeño saltamontes e instala tu servidor; vuelve cuando ya lo tengas listo y hayas probado tu PHP en óptimas condiciones.

Iniciando...:


Existe un concepto que debes tener bien marcado en tu mente antes de ir más allá de lo evidente. A diferencia de los scripts CGI, los cuales requieren que escribas código de salid HTML, PHP puede ser embebido en las páginas HTML y ejecuta el código embebido cuando la página es solicitada.
Este código embebido es encerrado en etiquetas especiales como estas:
<?php
... Aquí irá tu código PHP ...
?>

Aquí tenemos un ejemplo de cómo PHP y HTML puede ser combinado:


<html>
<head></head>
<body>
Yo: Que no soy ingeniero!!
<br />
<?php
// impresión en cliente
echo 'Ellos: Como usted diga ingeniero.';
?>
</body>
</html>

Haber bastante lejos del clásico hola mundo!... pero es que creo que la tradición del hola mundo ha sido demasiado sobreestimada.
Guarda el archivo en el directorio raíz de aplicaciones PHP dentro de tu servidor con la extensión .php. Navega hacia él en un navegador claro está, si al archivo lo llamamos lvl0.php podrías colocar algo así como: http://localhost/lvl0.php , todo depende donde hayas configurado tu carpeta de aplicaciones.


Si le damos click derecho y revisamos el código fuente, nos daremos con la siguiente sorpresa:

<html>
<head></head>
<body>
Yo: Que no soy ingeniero!!
<br />
Ellos: Como usted diga ingeniero.
</body>
</html>

Qué pasó?, Cuando se hace la llamada a la página, Apache intercepta la web y la registra para ver si lleva algún script camuflado entre las marcas <?php...?>; las envía al intérprete quien descifra y convierte la respuesta en código HTML válido para enviarla al servidor el cual al ver que es código válido HTML lo acomoda en la página y lo muestra al cliente.

Una mirada de cerca al código PHP nos muestra que las sentencias deben ser terminadas en punto y como ";". Este es un error clásico de los drunken apprentice que generalmente vienen de programar en VB. También es bueno que sepan que en la última línea del script no es obligatorio el punto y coma, ya que el cierre de la etiqueta digamos que lleva por dentro un punto y coma anexado.
También es posible añadir comentarios en nuestro código PHP.
<?php
//Este es un comentario de una sóla línea
/*Este en cambio
es un bloque de texto
que será comentado*/
?>
Ah cierto, las líneas en blanco son ignoradas por el intérprete, al igual que todo lo que esté fuera de las etiquetas únicamente lo comprendido en las etiquetas de php son tomadas y examinadas.

Un caso de Identidad:


Las variables son el kebap (típico emparedado árabe buenazo) de los lenguajes de programación... y claro PHP también las tiene. Una variable puede almacenar datos de ambos tipos, numéricos y no numéricos; el contenido de dichas variables puede ser alterado durante la ejecución del programa. Por último las variables pueden ser comparadas (no en el sentido de ver que una variable es más bonita que otra), y tú - osea el programador - puedes escribir código que responda a dicha comparación.

PHP soporta un número respetable de tipos de variables: enteros, números con punto flotante, cadenas de caracteres y arreglos. En muchos lenguajes debemos especificar el tipo de la variable al declararla, por ejemplo integer o array en esta parte le damos un crédito a PHP ya que intuye el tipo de la variable de acuerdo al contexto donde es utilizado.

Cada variable debe tener un nombre. En PHP los nombres de las variables comienzan con un signo de dólar ($) que debe ser seguido de una letra o un subguión, opcionalmente seguidas por más letras, números o subguiones. Por ejemplo $casa, $comunidad o $IMPUESTO todas son váildas mientras que $123 y $48hrs no lo son.

Claro también tienes que saber que PHP es sensitivo a las mayúsculas, osea $yo es diferente de $Yo y de $YO.

Hagamos un ejemplo acerca del uso de variables:

<html>
<head></head>
<body>
Ellos: Pero entonces quién eres??
<br />
<?php
// definimos variables
$nombre = 'Yo';
$profesion = 'ingeniero';
$telefono = 123456;
echo "Está bien <b>$nombre</b>, soy <b>$profesion</b> y puedes ubicarme en el <b>$telefono</b>.";
?>

</body>
</html>
En el ejemplo, las variables $nombre, $profesion y $telefono son primero definidas como cadenas de caracteres y numéricas; y luego colocadas en la función echo(), La función echo() así como la función print(), son comúnmente utilizadas para la impresión de datos en dispositivos estándard. Noten que he incluído etiquetas HTML dentro del echo() y estos han sido renderizados hacia el navegador. Puedes hacer esto también, En serio.

Y hace su entrada el igual:


Para asignar valores a nuestras variables utilizamos el operador igual (=) en el que asignamos un determinado valor que va a la derecha del igual a una variable que va a la izquierda del igual, como lo notamos en el siguiente ejemplo:
<?php
$edadactual = $edadpasada + 1;
?>
Pero no sólo eso, en PHP podemos asignar muchas variables simultáneamente:
<?php
$raiz1 = $raiz2 = $raiz3 = 90;
?>

Pero y si no es mi tipo?:


Cada lenguaje tiene diferentes tipos de variables - y PHP no es la excepción. El lenguaje soporta una amplia variedad de tipos de datos, incluyendo numéricos simples, caracteres, cadenas, booleanos, y complejos arreglos además de objetos. Aquí una lista de los más básicos:

Booleanos: Es el tipo de variable más simple que puede ser verdadero (true) o falso (false).
<?php
$flag = true;
?>
Entero: Un entero es un número cualquiera sin decimales como 78, -54, 41646, etc.
<?php
$edad = 26;
?>
Punto flotante: Es un número fracción. Pueden ser especificados utilizando la notación decimal o científica.
<?php
$temperatura = 22.87;
?>
Cadena de caracteres: Una cadena de caracteres es una secuencia como 'Hola Mundo!!! qué aburrido soy' o 'skdfba'; los valores de la cadena pueden ser colocados dentro de comillas dobles ("") o de comillas simples (''); (el quiebre de caracteres especiales con un backslash (\)). Cuando existen variables dentro de las comillas dobles éstos son automáticamente convertidos a su valor y mostrados por pantalla.
<?php
$identidad = 'Bill Gates';
$auto = 'Audi';

//Esto debería contener una cadena que diga "Bill Gates conduce un Audi"
$oracion = "$identidad conduce un $auto";
echo $oracion;
?>
Si deseas aprender más sobre las variables en php, visita http://www.php.net/manual/en/language.types.php.


Su valor en el mercado:


Agregado claro; haber si vemos las variables como los bloques de construcción (ladrillos, sillares, etc), entonces podemos ver a los operadores como el pegamento (cemento, yeso, barro, etc) para poder unir las variables y construir aplicaciones. Una buena forma de familiarizarse con los operadores es realizar ejercicios aritméticos con ellos:

<html>
<head>
</head>
<body>
<?php
//iniciamos la cantidad
$cantidad = 1000;
//colocamos el precio original y el actual
$PreOri = 100;
$PreAct = 35;

//calculamos la diferencia
$difpre = $PreOri - $PreAct;
//calculamos el procentaje de cambio
$difprepor = (($PreAct - $PreOri)*100)/$PreOri;
?>
<table>
<tr>
<th>Cantidad</th>
<th>Precio de Costo</th>
<th>Precio Actual</th>
<th>Cambio del precio</th>
<th>Porcentaje de cambio</th>
</tr>
<tr>
<td><?php echo $cantidad;?></td>
<td><?php echo $PreOri;?></td>
<td><?php echo $PreAct;?></td>
<td><?php echo $difpre;?></td>
<td><?php echo $difprepor;?>%</td>
</tr>
</table>
</body>
</html>

Se ve complejo?? - Es muy pero muy simple en realidad (esta es la parte en donde debes practicar mucho). La parte principal del script está arriba en donde asignamos valores a las variables, luego realizamos un par de operaciones matemáticas y las almacenamos en otras variables, para en la parte final simplemente imprimir el resultado dentro de una tabla producida en HTML.
Nos gustan los atajos siempre, si deseas puedes realizar una operación y una asignación al mismo tiempo:
<?php
//esto
$a = 12;
$a = $a + 25;
//Es lo mismo que
$a = 12;
$a += 25;
?>

Si no me crees pruébalo con diferentes variables e imprime su resultado para que te convenzas.

Son cuestiones a las Cadenas:

Ok, pero y con las cadenas podemos hacer algo???? PHP te permite realizar concatenaciones mediante el operador (.). Mira:

<?php
// seteamos las variables
$a = 'vive';
$b = 'o';
$c = 'muere';
$d = 'haz';
$e = 'tu';
$f = 'elección';
//combinémoslas usando el operador de concatenación
//debería imprimir "vive o muere, haz tu elección"
$oracion = $a.' '.$b.' '.$c.', '.$d.' '.$e.' '.$f.'<br/>';
echo $oracion;

//y esta "haz tu elección, muere o vive"
$oracion = $d.' '.$e.' '.$f.', '.$c.' '.$b.' '.$a;
echo $oracion;
?>


Pero eso no es todo, puedes concatenar y asignar al mismo tiempo mira:
<?php
//defines la variable
$cadena = 'pode';
//agregamos el resto de la palabra
$cadena .= 'mos';
//la cadena ahora contiene podemos miren
echo $cadena;
?>


Para aprender más sobre los operadores aritméticos en php visita http://www.php.net/manual/en/language.operators.arithmetic.php y para operaciones con cadenas visita http://www.php.net/manual/en/language.operators.string.php.
Pues bien, disfruta de tu lvl 0 en Drunke PHP Apprentice, ahora ya puedes construir una pequeña habitación con las variables y operadores de PHP, en el lvl 1 revisaremos de cómo estos conceptos tan simples hacen de PHP un lenguaje tan poderoso. Espero se hayan divertido tanto como yo haciendo este manual. Se aceptan sugerencias para mejorarlo.


Alberto Flor Rodríguez

3 comentarios:

  1. holas bueno el manual, pero ponle un 'leer mas' si es posible.

    Un saludo!

    ResponderEliminar
  2. Gracias, investigaré la forma de colocarlo de esa manera, por el momento vengo trabajando en el nivel 1 del drunken PHP

    ResponderEliminar