Foros del Web » Programando para Internet » PHP »

Programación de "plugins" con PHP

Estas en el tema de Programación de "plugins" con PHP en el foro de PHP en Foros del Web. Buenas! Hace tiempo que vengo resolviendo toda clase de dudas a través de este foro y al final me he animado a postear una que ...
  #1 (permalink)  
Antiguo 22/09/2010, 13:23
 
Fecha de Ingreso: septiembre-2010
Mensajes: 3
Antigüedad: 13 años, 7 meses
Puntos: 0
Programación de "plugins" con PHP

Buenas! Hace tiempo que vengo resolviendo toda clase de dudas a través de este foro y al final me he animado a postear una que he dejado por imposible.

Estaba haciendo una pequeña aplicación web en la que obtengo una lista de datos de la base de datos y para cada dato quiero realizar una acción. Esta acción, obtener unas estadísticas, es distinta para algunos datos. Por ejemplo, si tengo 100 datos y 3 acciones, puede que 50 datos funcionen con la acción 1, 30 datos con la acción 2, 10 datos con la acción 3 y los otros 10 datos con acciones todavía no implementadas.

Esas acciones, que son más de 3, había pensado en hacerlas estilo plugins. Tenía intención de crear una clase abstracta "Plugin" con un método abstracto que seríá implementado en cada plugin y otro método que es para todos los datos igual que lo escribiría en la clase abstracta directamente.

Ahora crearía una nueva clase en la que guardaría una lista con todos los plugins declarados en la carpeta "plugins".
A la clase con la lista de plugins la llamaría "ListaPlugins" por ejemplo.

En la carpeta "plugins" tendría los archivos con las acciones a realizar, y cada uno de ellos extendería a la clase "Plugin" para sobreescribir el método necesario.

Y bueno, aquí llegaría el problema. Cómo se podría hacer para que en tiempo de ejecución se añadiesen todos los archivos de la carpeta "plugins" a la lista "ListaPlugins" para poder ser procesados?

La idea es que yo pueda ir añadiendo nuevos plugins a la carpeta sin tener que andar modificando la lista de plugins manualmente para añadir el que acabo de subir. Siendo muchísimo más cómodo para mi y no tendría de estar pendiente de si se me olvida añadir alguno a la lista.

Seguramente no sea demasiado complicado pero soy bastante nuevo en esto del PHP. Se agradecería cualquier idea o sugerencia :)

Muchas gracias!
  #2 (permalink)  
Antiguo 22/09/2010, 14:21
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: Programación de "plugins" con PHP

eso que necesitas es muy sencillo, solo debes abrir la carpeta, iterar los archivos e ir agregando lo que consideres necesario en tu lista de plugins... (:
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #3 (permalink)  
Antiguo 22/09/2010, 16:31
 
Fecha de Ingreso: septiembre-2010
Mensajes: 3
Antigüedad: 13 años, 7 meses
Puntos: 0
Respuesta: Programación de "plugins" con PHP

Vale, me ha costado lo suyo pero al final he dado con algo que funciona:

Código PHP:
foreach(glob("plugins/plugin_gen_*.php") as $nombre) {
            
$nombre substr($nombre,8,-4); //Quita "plugins/" y  ".php"
            
$this->listaGeneral[] = new $nombre();
        } 
No se si habrá alguna forma mejor de hacerlo, en caso de que así fuese se agradecería cualquier sugerencia, todo sea por aprender.

Muchas gracias pateketrueke, si no llegas a responder no hubiese insistido tanto y descubierto por qué no me funcionaba. Simplemente estaba haciendo las pruebas con un "plugin" de la mitad de la lista y el foreach me le machacaba de forma incorrecta con el último así que no obtenía el resultado esperado
  #4 (permalink)  
Antiguo 22/09/2010, 18:44
Avatar de eZakto  
Fecha de Ingreso: julio-2008
Mensajes: 214
Antigüedad: 15 años, 9 meses
Puntos: 5
Respuesta: Programación de "plugins" con PHP

Sólo añadirte como apunte:
En vez de utilizar:
Código PHP:
$nombre substr($nombre,8,-4); 
Creo que te será más práctico usar la función diseñada para hacer eso mismo:
Código PHP:
$nombre basename($nombre".php"); 
Saludos.
__________________
eZakto™
  #5 (permalink)  
Antiguo 23/09/2010, 07:27
 
Fecha de Ingreso: septiembre-2010
Mensajes: 3
Antigüedad: 13 años, 7 meses
Puntos: 0
Respuesta: Programación de "plugins" con PHP

Tienes razón, eZakto. Acabo de cambiarlo y funciona a la perfección :)

Etiquetas: Ninguno
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 05:31.