18/03/2010, 14:38
|
| | Fecha de Ingreso: octubre-2008
Mensajes: 58
Antigüedad: 16 años, 1 mes Puntos: 1 | |
Respuesta: TADs en PHP Yo de nuevo, con un apaño que resuelve la necesidad de una lista ordenada, aunque sigo interesado en otras propuestas ya que no dudo que debe haber soluciones mucho más completas.
Lo que he hecho ha sido, a partir del código que he encontrado en este mismo sitio :
http://www.forosdelweb.com/wiki/PHP:%C2%BFC%C3%B3mo_ordenar_un_array_por_el_m%C3%A 9todo_de_ordenaci%C3%B3n_directa%3F
he creado una clase OrderedList, con una propiedad "elements" donde se guardará la lista ordenada. Los métodos que aparecen los he puesto como privados ya que serán métodos auxiliares de la clase que no se usarán (ni se deben conocer) desde fuera de la misma.
En el caso concreto que necesito voy a guardar en la lista objetos de tipo NoteBean con una serie de propiedades, entre ellas una fecha que es la que define el orden entre ellos. Así que he realizado los siguientes pasos:
1.- En la clase Notebean he creado un método público "compareTo($pNoteBean)". En este método he definido el orden entre beans, devolviendo -1 si $this>$pNoteBean, 0 si $this==$pNoteBean y 1 si $this<$pNoteBean.
2.- En la clase OrderedList he sustituido la comparación que se lleva a cabo en el método "buscarPosicion" para que en lugar de hacer:
$array[$i] > $numero
Haga:
$numero->compareTo($array[$i]) > 0
(Donde $numero y array[$i] son de tipo NoteBean).
Y con esto y un par de retoques he conseguido una implementación para una lista ordenada.....
....tengo serias dudas de que haya quedado clara mi explicación pero espero que al menos sirva de orientación. De todos modos, como ya he dicho, me interesaría conocer soluciones que se proponen en php para algo tan común en programación como el uso de TADs.
Saludos! |