Domanda

Attualmente sto usando CodeIgniter per sostenere un sito, il cui scopo principale è quello di visualizzare più tabelle tablekit modificabili, e gestire l'AJAX che arriva quando li si modifica. Una sorta di PHPMyAdmin [molto] Lite. Ha un certo numero di aiutanti di base e controller, che corrono i principali funzionamento del sito, mescolato con alcuni controller e aiutanti sito specifico.

Vorrei ristrutturare il mio sito in modo che posso riutilizzare il nucleo base di codice in un altro sito. Tuttavia, vorrei ancora essere avere alcune funzioni di regolazione di default e alcune funzioni cutsom nello stesso controllore; vale a dire in un sistema di file da qualche parte:

class My_core extends Controller{
    /*
      Lots of base functions
    */
}

e su un sito:

class site_1 extends My_Core{
    /*
       Site specific functions
    */
}

Poi sull'altro sito:

class site_2 extends My_Core{
    /*
       Site specific functions
    */
}

Qualcuno ha qualche consiglio su come posso fare questo?

Grazie,

Lemiant

È stato utile?

Soluzione

Se si sta utilizzando CodeIgniter 2.0 è possibile ottenere la maggior parte di questo con con i pacchetti. Essi vi permetterà di caricare aiutanti, librerie e modelli da nessuna parte, quindi in ciascuna applicazione semplicemente configurare un pacchetto da caricare dalla cartella condivisa.

Per quanto riguarda librerie di base (che mio_controllore sarà) si dovrà implementare la propria __autoload () la funzione:

http://php.net/manual/en/language.oop5. autoload.php

Si può mettere un autoloader in fondo config.php. Finché si sta controllando le cartelle corrette (locale in primo luogo, quindi la struttura delle cartelle condivise) si deve lavorare tutti abbastanza bene.

Altri suggerimenti

Non so se questo è ancora utile a voi, ma heres quello che ho fatto.

dire che ho 2 siti web, palladium.com e osmium.com.

Il mio file di alberi assomiglia a questo

/var/www/system/ (the CI system folder)

/var/www/palladium/application
/var/www/palladium/public/index.php

/var/www/osmium/application
/var/www/osmium/public/index.php

dentro quei file index.php sono linee che definiscono dove / Sistema / è memorizzato. Ho ottenuto che insieme a

$system_folder = "../../system";

Ora dentro / var / www / sistema / librerie Ho un file chiamato MY_TestClass

<?php

class MY_TestClass {
    public function MY_TestClass() {
        echo "this is a test of the emergency broadcast system";
    }
}

Da qualsiasi punto all'interno di entrambi palladium.com e osmium.com posso chiamare

$this->load->library('MY_TestClass');

e "questa è una prova del sistema di trasmissione di emergenza" apparirà.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top