Saltar al contenido

PHP

Ya comentamos algo del lenguaje de programación PHP cuando se habló de los lenguajes de programación web.

PHP es uno de los lenguajes más usados cuando hablamos de crear páginas web, sobretodo si nos interesa programar con una base de datos (la base de datos más popular en este sentido es MySQL).

Índice del contenido

¿Qué es PHP?

Sabemos que es un lenguaje de programación, un lenguaje que se ejecuta en la parte servidor.

PHP viene de HyperText Preprocessor, un poco raro porque las siglas no son tal cuál su significado. Cuando se publicó por primera vez se llamó Personal Home Page Tools, pero luego cambió por el nombre que hemos comentado.

En su momento fue creado en otro lenguaje Perl, hasta que se reescribió por completo. Se lanzó PHP 3 con un motor totalmente nuevo, llamado Zend.

Es un lenguaje de programación interpretado, pero no tiene una máquina virtual como Java, sino que es el motor del propio servidor el que transforma el código.

Veamos un par de ejemplos php.

<html>
<body>
    <?php
        echo "Hola Mundo";
    ?>
</body>
</html>

Esto es el código muy sencillo de una página HTML que tiene programación php. Esta página se almacena en un servidor.

¿Qué se verá en el ordenador? El siguiente código

<html>
<body>
      Hola Mundo
</body>
</html> 

Vemos que el lenguaje php se ha transformado, y la instrucción echo lo único que hace es pintar un texto.

El servidor interpreta el código php y lo transforma.

¿Cómo diferencia el servidor lo que son etiquetas HTML de lo que es lenguaje PHP?

Porque el código está entre las etiquetas especiales <?php y ?>.

Si escribimos esto en nuestro ordenador y abrimos la página web, no funcionará, a no ser que tengamos un servidor php en nuestro ordenador.

Existen varios motores de servidores web que interpreten PHP, como Apache, IIS, etc. Estos servidores tienen otros motores, módulos y procesadores CGI, que ayudan y optimizan nuestro código.

Pero si estás programando en tu ordenador, lo más fácil es utilizar aplicaciones que te lo instalen todo, como AppServ o Wamp. Estas aplicaciones te instalan Apache + PHP + MySQL, lo que facilita la configuración necesaria.

Como hemos visto en el ejemplo, esta es la principal diferencia de otros lenguajes web, como puede ser JavaScript, que si que veríamos su código.

Como anécdota, PHP tiene su propia mascota. es un elefante azul con el logo de PHP, y es muy habitual encontrártelo como un peluche. Por cierto, se llama elePHPant.

elePHPAnt en PHP

Características de php

Veamos las características principales de PHP, para poder entender porque es uno de los lenguajes más populares actualmente.

  • Es de propósito general. Aunque está especializado en a programación de sitios web dinámicos, se puede usar PHP para acceder y manejar una base de datos, generar cálculos aritméticos (con scripts), comunicarse entre un servidor y un cliente, etc.
  • Puedes hacer blogs, foros, aplicaciones dinámicas…
  • Es un lenguaje con una curva de aprendizaje baja, se aprende rápidamente, aunque eso hace que tenga mala fama, por ejemplo en la declaraciñon de variables porque no se define un tipo de datos.
  • Con PHP 5 tienes programación orientada a objetos, así que tiene la base de la programación que se usa hoy en día.
  • Soporte para base de datos, específicamente con MySQL. También tiene un buen soporte con PostgreSQL, SQLite y Oracle. El acceso se hace mediante librerías o extensiones ya configuradas, que ayudan en la escritura del código.
  • Creación de WebServices, mediante SOAP.
  • Es un lenguaje interpretado, es decir, no se compila. Además, el código se almacena en el servidor, por ejemplo dentro de una página web.
  • Tiene una sintaxis parecida al C.
  • Es multiplataforma. Podemos tener un servidor de PHP en multitud de sistemas operativos, como Linux, Mac OS X, Windows.
  • Es de código libre, así que hay un buen soporte, además de mucha información por internet.
  • Amplia documentación oficial, y no oficial como en GitHub o StackOverflow.
  • Existen otros protocolos y servicios que puedes comunicarte mediante php, correo con POP3 y SNMP, autentificación de dominio de Windows con LDAP, IMAP, etc.

