Artículos

Cómo borrar archivos usando php

Cómo borrar archivos usando php

Cómo hacer para...
Leyendo en algún foro he visto algo que me sorprendió mucho. Alguien estaba intentando borrar un archivo desde PHP usando este comando: exec("rm ".$directorio.$imagen); En general, no soy muy amigo de la función exec... demasiados riesgos de seguridad... pero particularmente, en este caso, este código sólo podrá ejecutar en un entorno que contenga el comando "rm" (Linux o similar). Lo llamativo es que PHP cuenta con una función específicamente diseñada a tal fin (unlink), con lo cual, el código escrito de esta forma será más portable (léase: menos dolores de cabeza). Una de las maravillosas (y muchas veces odiadas) características de php es que tiene una cantidad enorme de funciones, o sea, antes de escribir código tuyo, preguntate si no habrá alguna función que lo haga... casi seguramente la respuesta…
Leer más
Cómo pasar un sistema de Xampp a un Hosting Web

Cómo pasar un sistema de Xampp a un Hosting Web

Cómo hacer para...
Una práctica muy común entre los desarrolladores de PHP (Especialmente los que recién arrancan), es instalar en sus propias computadoras un paquete como XAMPP. Si bien considero mejor instalar todo el entorno de trabajo de un proyecto en su propia máquina virtual, esta alternativa no está mal para comenzar. El problema viene cuando llega el gran día: la salida en vivo. Lo primero que necesitarás hacer es subir todo tu código (vía FTP probablemente) al hosting que hayas contratado. Luego necesitarás crear la base de datos (asumo que será un MySQL) tal como está en tu XAMPP (puedes hacer un dump de lo que tienes actualmente y levantarlo en tu hosting). Una vez que tengas eso hecho deberás seguramente modificar alguna configuración de tu sistema para que apunte correctamente a…
Leer más
Cómo enviar emails desde PHP

Cómo enviar emails desde PHP

