Si te has interesado alguna vez por hacer páginas web, portales o weblgos seguro que has oido hablar de PHP, el lenguaje más extendido de la red para crear contenidos dinámicos como noticias, catálogos online, foros… Mires a donde mires en la Red, encontrarás un .php al final del enlace. Hoy vamos a acercarnos a este lenguaje en un bonito viaje iniciático y a picarte el gusanilllo del programador que llevas dentro. Es más fácil de lo que parece.
PHP, un .php para todo y todos los .html en un .php
Si te has interesado alguna vez por hacer páginas web, portales o weblgos seguro que has oido hablar de PHP, el lenguaje más extendido de la red para crear contenidos dinámicos como noticias, catálogos online, foros… Mires a donde mires en la Red, encontrarás un .php al final del enlace. Hoy vamos a acercarnos a este lenguaje en un bonito viaje iniciático y a picarte el gusanilllo del programador que llevas dentro. Es más fácil de lo que parece.
Intentaremos explicar qué es PHP y qué otros lenguajes similares hay como el ASP (uuuuuuuuuh, malo, feo, inútil), que requisitos de máquina necesitamos y de recurso humano para empezar a hacer nuestros primeros "Hola, mundo", herramientas de las que disponemos, hablaremos algo de MySQL, una de las bases de datos más usadas en Internet, de los grandes proyectos y las comunidades que hay entorno al PHP porque muchas veces no es necesario inventar la rueda, sobre todo si se trata de software libre, y para acabar unas cuantas direcciones útiles para seguir adentrándonos en el mundo de la programación en PHP. ¿Qué os parece? ¿Comenzamos?
Para comenzar nada mejor una definición sacada del Prefacio del Manual de www.php.net:
Cómo se suele decir, más claro agua. Es Open Source y eso es bueno, puede ser embebido dentro del HTML, osea que podemos usar PHP para dar dinamismo a nuestro contenido y no andar con mil páginas html para cada uno de ellos, sus sintaxis es similar a otros lenguajes y es fácil de aprender, palabra de honor 😀 Al otro lado del ring tenemos ASP (Active Server Pages) de Micro$oft, tengo que decir algo al respecto??? Y también tenemos JSP (Java Server Pages) ya más complejo, o al menos eso de java asusta un poco, jeje, el viejo y aún funcional Perl (motor de faq-mac), y otros como Python o Ruby.
Sobre versiones decir que aunque hace poco salió la versión 5.0.2, lo más normal es que encontremos en los servidores versiones anteriores algo más estables como la 4.3.x. Si no me equivoco la que viene junto con Mac OS X es la 4.1.2, suficiente para hacer correr casi todos nuestros scripts (pequeñas rutinas que creemos en PHP).
Para correr PHP en nuestras máquinas, en modo local, y probar scripts sin tener que pagar un host o andar buscando uno gratuito, necesitaremos un servidor como Apache, que viene de fábrica con el sistema. Sobre como activar PHP y Apache tenéis un post anterior en faq-mac. Lo que no tendremos y habrá que descargar e instalar si quieremos jugar con bases de datos será MySQL. En http://dev.mysql.com/downloads/mysql/4.0.html podremos bajarnos un instalador para la version 4.0.22 Standard. Una vez tengamos montado nuestro chirinquito ya podemos empezar a hacer o probar lo que se nos apetezca, ya sea un portal como PHP-Nuke, un foro como PHPBB o un weblog como WordPress. Y ver todo el potencial de PHP generando contenidos a partir de una base de datos, enviando correos, trabajando con formularios, generando gráficos dinámicamente, PDFs… hasta SWFs. El límete de PHP es difícil de encontrar. Y una ventaja más que nos ofrecen los lenguajes dínámicos es su modularidad, así podemos diseñar nuestra web en base a 4 plantillas (una cabecera, un menu lateral, un contenido y un pie). Sólo tendríamos que actualizar las plantillas para actualizar al instante todo el sitio. No es fantástico? Ya podemos olvidarnos de editar cietos de html porque tengamos que cambiar algo. Plantillas y modulos, señores.
Como recursos humanos contar con una base de HTML es imprescindible y unas nociones de progración básicas. Como hemos dicho, PHP se parece bastante a C y otros lenguajes comunes. Con que sepamos manejarnos un poco con condicionales (if (a==b)) y bucles (for ($x=0;$x<5;$x++)) iremos avanzando rápidamente a la par que aprendemos nuevas funciones para abrir archivos y escribir en ellos, trabajar con variables (en PHP van precedidas por el simbolo $), conectar con bases de datos, envíar correo y manejarnos con variables de sesion. Todo eso lo aprendemos de una manera fácil y ya tenemos nivel para enfrentarnos a cualquier proyecto 😀 Pero como he comentado antes. PHP tiene una gran comunidad detrás y grandes recursos disponibles de manera gratuita. Debemos usarlos, y no reinventar la rueda, a no ser que queramos algo muy concreto y distinto a todo. Aún así, podemos tomar como base otros proyectos (técnica del copy&paste) y evolucionarlos.
Herramientas para codificar PHP yo conozco pocas y no creo que haya un editor WYSWYG para PHP, aunque Dreamweaver tiene muchas funciones trabajar con PHP. Lo mejor es irnos a la vista código y escribir nuestros propios scripts, o usar algún editor de texto que coloree la sintaxis. Smultron y SubEthaEdit, son gratuitos y están bien para esta función, aunque hay muchos más que por 30$ ofrecen alguna función más. Pero os aviso ya. Codificar PHP no es difícil pero si hay que cuidar mucho la sintáxis ya que una llaves o unos parétesis sin cerrar o olvidarnos de un punto y coma puede darnos un error y hará que la página no se ejecute. TRUCO: normalmente los servidores tienen el modo debug de errores activos y nos informará de en qué línea está el error, pero no os extrañe que se encuentre una o dos líneas antes. Os lo dice alguien que tiene la cabeza hinchada de tantos cabezazos contra el código 😀
Vale, todo lo dicho hasta ahora está muy bien, pero cómo aprender PHP? Yo soy de la vieja escuela y aprendí a programar a base de gastarme los cuartos en algunos libros. Pero si tenemos acceso a la Biblioteca Universal (menuda definición para Internet. Yo la definiría más como un gigantesto puticlub para todos, y las cifras me dan la razón, tristemente), pues si temenos acceso a la Red nuestro primer y principal recurso va a ser la página oficial de PHP (www.php.net) y la documentación que allí se encuentra en diversos formatos (no! en .doc no hay nada gracias a diox). Pero entiendo que un sitio como este puede asustar a muchos como punto de partida, por eso vamos a buscar otros con información más reducida y sencilla y dejaremos php.net para dudas concretas sobre funciones (los comentarios que acompañan la documentación os aviso que no tienen precio) . Unas cuantas urls sacadas de google:
http://www.rinconastur.com/php/
http://www.hudzilla.org/php/ (en inglés)
Con los dos primeros tendremos cubiertas nuestra base de sobra. Si queréis os pongo un plan de estudio, aunque ya lo he mencionado antes arriba. Para empezar enteder como funcionan las variables, estructuras de control (condicionales y bucles), trabajar con formularios (enviar datos y recogerlos), tipos de datos (sobre todo a manejarnos con fechas), y ya nos pasamos a ver funciones para cargar datos de fuentes externas como fopen y fread, o las funciones para conectar y hacer consultas a las bases de datos, la función mail(), y el tema de persistencia (cookies y variables de sesión). Con estos conocimientos podemos montar carritos de la compra, foros, noticias, galerias de imagénes… y un sin fin de cosas. Pero ojo! Que tampoco es necesario saber PHP para montar estas cosas, ya lo he dicho antes e insisto. La mayoría de proyectos en PHP no requieren conocimientos del lenguaje para ponerlos en marcha, es configurar los datos de nuestro server y base de datos y ya tenemos corriendo un sito de comercio con OSCommerce, por ejemplo. Lo que más tiempo nos va a llevar es personalizar un tema, ya para eso, pocos conocimientos necesitaremos.
Y ya para acabar este artículo que espero os dé una idea de qué es PHP y que nos ofrece, unas cuantas direcciones donde encontrar scripts y proyectos en PHP.
http://www.hotscripts.com/PHP/index.html (el mayor de todos)
http://www.programacion.com/php/articulos/ (artículos en español)
http://www.vivaphp.com.ar/ (actualidad del mundo PHP en español)
http://www.elguruprogramador.com.ar/zonas/php.asp (más artículos en español)
Os invito a usar los comentarios para ampliar el artículo, debatirlo, corregirlo, echarlo por tierra… pero con educación, por favor 😀
pedacho de post (plas plas), pero…
hablar de php y mysql en mac y no hablar de Marc Liyanage es casi delito
http://www.entropy.ch/software/macosx/welcome.html
Estoy contigo, no hablar de Marc Liyanage ES delito
Mil perdones a todos, pero me salte el paso de Marc porque ya no es necesario. Cuando yo empecé con el jaguar, recurrí a esa web y lo flipé, pero ahora, para instalar PHP y Mysql no hay que andar con la consola ni nada de eso. Simplemente siguiente, siguiente, siguiente y listo.
Aunque bien es verdad que en la web de Marc encontramos muuuchas más cosas, como editores y utilidades, pero como el articulo era de PHP pues no ví el nombrarlo. Pero mil gracias por hacerlo ustedes 😛
ASP es una plataforma, no un lenguaje. Por otro lado PHP no está mal, pero adolece muchas carencias en cuanto a programación orientada a objetos. Para plataformas serias, a día de hoy se pasa por Java y en futuro por Python, php es más de «andar por casa».
en la web de Marc Liyanage ya no hace falta el terminal…. te lo instala todo un instalador en un .dmg…. creo también que esa web es imprescindible. salú.
en la web de Marc Liyanage ya no hace falta el terminal…. te lo instala todo un instalador en un .dmg…. creo también que esa web es imprescindible. salú.
Muy interesante. pero me asalto una duda, soy usuario window$ 2000, necesito saber si se puede montar algo parecido a Apache+PHP+Postgres en un MAC, ademas como va el tema de la portabilidad de un PC a un MAC.
Muy interesante y motivador , gracias!
muy interesante en verdad, no lei mucho de esto, pero, quiero hacer una pagina PHP, pero con un diseño de un foro y pomner un icono en todas mis paginas que pida informacion(log in) del foro, si alguien me puede ayudar que me escriba por fabor, baten.82@gmail.com