Ejemplo aplicaciones web [con php]

Si tienes intención de hacer una página web, seguramente quieres contratar un hosting y un dominio. Casi todas las empresas de hosting tienen soporte PHP (y MySQL).

Algunas de las webs más conocidas a nivel mundial están hechas con php. Por poner algunos ejemplos:

Pero no sólo hay que tener en cuenta este tipo de páginas. Si queremos hacer una página web y no sabemos programar, podemos hablar de Frameworks de PHP y CMS que nos ayudarán en nuestra tarea.

Frameworks de PHP

Si necesitamos programar una página web compleja, como puede ser un portal entero, una intranet, etc., es posible que valores utilizar un framework php.

Los frameworks suelen utilizar el paradigma MVC (Model→View→Controller), y nos ofrecen la base o los cimientos para poder construir toda nuestra web.

Además, al seguir el modelo MVC, ya nos indica las buenas prácticas y conceptos para abordar los requerimientos que necesitamos a la hora de hacer la programación web.

La gran mayoría son frameworks de código abierto y utilizan PHP5, de esta manera nos aseguramos de aprovechar al máximo la POO (programación orientada a objetos) con la última versión.

Verás que hay muchos para elegir, así que dependerá más de tus conocimientos y las necesidades que puedas tener para decidir cual de éstos Frameworks PHP usar.

Laravel

Laravel es uno de los frameworks más utilizados en plataformas PHP. Es conocido por ser uno de los más fáciles de usar y aprender, además de la velocidad en el desarrollo de aplicaciones web.

Laravel parte de otros frameworks que no son de PHP, como Ruby on Rails. Si hablara de sus características principales, hablaríamos de cosas muy técnicas como RESTful, Fluent, ORM, plantillas con Blade.

Pero que no te entre el miedo, porque creo que es mejor pensar que Laravel es uno de los más populares y fáciles de usar.

Symfony

Symfony también usa el patrón MVC, separando la parte de datos, la lógica de la programación y la interfaz web.

Como todo framework, toda la parte más compleja queda encapsulada por el framework, así sólo tienes que preocuparte de la parte de la aplicación.

Symphony está desarrollado con PHP5 y soporta las bases de datos más populares en internet, como MySQL, Oracle, SQL Server y PostreSQL.

También puedes ejecutarlo en servidores con sistemas operativos Linux y Windows.

Zend Framework

No hace tanto que salió Zend Framework 3, pero la versión 2 es una de las más populares, y dónde encontrarás más documentación.

También es un framework libre y usa PHP7, que es la última versión de este lenguaje de programación.

Al ser cien por cien orientado a objetos, podemos separar sus componentes o paquetes, lo que nos ayuda a la hora de crear aplicaciones o servicios web.

CodeIgniter

CodeIgniter es otro de los frameworks PHP que también se usa bastante. Los programadores destacan su potencia y velocidad, y también valoran que es muy fácil de aprender.

Es uno de los más «antiguos» que hay, data del año 2006, y para aprender a usar por primera vez un framework de PHP es el más aconsejable.

Existen muchos otros FrameWorks basados en PHP, como Yii, CakePHP, Phalcon, FuelPHP… pero creo que de momento es más que suficiente empezar por cualquiera de los que hemos hablado.

¿Qué es un CMS?

Básicamente, los CMS son un sistema de gestión de contenido (en inglés Content Management System).

Cualquier CMS ya nos ofrece todo lo necesario para poder gestionar, y administrar, esos contenidos.

¿De qué estamos hablando? De gestionar un blog, contenidos multimedia, noticias, noticias, portales. etc.

Como ves, es diferente un Framework de un CMS. Un FrameWork te da las herramientas para que crees una aplicación web como quieras, y un cMS ya es una aplicación web que podemos adaptar.

