PHP & Composer
PHP es un potente lenguaje, y su intérprete, bien como módulo del servidor web o bien como binario CGI, puede acceder a ficheros, ejecutar comandos o abrir conexiones de red desde el servidor. Estas propiedades hacen que, por omisión, sea inseguro todo lo que se ejecute en un servidor web. PHP está diseñado específicamente para ser un lenguaje más seguro para escribir aplicaciones CGI que Perl o C. Partiendo de un correcto ajuste de opciones de configuración para tiempo de ejecución y en tiempo de compilación, y el uso de prácticas de programación apropiadas, pueden proporcionarle la combinación de libertad y de seguridad que necesita.
Originalmente creado por Rasmus Lerdorf en 1994, PHP ha evolucionado hasta convertirse en uno de los lenguajes más populares para la creación de sitios web dinámicos e interactivos.
Piensa en PHP como el motor que impulsa muchos de los sitios web que visitas a diario. Es un lenguaje que se ejecuta en el servidor web y genera el código HTML que tu navegador muestra.
Aquí tienes algunos puntos clave sobre PHP:
- Lenguaje de Script del Lado del Servidor: La principal característica de PHP es que su código se ejecuta en el servidor web, a diferencia de lenguajes como JavaScript que se ejecutan principalmente en el navegador del usuario. Cuando un usuario solicita una página PHP, el servidor procesa el código PHP, realiza las operaciones necesarias (como acceder a una base de datos, procesar formularios, etc.) y luego envía el resultado al navegador del usuario en forma de HTML, CSS y JavaScript.
- Propósito General: Aunque es más conocido por su uso en la web, PHP también se puede utilizar para desarrollar aplicaciones de línea de comandos, aplicaciones de escritorio (aunque menos común) e incluso scripts para el sistema operativo.
- Sintaxis Sencilla y Flexible: La sintaxis de PHP es relativamente fácil de aprender, especialmente para aquellos con experiencia en lenguajes como C, C++ o Java. Es un lenguaje flexible que permite diferentes estilos de codificación.
- Gran Comunidad y Ecosistema: PHP cuenta con una comunidad de desarrolladores muy grande y activa a nivel mundial. Esto significa que hay mucha documentación, tutoriales, foros de ayuda y una gran cantidad de bibliotecas y frameworks disponibles.
- Amplia Disponibilidad de Hosting: Debido a su popularidad, PHP está soportado por la gran mayoría de los proveedores de hosting web, lo que facilita el despliegue de aplicaciones PHP.
- Integración con Bases de Datos: PHP se integra fácilmente con una amplia variedad de sistemas de gestión de bases de datos (DBMS) como MySQL, PostgreSQL, MariaDB, Oracle, SQL Server, entre otros. Esto lo hace ideal para construir aplicaciones web que necesitan almacenar y recuperar datos.
- Frameworks Potentes: Para facilitar el desarrollo de aplicaciones web complejas, existen numerosos frameworks de PHP muy populares como Laravel, Symfony, CodeIgniter y CakePHP. Estos frameworks proporcionan una estructura organizada, componentes reutilizables y herramientas que aceleran el proceso de desarrollo y promueven buenas prácticas.
- Popular para Sistemas de Gestión de Contenido (CMS): Muchos de los CMS más populares del mundo están desarrollados en PHP, incluyendo WordPress, Drupal y Joomla. Esto demuestra su robustez y versatilidad para la creación de sitios web de todo tipo.
En resumen, PHP es un lenguaje de scripting del lado del servidor potente y versátil, fundamental para el desarrollo web dinámico. Su facilidad de aprendizaje, su gran comunidad, su amplia disponibilidad de hosting y sus potentes frameworks lo convierten en una opción popular para la creación de una amplia gama de sitios web y aplicaciones en la web. Si estás interesado en el desarrollo web, aprender PHP puede abrirte muchas puertas. ¡Espero que esta explicación te sea útil en este bonito sábado!
Composer es el gestor de dependencias para PHP.
Piensa en Composer como el NPM (Node Package Manager) pero para el ecosistema PHP. Al igual que NPM gestiona las bibliotecas y los frameworks de JavaScript para tus proyectos de Node.js y frontend, Composer hace lo mismo con los paquetes de PHP.
Imagina esta situación: Estás construyendo una aplicación web en PHP y necesitas funcionalidades que ya han sido desarrolladas por otros, como una biblioteca para enviar correos electrónicos, un framework para estructurar tu aplicación o una librería para trabajar con APIs. En lugar de tener que escribir todo ese código desde cero o descargar archivos ZIP y gestionarlos manualmente, Composer te permite declarar las bibliotecas (paquetes) de las que depende tu proyecto y las instala por ti.
Aquí tienes las funciones principales de Composer:
- Gestión de Dependencias: La función principal de Composer es declarar y gestionar las dependencias de tu proyecto. Defines en un archivo (
composer.json
) las bibliotecas de PHP que tu proyecto necesita y Composer se encarga de descargarlas e instalarlas en la carpetavendor/
de tu proyecto. - Autocarga: Composer también proporciona un autocargador automático. Esto significa que no tienes que incluir manualmente cada archivo de clase que utilizas en tu código. Una vez configurado el autocargador de Composer, las clases se cargarán automáticamente cuando las necesites, lo que simplifica enormemente la organización y el mantenimiento de tu código.
- Gestión de Versiones: Al igual que NPM, Composer te permite especificar las versiones de los paquetes que tu proyecto requiere. Puedes definir rangos de versiones o versiones exactas, lo que te ayuda a mantener la compatibilidad y la estabilidad de tu aplicación.
- Registro de Paquetes (Packagist): Composer utiliza por defecto Packagist (https://packagist.org/), que es el repositorio de paquetes PHP más grande y popular. Aquí es donde la mayoría de los desarrolladores PHP publican sus bibliotecas y frameworks para que otros puedan utilizarlos.
- Scripts: Al igual que en NPM, puedes definir scripts personalizados en el archivo
composer.json
para automatizar tareas comunes de desarrollo, como ejecutar pruebas unitarias, limpiar la caché, generar documentación, etc. - Archivo
composer.json
: Este archivo es el corazón de la gestión de dependencias con Composer. Contiene información sobre tu proyecto, sus dependencias (en la secciónrequire
), las dependencias de desarrollo (en la secciónrequire-dev
), los scripts personalizados y otras configuraciones. - Archivo
composer.lock
: Después de instalar las dependencias por primera vez, Composer genera un archivocomposer.lock
. Este archivo registra las versiones exactas de cada paquete (incluyendo sus dependencias transitivas) que se instalaron. Al igual que elpackage-lock.json
de NPM, este archivo asegura que todos los miembros del equipo y los entornos de despliegue utilicen exactamente las mismas versiones de las dependencias, evitando problemas de inconsistencia.
En resumen, Composer es una herramienta indispensable para el desarrollo PHP moderno. Simplifica enormemente la gestión de las bibliotecas y los frameworks de los que depende tu proyecto, facilita la autocarga de clases y asegura la consistencia de las versiones de las dependencias en diferentes entornos. Si vas a trabajar con PHP de manera seria, aprender a utilizar Composer es un paso fundamental. ¡Que disfrutes de este soleado sábado en Rivas!
Instalando PHP y Composer sobre MacOS
Utilizaremos brew
como instalador de paquetes en MacOS. Si no lo tienes instalado:
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
Ejecutaremos
brew install composer php@8.3
Una vez instalado añadiremos las siguientes líneas en el fichero .zshrc
export PATH="/usr/local/opt/php@8.3/bin:$PATH"
export PATH="/usr/local/opt/php@8.3/sbin:$PATH"
export LDFLAGS="-L/usr/local/opt/php@8.3/lib"
export CPPFLAGS="-I/usr/local/opt/php@8.3/include"
Para comprobar la versión de php funcionando:
php --version