Alejandro Morales Meza
Diseñador y Desarrollador de Software y Bases de Datos
Soy un profesional en Ingeniería de Sistemas con más de seis años de experiencia en el diseño y desarrollo de software y bases de datos. He trabajado en proyectos de software de pequeño, mediano y alto grado de complejidad para diferentes sectores del mercado. Soy de espíritu proactivo, investigador, creativo e ingenioso que me lleva a brindar soluciones efectivas a cualquier tipo de requerimiento asociado a mi área de desempeño. Realizo mi trabajo con excelencia, calidad y profesionalismo. Tengo un deseo continuo de crecimiento personal y profesional.
19th
ENE
PHP 5.4.0 Soporta la Des-referencia de Arreglos
Enviado por alejandromoralesmeza bajo PHP
Estando próximos a la liberación de la versión 5.4.0 de PHP, me parece muy importante mencionar lo que para mí es una magnífica noticia, ya que hace referencia a la adición de una nueva característica a PHP que he esperado hace ya buen tiempo: La des-referencia de arreglos, lo cual significa, sin más, la acción de acceder a un contenido en memoria mediante el uso de su referencia, donde la referencia es un identificador o variable en el programa que apunta a una posición de memoria específica.
Puntualizando en la característica de PHP a que nos referimos en esta breve entrega, lo que éesta nos permite hacer, es acceder a un arreglo directamente mediante una referencia devuelta desde una función. En versiones anteriores de PHP, si nosotros queríamos acceder a un arreglo que fuese retornado desde una función, debíamos asignarlo primero a una variable de la siguiente forma:
$arreglo = $miObjeto->devuelveArreglo(); echo $arreglo["nombre"];
Con la nueva característica de PHP nosotros podemos hacer lo siguiente:
echo $miObjeto->devuelveArreglo()["nombre"];
Si además, el arreglo devuelto contiene objetos, también podremos acceder a ellos mediante la siguiente sintaxis:
echo $miObjeto->devuelveArreglo()["objeto1"]->getNombreObjeto(); echo $miObjeto->devuelveArreglo()[0]->getNombreObjeto();
Obviamente, habrá casos en que esto resultará muy beneficioso y otros en que no. Dos de los beneficios que yo veo son que podríamos reducir el número de líneas de nuestro código y lograr que la lectura del mismo sea más natural debido a que el comportamiento a que hacemos referencia es bastante intuitivo. Un caso en que su utilización es desaconsejable, sería cuando el arreglo devuelto por el método es el resultado de una serie de operaciones que implican un alto costo en tiempo de ejecución y/o memoria.
29th
SEP
Clase Request v2.0
Enviado por alejandromoralesmeza bajo PHP
En esta breve entrega quiero presentarles la clase Request, que ya fue introducida previamente en esta WEB, con algunas mejoras, de las cuales vamos a considerar las más significativas a continuación:
- Permite enviar datos cifrados o sin cifrar, lo cual es muy útil si estamos manejando información sensible en nuestras aplicaciones. Esto es muy importante, ya que los datos enviados por POST, si bien no son visibles en la URL, pueden ser recuperados con algunas herramientas de software diseñadas para tal propósito, lo cual, en algunos casos hace necesaria esta medida de seguridad adicional.Para indicarle a la clase
Requestque debe cifrar los datos, creamos una instancia como sigue:$request = new Request(Request::POST, Request::DEFAULT_TARGET, true);
O una vez que ésta se encuentre creada invocamos el método:
$request->setCyphered(true);
Cabe mencionar también, que no solo podemos enviar datos cifrados por POST, sino que además podemos enviarlos por GET. Para hacerlo, podríamos crear una instancia de la clase
Requestpasando al constructor la constanteRequest::GETde la siguiente manera:$request = new Request(Request::GET, Request::DEFAULT_TARGET, true);
Cuando decidimos enviar nuestros parámetros cifrados mediante una instancia de la clase
Request, debemos incluir el archivo que contiene la claseRequesten el archivo PHP que recibe los datos, de esta manera, ella se encargará de descifrar los datos, permitiéndonos acceder a ellos mediante una invocación del métodogetParam()ogetParams()del objeto$request, como sigue:$nombre = $request->getParam("nombre");o
$parametros = $request->getParams();
Donde el primer caso nos muestra cómo obtener el valor de un único parámetro mediante su nombre y el segundo nos permite obtener todos los parámetros de una vez en un arreglo de tipo [clave => valor].
- Permite enviar parámetros por GET o por POST a una ventana emergente de una manera muy elegante. Basta con agregar los parámetros a una instancia de la clase
Requesten invocar el métodopopUpForward()en lugar de soloforward(). Un ejemplo completo de esto es el siguiente:$request = new Request(); $request->addParam("dato1", "Sr."); $request->addParam("dato2", "Alejandro"); $request->addParam("dato3", "Morales"); $request->addParam("dato4", "Meza"); $request->setParamsFromString("?param1=valor1¶m2=valor2¶m3=valor3"); $request->setCyphered(true); $request->popUpForward("response.php");Al invocar el método
popUpForward()con la dirección de destino únicamente, la claseRequestasumirá una configuración por defecto para la ventana emergente. Si por el contrario, nosotros queremos especificar una configuración personalizada, debemos pasarle al métodopopUpForward()un arreglo con los valores de configuración deseados, como sigue:$propiedades = array("width" => 300, "height" => 300, "resizable" => "no"); $request->popUpForward("response.php", "nombrePopup", $propiedades);Los nombres para dichas propiedades deben ser los mismos que se usan en javascript para denominarlas.
- Al incluir el archivo Request.php en una página PHP automáticamente se creará una instancia de la clase
Requestque nos permitirá manejar todos los parámetros enviados utilizando dicha instancia, sin importar si estos fueron enviados por GET o por POST y por un mecanismo diferente a la clase. - Ahora contamos con el método setParamsFromString(), el cual nos permite añadir parámetros a una instancia de la clase Request mediante el paso de una cadena de la forma:
"¶m1=valor1¶m2=valor2&...¶mN=valorN", lo cual en algunos contextos puede resultar más cómodo, ya que se traduce en menor cantidad de líneas de código.
Realmente espero que esta nueva versión pueda ser tan útil como la anterior y quedo atento a comentarios y sugerencias.
- Descargar el archivo Request.php
- Descargar un ejemplo del uso de Request.php
1st
JUN
Patrón MVC en PHP
Enviado por alejandromoralesmeza bajo PHP
En esta entrega aprenderemos como implementar el patrón MVC, Modelo-Vista-Controlador, en nuestras aplicaciones PHP a través del siguiente vídeo tutorial.
22nd
MAY
Hacer un POST en PHP
Enviado por alejandromoralesmeza bajo PHP
Muy a menudo deseamos desarrollar aplicaciones en PHP que aprovechen las ventajas de una distribución en capas sin necesidad de utilizar un framework que nos implemente dicha distribución. Las razones para ello pueden ser, básicamente, que no queremos subutilizar las características del framework si nuestro proyecto es pequeño o que no queremos invertir tiempo en el aprendizaje de uno cuando no contamos con el suficiente para desarrollar nuestro proyecto. Cuales fueren las razones, hay una alternativa para separar nuestra aplicación en capas de una manera muy sencilla y para poder transferir datos entre ellas.
La primera es la forma en que normalmente se hace en PHP: teniendo un conjunto de datos, generamos una cadena del tipo: destino.php?p1=v1&p2=v2…&pN=vN, y se la pasamos a la función header() para que ésta se encargue de hacer la redirección y pasar nuestra cadena de parámetros por GET.
Por ejemplo:
$destino = "PaginaDestino.php";
$params = "?nombre=Pepe&apellido=Mackoy&direccion=poralli...";
header("Location: $destino$params");
Esta primera forma tiene los siguientes inconvenientes:
- Los parámetros viajan de una página a otra a través de la URL, lo cual permite que los usuarios puedan ver los datos que se están enviando.
- El número de datos que pueden ser enviados por GET está limitado, por lo cual tendríamos serías dificultades si estuviéramos enviando un volumen considerable de información.
- Crear este tipo de cadenas [parámetro = valor] puede ser tedioso y prestarse para que se infiltren errores sutiles.
- Algunos caracteres especiales como el &, # y = deben ser convertidos a sus equivalentes hexadecimales para poder ser pasados por la URL.
La segunda manera de hacerlo es mediante el método POST. No obstante, en PHP no hay una manera sencilla de hacer esto. Por esa razón, he diseñado una pequeña clase que nos permite hacer el envío de parámetros utilizando POST de una manera muy intuitiva:
Por ejemplo:
require_once 'Request.php';
$request = new Request();
$request->addParam("nombre", "Pepe");
$request->addParam("apellido", "Mackoy");
// ...
$request->forward("destino.php");
ó tambien,
require_once 'Request.php';
$request = new Request();
$params = array("nombre" => "Pepe", "apellido" => "Mackoy");
$request->setParams($params);
$request->forward("destino.php");
Éste segundo método tiene las siguientes ventajas:
- No existe un volumen máximo permitido para transferir datos.
- Los datos no se ven en la URL, lo cual es ideal para manejar datos confidenciales.
- Los caracteres especiales son manejados internamente, por lo cual no debemos preocuparnos por hacer una conversión manual.
Espero que esta información les haya sido útil. Agradezco sus comentarios. Hasta una próxima.
Descargar el archivo Request.php
Frase del Mes
Frases Favoritas
Blogroll
Categorías
Archivos
- enero 2012 (1)
- septiembre 2010 (1)
- junio 2010 (1)
- mayo 2010 (1)
- febrero 2010 (1)
