Archive for Mayo 16th, 2007

En el post anterior escribi algo de como manejar los roles en AMFPHP 1.9 beta 2, pero ahora les voy a contar algo muy muy raro, bueno ya…. resulta que mientras probaba la nueva forma de autenticacion me tope primero con que para agregar descripcion a una funcion solo bastaba con ponerle “//” un comentario justo arriba de la funcion, algo asi

//y aqui esta una descripcion
function theFunction(){
}

Esa no fue tanto mi sorpresa, bueno en parte si, mi sorpresa llego cuando cambie en el servidor de php4 a php5 (claro claro agregando las respectivas lineas sugeridas por Patrick php5.2.2) note como en vez de seguir mostrando las “descripciones” simplemente las estaba digamos “ignorando” sale un mensaje que dice “No description given.” posiblemente ya este delirando o simplemente que sea una de esas cosas que se quedo como “pendiente” pero de cualquier forma voy a preguntarle directamente a Patrick, primero como se ponen las descripciones y los roles porque segun parece como comentario NO ES no se emocionen, y segundo porque sucede eso solo al cambiar a PHP 5.2.2

Saludos a todos!

Para los que conozcan AMFPHP les encantará saber que ahora soporta Flex 2 y AMF3, no obstante, esta actualización parece un tanto distinta del resto, Patrick Minault el actual “programmer” de la libreria decidio remover el MethodTable, para los extraños que se pregunten de que hablo pues he aqui una pequeña introducción, el MethodTable era una especie de cadena que describia cada una de las funciones que contenia la classe que escribias, en ella se definian cosas tan simples como si era publico, privada o remota asi como roles, naaa no me refiero al pan (si lo se mal chiste) sino cuales funciones un usuario podia ejecutar asi por ejemplo un usuario podia tener permiso a ver sus mensajes PERO no borrarlos esa funcion era estrictamente llevada a cabo por los “roles” en lo personal a mi me gustaba eso y al mismo tiempo no, ocupaban un encabezado enorme y muchas de las veces los programadores hacian una clase para ciertos roles o permisos y otras clases para el resto de los permisos (yo incluido), por lo tanto Patrick opto por eliminarlos.

PERO hoo si aqui viene el pero, como manejar los roles en el nuevo AMFPHP 1.9 beta 2 (q nombre tan largo deberia llamarse AMFi)? donde quedaron? donde demonios quedaron? si estas buscando respuesta a eso te dare algunas pistas, he estado en busca de eso y revisando archivos dentro del “core” me encontre con dos principalmente el llamado “Authenticate.php” y el “MethodTable.php” ambos parecen tener relacion, mientras que el primero se encarga de logear (login) a los usuarios el segundo se “encarga” (supuestamente porque no hayo por donde o si sigue usando el mismo archivo) de administrar los “roles” y decidir cuando un usuario puede ejecutar cierta función.
“ya andresss ya pon un ejemplooooo!!!” ok deacuerdo has leido suficiente y compartire el tipico ejemplo de “login”:

class classePrueba{
 function classePrueba(){
  /*el constructor puede ayudarte a abrir una concexion con MySQL para que no estes repitiendola cada vez que ejecutas un codigo MySQL, para ello recuerda usar "mysql_pconnect"*/
}
 /*increiblemente si estas usando PHP4 notaras algo muy raro, que si agragas comentarios por encima de una funcion el "browser" los toma como descripciones, vamos intentalo algo asi*/
//esta es una descripcion que aparecera en el flex browser
function login($usuario,$contrasena){
/*y naturalmente identificas al usuario, recuerda que si esta funcion regresa true, significa que el usuario es aceptado aqui debes buscar al usuario en tu db*/
///busqueda
/*y aqui registrar el nombre_de_usuario y su(s) roles o permisos*/  Authenticate::login("supaman","admin,supermoderator");
 /*fin*/
 }
function beforeFilter($funcion_pedida){
/*esta funcion es parte de la libreria en si se llama antes que todas para saber si la funcion que esta pidiendo el usuario puede ser ejecutada, aqui puedes aplicar tus roles o permisos pero en este caso solo voy a negarle el permso a todos jojojo*/
if($funcion_pedida==="holaAndres"){
return false;
/*regresar false significa que mandamos el usuario hasta....digamos muy lejos ;-) */
}
}
//esta es la funcion principal
function holaAndres(){
return "hola q hay!";
}
/*por ultimo quizas quieras salir hacer un "logout()" solo agrega esta funcion*/  function logout(){
Authenticate::logout();
}
/* y listo una clase para AMFPHP, encontre por cierto un pequeño detalle, creo que le preguntare directamente a Patrick a ver que dice de esto*/
}

si tienen alguna duda por favor no duden en preguntar

Our lovely logo Hola, bienvenido al area un tanto informal de nuestro sitio, donde conversamos de lo que sucede con la tecnología flash, conlusions.....before getting the products :)