Algunas de las características principales de los CMS:

  • Son muy fáciles de usar. Ya vienen preparadas para publicar el contenido, y sólo le cambias la apariencia.
  • Se pueden personalizar, tanto los temas como las funcionalidades mediante plugins.
  • Código abierto o licencia gratuita, lo que asegura que sean proyectos grandes con una comunidad detrás que los apoya.
  • Como se suelen actualizar con bastante regularidad, tienen una alta seguridad.
  • No son necesarios conocimientos de programación, para poder instalar y gestionar un CMS.
  • Mucha documentación, tutoriales  y cursos de como funcionan.

Entonces, si un CMS te lo da todo, ¿para que sirve aprender a programar en PHP? Si tienes conocimientos de programación, en un CMS como WordPress podrías:

  • Crear plugins para crear funcionalidades nuevas.
  • Crear y adaptar temas para modificar la apariencia.
  • Corregir y modificar el código que ya tiene el CMS.

Para un proyecto ¿es mejor elegir un CMS o programarlo (con un FrameWork)?

Los CMS solucionan cosas muy concretas, pero el grado de personalización que nos podemos encontrar actualmente nos permite que, por ejemplo, instalando una serie de plugins en WordPress podamos hacer una tienda on line (productos, carro y pasarela de pago).

Depende mucho de proyecto, pero si necesitamos crear una aplicación web que, por poner otro ejemplo, gestione usuarios con distinto acceso a otras áreas, noticias, encuestas, calendarios y demás, es posible que no encuentres ningún CMS que se adapte a lo que quieres (por muchos plugins que le pongamos).

Así que en cada momento tienes que decisión vas a tomar, dependerá de las necesidades, tiempo y dinero. Es muy posible que el 90% de las veces, en proyectos pequeños, adaptando un CMS es suficiente para lo que necesitas.

Veamos algunos de los Sistemas de Gestión de Contenidos más famosos.

PHP Nuke

¿Alguien se acuerda de PHP Nuke? Fue uno de los primeros CMS que te permitía gestionar un portal entero con todas sus características.

Actualmente no es recomedable su sintalación porque no se han ido actualizando las últimas versiones, por lo que puede contener graves problemas de seguridad.

WordPress

logo wordpress

WordPress es el CMS más popular en el mundo. El 90% de las páginas actuales están hechas con WordPress.

Además, existe una grande demanda como programador php, en la creación de temas / themes y plugins para este CMS.

Luego veremos algunos cursos que pueden ser interesantes como desarrollador.

Magento

Magento está escrito totalmente en PHP, y se utiliza para crear tiendas online, ya que viene con todo lo necesario (es instalar y listo).

Con sus diferentes módulos puedes ampliar sus funciones básicas, pudiendo crear increíbles plataformas.

Prestashop

Prestashop es un CMS de código abierto. Al igual que Magento, te permite gestionar el comercio electrónico mediante una página web.

Tiene todo lo necesario para tu tienda, pasarela de pago, gestión de inventarios, plantillas que se pueden personalizar, informes, analíticas…

Drupal

Drupal es una buena alternativa a WordPress. Es de software libre y tiene una comunidad muy activa de usuarios.

Su sistema basado en módulos permite personalizar tu página web, creando desde una comunidad virtual a una red social.

Joomla

Joomla es otra herramienta para crear páginas webs, muy parecida a WordPress y Drupal.

También tiene un buen carálogo de componentes, la mayoría gratuitas, para personalizar tu blog, web corporativa (para pequeños o grandes negocios) o sitio web personal.

Moodle

Para terminar, diremos que Moodle está pensado para ofrecer recursos educativos. Si quieres crear un curso online, es la mejor opción.

Su plataforma permite que los administradores, profesores y alumnos lo tengan todo integrado en un solo lugar.

Cursos de programación de PHP

Después de todo lo que hemos hablado, vemos que hay muchísimas salidas para PHP. Si te interesa un curso de php online,

O si simplemente quieres aprender a programar en PHP, y de paso saber como funciona MySQL, existen muchas opciones que te pueden interesare.

Resumen final

¿Podemos decir que PHP es el lenguaje de programación web más usado? Seguramente sí.

Hemos hecho un repaso a las características de php, algunos frameworks que peudes usar para ayudarte en la programación, y los principales CMS que podemos usar con todo preparado para crear tu web.

Ajustes