Cómo ejecutar stored procedures de MySQL usando PHP

Cómo ejecutar stored procedures de MySQL usando PHP

Cómo hacer para...
Un procedimiento almacenado es una herramienta que permite almacenar código ejecutable directamente en la base de datos. Personalmente no lo considero una práctica muy recomendable por varias razones: La idea de tener lógica de negocio fuera del código de mi aplicación me da cierta desconfianza (No me gusta no poder entender todo lo que está pasando en mi aplicación sólo con ver su código). Llegado el caso de tener que migrar de motor de base de datos el tener procedimientos almacenados puede convertirse en un problema Aún así, entiendo que puede haber situaciones en las que sea conveniente recurrir a ellos... especialmente cuando se trata de operaciones suamente complejas/pesadas o que tienen que ver estrictamente con el mantenimiento de la base de datos. ¿Cómo se llaman desde PHP? http://php.net/manual/es/mysqli.quickstart.stored-procedures.php http://www.mysqltutorial.org/php-calling-mysql-stored-procedures/
Leer más
Dónde almacenar la configuración de una aplicación PHP de forma segura

Dónde almacenar la configuración de una aplicación PHP de forma segura

Buenas prácticas
Una pregunta que me llegó de un amigo que viene del mundo .Net (Que parece ser un poco más organizado o estandarizado que el nuestro :). Lo primero que deberíamos preguntarnos es de qué nos estamos queriendo proteger. Por lo general, la posibilidad de que alguien externo a nuestra organización tenga acceso a la configuración de nuestra aplicación no parece muy tentadora... ¿por qué? Básicamente porque puede haber información sensible (Como ser contraseñas, nombres de hosts donde están las bases de datos, etc...) que podrían dar a un atacante una ventaja importante si decidiera hacernos un daño. Una línea de defensa que tenemos es guardar estos archivos en un directorio que no sea públicamente accesible. Si usás el webserver Apache, conocerás seguramente la directiva DocumentRoot: lo que está "a la vista" de…
Leer más
Cómo acceder a Google Drive usando PHP

Cómo acceder a Google Drive usando PHP

Cómo hacer para...
El escenario que voy a analizar es este: Una aplicación desarrollada en PHP requiere acceder a archivos que sus usuarios tienen almacenados en sus propios documentos almacenados en Google Drive. Los pasos son los siguientes: 1. Crear un proyecto en Google (yendo a https://console.developers.google.com/apis/credentials): 2. Habilitar el acceso a la API via OAuth (https://console.developers.google.com/apis/api/drive/overview?project=MI_PROYECTO): 3. Crear las credenciales de acceso vía OAuth: Seleccionar OAuth: 4. Descargar las credenciales a un lugar seguro: 5. Autorizar la URI de redireccionamiento Con esto hecho ya tenés lo básico para empezar a programar. Se puede hacer todo en un solo archivo (aunque no es muy recomendable) o se puede tener un archivo para cada paso del trabajo. Te muestro un ejemplo de lo segundo. Ante todo, vas a necesitar la librería google/apiclient (Te recomiendo incorporarla con composer), acá podés…
Leer más
Los bundles mínimos para un proyecto empresarial Symfony

Los bundles mínimos para un proyecto empresarial Symfony

Herramientas
Ultimamente me estuve entusiasmando bastante con un par de proyectos en los que estamos trabajando en Leeway (obviamente codeados en mi framework favorito Symfony :)) y me pareció interesante compartir algo de la experiencia. Symfony por sí mismo es un gran Framework cuando se trata de armar un sólido Back-End, pero la parte de front... es un poco floja para mi gusto. Afortunadamente, el diseño modular que tiene ha permitido que mucha gente colabore con excelentes bundles, entre ellos: MopaBootstrapBundle Lograr un frontend responsive sin saber casi nada de css es, en mi opinión, un sueño hecho realidad. Este bundle permite apalancarse en Twitter Bootstrap para lograr una UI muy profesional (y estándar). Ejemplo de una pantalla lograda: Más información acá AsseticBundle La librería Assetic provee una forma muy buena de manejar los recursos estáticos…
Leer más
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 con PHP

Cómo enviar emails con 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 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...
[caption id="attachment_651" align="aligncenter" width="640"] Hand holding phone coming out from laptop. Contact us flat illustration. Eps8[/caption] 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…
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. Aquí un ejemplo de uso (Extracto de un proyecto que desarrollamos para un cliente de Leeway): $objPHPExcel = new PHPExcel(); // Se crea la instancia…
Leer más