plug-in per mio sito...

Salve, sapete come fare un sistema che uno installa i plugin, e ne crea altri ....

ma installando nel sito che mi sto faccendo ...

non parlo di nessuno già pre-fatto,

ma vorei sapere come fare il sistema plug-in per il mio sito..

avevo pensato uno switch in questo modo:

<?php

switch ($i) {

case "init":

    echo "inalizzo lo script";

init();

    break;

case "config":

    echo "configurazione dello script";

config();

    break;

}

etc..

?>

Sapete come fare?.

grazie.

inviato 8 anni fa
luigi
X 0 X

preferisci un approccio procedurale o ad oggetti?

risposto 8 anni fa
Gianni Tomasicchio
X 0 X
preferisci un approccio procedurale o ad oggetti?

facciamo ad oggetti.

grazie.

risposto 8 anni fa
luigi
X 0 X

Supponiamo di voler realizzare un sistema che si occupi di esportare dei dati prelevat da un database. Il formato di export deve essere variabile, ad esempio HTML per la visualizzazione di questi dati in una pagina web, XML per l'invio attraverso attraverso web service, CSV per la generazione di un file di testo da far scaricare all'utente, XLS per generare un file Excel, PDF per la stampa, ecc.

Vogliamo realizzare le diverse modalità di export attraverso un sistema di plugin, in modo che in futuro potremo collegare nuovi plugin ed effettuare l'export in altri formati senza toccare il codice dell'applicativo.

Supponiamo che per effettuare questo export, in tutti i casi, sia sufficiente passare al plugin un array contenente i dati e poi recuperare da esso il prodotto finito, ovvero il contenuto del file nel particolare formato scelto.

Allora definiamo una interfaccia con un metodo "doExport" che ogni classe Plugin dovrà implementare:

<?php
interface iExport
{
    public function doExport($dati);
}
?>

una classe Plugin dovrà quindi essere fatta in questo modo

<?php
class HTMLPlugin implements iExport
{
    public function doExport($dati)
    {
        $export = "";
        foreach($dati as $name => $value) {
            $export .= '<p>$name => $value</p>';
        }
 
        return $export;
    }
}
?>

A questo punto non rimane che "registrare" il plugin in modo tale che l'applicativo sappia della sua esistenza. Un modo per farlo potrebbe essere quello di avere una tabella nel database che contiene l'elenco dei plugin "installati", ovvero presenti in una cartella del server. Per ciascuno di essi la tabella conterrebbe il nome della classe ed il percorso dello script PHP che la contiene. La selezione del plugin da utilizzare potrebbe essere eseguita dall'utente che sceglie tra quelli disponibili.

Individuato il plugin da utilizzare per l'export il sistema legge dal database il percorso dello script PHP relativo, in modo tale da poter fare un include() del file, e poi legge il nome della classe, in modo da poterne istanziare un oggetto, nel seguente modo:

<?php
// letto dal database
$class_name = "HTMLPlugin";

// letti dal database
$dati = array('uno' => 1, 'due' => 2);


$plugin = new $class_name;
$risultato = $plugin->doExport($dati);
echo $risultato;
?>

 :bye:

P.S.: ho scritto il codice seza provarlo quindi potrebbero esserci errori

risposto 8 anni fa
Gianni Tomasicchio
modificato 8 anni fa
X 0 X

ok, grazie mille...

ora me lo studio ed poi ti faccio sapere come e andata.

ciao e buona giornata.

risposto 8 anni fa
luigi
X 0 X

ho provato ad fare lo script con il tuo codice che mi hai scritto..

ma quando lo lancio stampa cosi:

$name => $value

$name => $value

che voul dire?.

risposto 8 anni fa
luigi
X 0 X

ho provato ad fare lo script con il tuo codice che mi hai scritto..

ma quando lo lancio stampa cosi:

$name => $value

$name => $value

che voul dire?.

che devi cambiare:

$export .= '<p>$name => $value</p>';

in

$export .= "<p>$name => $value</p>";

 :bye:

risposto 8 anni fa
Gianni Tomasicchio
X 0 X
Effettua l'accesso o registrati per rispondere a questa domanda