Ver Mensaje Individual
  #48 (permalink)  
Antiguo 03/03/2006, 08:37
gnfrs
 
Fecha de Ingreso: abril-2004
Ubicación: Rosario, Argentina
Mensajes: 124
Antigüedad: 20 años, 9 meses
Puntos: 11
Para Tukzone que lo miran por TV:

Te cuento la historia de esa clase y ojo que quizá aprendas un poco.

Hace dos años estaba trabajando en una empresa donde necesitaban que haga un sistema de recursos humanos, esto era básicamente un sitio donde se pueda llenar un CV con un gran asistente. Acá me las ví difíci puesto que prácticamente no tenía clases desarrolladas y el sistema iva a terminar siendo muy complejo.

Paralelamente a esto estaba leyendo un libro de C#, donde me impresionó mucho el Framework, nunca antes había escuchado esa palabra, era totalmente nuevo para mí... Ahí fue cuando adopté esa tecnología en PHP, habrás visto el Using() esto no es más que el Using() de la plataforma .NET, me incluye una clase al proyecto, y a su vez esa clase puede hacer otro Using si necesita de una clase base para funcionar. También como en .NET todas las clases heredan de una clase base Object que tiene algunos métodos y propiedades comunes a todas las clases (yo las llamo plugins) de la librería.

Un plugin especial es ERROR ya que no es necesario cargarlo, puesto que todos los otros plugins le pasan información acerca de sus tipos de errores, los errores se generan con un reporte especializado que muestra muchos datos tanto del cliente que produjo el error como información del servidor. Es más está completamente manipulado el reporte de errores de PHP, en las llamadas a métodos de los plugins de las clases se puede poner un @ (arroba) delante de la instrucción y la librería corrobora si debe generar el reporte en caso que se produzca un error y mostrarlo o ignorarlo dependiendo de esta característica.

La clase de validación también la hice inspirándome en .NET, ya que había unos burdos objetos para validar campos, creo que existía el objeto validar requerido, validar numérico (o algo parecido), lo que pensé fue en una sola clase que VALIDE, independientemente de lo que quiera validar.

Después me fui topando con muchos inconvenientes, por ejemplo, cuando estaba haciendo el asistente de currículos me topé con que una persona podía cargar más de un trabajo, entonces yo iva a tener más de un formulario en el mismo script, puesto que el dueño no quería hacer un listado tuve que agregar la funcionalidad para validar campos múltiples, es decir, proporcionarle el nombre de sólo un objeto HTML para validar e indicarle que puede haber un array de "i" a "j" índices, pero esto se divide en dos partes: 1) Validación de campos multiples y 2) Validación de formularios mútliples, que estos son distintos campos enlazados por un índice a un mismo formulario, en pocas palabras, la validación se efectúa varias veces dependiendo de la cantidad de formularios enviados.

Obviamente que cuando empecé a desarrollarla tenía determinados estándares por ejemplo, todas las clases tenía un prefijo "U" dado a que el nombre de la empresa empezaba con esa letra... Con el tiempo fui quitando esas cosas...

Cita:
Iniciado por Reynier
Uff, deberías haberlo hecho hace tiempo ya y no es por criticar pero deberías usar los estándares existentes
Es verdad, eso es lo que estamos haciendo ahora.

Cita:
Iniciado por Reynier
Excelente para crear la documentación final del Proyecto no para comentarios ni estándares, o al menos eso es lo que tengo entendido que hace phpDocumentor.
Te cuento algo, hay algunos editores de código PHP como el Zend que tienen ayuda contextual, y documentar el código me sirve más para la ayuda contextual que para phpDocumentator (sólo en mi caso) ya que casi ni usamos la documentación de phpDocumentator aunque siempre la volvemos a generar cuando se actualiza la librería...

Cita:
Iniciado por Reynier
¿Entonces porque razón comentas que desarrollas una clase y además de ello pones el código?
Puse el código porque es muy largo según varios estándares y en este foro estábamos hablando sobre qué opciones hay para optimizarlo. Además no me molesta poner la clase (me da fiaca), los métodos que uso le pueden ser de ayuda a alguien y yo he recibido ayuda en muchas ocaciones.

Cita:
Iniciado por Reynier
Perfecto, entonces crea tu propio repositorio de clases y ya verás que te mueres haciendo las cosas.
Ya lo hice y se llama ClassLib y como bien decís, casi me muero haciendo esto, ya lleva 2 años de desarrollo !!!! Y todavía me faltan clases para enviar mails, para FTP, para consultar POP3, etc...

Cita:
Iniciado por Reynier
Obvio que tardas mas en desarrollar todo que en leer la documentación dirigida al uso de una librería existente. Eso está de más aquí.
En mi caso me pasó lo contrario, quize descular JPGraph y casi me vuelvo tarado, soy de poca paciencia cuando trato de entender como trabaja otra persona, si yo no fuera así hoy estaría usando un Framework el triple de potente que el mío. Pero igualmente hago una consulta, yo he tratado de utilizar varias clases de PEAR por ejmplo y éstas tenían algunos errores (NOTICE) yo veo todos los errores que suceden porque no me gusta que me pasen cosas inesperadas, y así me pasó con muchas clases que tenía que toquetearlas para que funcionen en mi Servidor PHP. Cosa que nunca me pasa con mi librería porque hago la configuración estándar y manual, muchas veces me evito problemas.

Y si Tukzone vio el código en otro lado le hago un giro bancario si me dice donde, no tego miedo porque sé que tengo razón y aquí dije en qué me basé al construir la librería y esa clase, así que supongo que no quedan dudas.

Ahora volvamos al tema anterior, me habían dicho que postee la clase para ver qué se puede optimizar y qué no, lo reprogramo y hasta podría separar la clase de la librería y ponerla en un medio público con el nombre de todos los que contribuyan y el link de este foro, para que Tukzone no diga que me quedo con el crédito de otra persona.

Última edición por gnfrs; 03/03/2006 a las 08:53