Cómo hacer para...
Es muy común la necesidad de email desde PHP, tanto si se trata de un script de CLI (como puede ser un cronjob) o de una aplicación web. Existen varias opciones a la hora de conseguirlo: La más simple es el uso de la función mail. Es una función de bastante bajo nivel (es decir, algo tosca), pero está disponible en casi cualquier instalación de php. Esta opción está bien para escenarios de envíos de mail simples, pero para usos más avanzados (como enviar adjuntos, HTML o similares), es conveniente utilizar alguna otra opción algo más robusta. Algunas alternativas interesantes son: PHPMailer SwiftMailer ZendMail Cualquiera de estas alternativas resultará más adecuada que el uso de la simple función mail en contextos en los que la performance es una preocupación (Por ejemplo, cuando…
Leer más
Cómo conectar un botón HTML con un método de un objeto php

Cómo conectar un botón HTML con un método de un objeto php

Cómo hacer para...
Un alumno de un curso de PHP Orientado a Objetos me hizo esta pregunta: Necesito hacer que un botón o link de mi HTML ejecute un método de un objeto php.Intenté lo siguiente pero sin éxito:<a href="<?php $objeto->Método() ?>"> Reservar </a> La pregunta encerraba una confusión respecto del modelo de ejecución de PHP. Revisemos un poco Cuál es el modelo de ejecución de PHP Lo primero que hay que entender para responder esta pregunta es el ciclo de vida de una petición a una aplicación (o página) PHP. Recordemos que PHP es un lenguaje pensado (al menos originalmente) para generar código HTML en forma dinámica sin recurrir a complicados mecanismos tipo CGI. HTML es la salida por defecto de PHP cuando se ejecuta como módulo de algún servidor web (Apache por ejemplo)...…
Leer más
Cómo se usan las funciones anónimas en PHP

Cómo se usan las funciones anónimas en PHP

Cómo hacer para...
Las funciones anónimas son, como te habrás imaginado, funciones que no tienen un nombre. Esto puede sonar bastante raro, siendo que seguramente cuando aprendiste qué es y cómo se define una función en PHP te dijeron que era algo con la pinta: function f( $param1, $param2 ) { // Algo de código } Pues te mintieron. Bueno, no, en realidad no te mintieron pero te dieron una versión parcial de la verdad. Lo que quiero decir es que generalmente las cosas son así como las conoces, pero existen otras posibilidades. Te presento la función anónima: $f = function( $param1, $param2 ) { return $param1 + $param2; } En este ejemplo estoy asignando a la variable $f la función que estoy definiendo (¡No el resultado de su evaluación! No te confundas). Y…
Leer más
Cómo se usan los callbacks en PHP

Cómo se usan los callbacks en PHP

Cómo hacer para...
Este es uno de mis temas preferidos cuando a PHP se refiere. Debo confesar que lo descubrí bastante tarde, pero fue prácticamente amor a primera vista. Veamos un ejemplo: Si tengo un array con números ( [ 1, 2, 3, 4, 5 ] ) y quiero obtener sólo los números pares, la forma normal de hacerlo sería algo como: $pares = []; foreach ( $numeros as $numero ) {    if ( $numero % 2 == 0 ) {        $pares[] = $numero;    } } Levantemos un poco el nivel de abstracción: function esPar( $numero ) { return $numero % 2 == 0; } $pares = []; foreach ( $numeros as $numero ) {    if ( esPar( $numero ) ) {        $pares[] = $numero;…
Leer más
Cómo interactuar con Excel desde PHP

Cómo interactuar con Excel desde PHP

Cómo hacer para...
Un problema bastante común en el desarrollo de aplicaciones para empresas es la interacción con Excel (Levantar datos, generar planillas, etc...). Un modo sencillo de evadir el problema (y que muchas veces funciona), es exportar la información hacia archivos de texto separados por comas (Los famosos CSV) y luego tratarlos desde PHP con funciones como fgetcsv. Obviamente, esto servirá si se trata de una aplicación que sólo requiere leer datos... ¿Qué pasa si necesitamos generarlos? (O si la estructura de la planilla en cuestión es algo más compleja). Como en la mayoría de los casos, existen diversas opciones de solución. Una particularmente buena es la librería PHPExcel PHPSpreadSheet. Escribir un archivo Excel usando PHP Un detalle importante de la librería PHPSpreadSheet es que permite interactuar con planillas de cálculo diversas (xls,…
Leer más
Cuál es la diferencia entre isset() y empty()

Cuál es la diferencia entre isset() y empty()

Misceláneos
Empiezo por las formalidades: Ambas son funciones del lenguaje. isset informa si un identificador (el nombre de una variable) está definido o no dentro del hilo de ejecución actual (Muy importante entender esto, no se trata de que haya sido definido dentro del archivo actual). empty indica si el valor asociado a un identificador es o no vacío (La definición de vacío de PHP tiene sus peculiaridades como te voy a mostrar más adelante). Veamos algunos ejemplos para aclarar el punto: $a = 0; if (empty($a)) { echo 'empty'.PHP_EOL; } if (isset($a)) { echo 'isset'.PHP_EOL; } Este código dará como salida: empty isset Si se lo ejecuta desde la línea de comandos. Este otro if (isset($a)) { echo 'isset'.PHP_EOL; } $a = 0; if (empty($a)) { echo 'empty'.PHP_EOL; } Mostrará…
Leer más
Qué es composer y por qué deberías usarlo

Qué es composer y por qué deberías usarlo

Herramientas
Composer es un gestor de dependencias para PHP. De algún modo podrías considerarlo como el heredero de PEAR. Hoy día se considera el gestor de dependencias de-facto por unas cuantas buenas razones: Es muy simple de operar Cuenta con un repositorio super completo (Packagist) Disminuye significativamente los problemas de cambio de ambiente de ejecución (Mediante su funcionalidad de congelar dependencias) Si nunca lo usaste, te recomiendo que lo pruebes. Instalación La instalación de composer es sumamente simple. Como dice el sitio getcomposer.org en su página de descargas: php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');" php -r "if (hash_file('SHA384', 'composer-setup.php') === '544e09ee996cdf60ece3804abc52599c22b1f40f4323403c44d44fdfdd586475ca9813a858088ffbc1f233e9b180f061') { echo 'Installer verified'; } else { echo 'Installer corrupt'; unlink('composer-setup.php'); } echo PHP_EOL;" php composer-setup.php php -r "unlink('composer-setup.php');" A partir de ahí tendrás disponible un comando llamado composer (Qué sorpresa ¿no?). Si lo ejecutas…
Leer más
Cuál es el mejor Framework PHP

Cuál es el mejor Framework PHP

Reflexiones
Esto es casi como preguntar ¿a quién querés más? ¿a tu mamá o a tu papá? Como en muchas otras áreas de la tecnología (del desarrollo web más específicamente), la gente tiende a fanatizarse en favor de las herramientas que le resultan más familiares, con lo cual, encontrar opiniones objetivas es ciertamente difícil. No voy a dar muchas vueltas, el framework que a mí más me gusta es Symfony, pero de ninguna forma diría que es "el mejor". Conozco unos cuantos buenos: ZendFramework Laravel Yii También hay algunos que se conocen como micro-frameworks: Silex Tonic En definitiva, la elección siempre será tuya. Lo que puede ayudarte a tomar la decisión es (en este orden): Tamaño de la comunidad de usuarios/desarrolladores Existencia de documentación Finalidad ¿Cuál es tu framework favorito?
Leer más