Kann ich das codeigniter Core-System erweitern, meine benutzerdefinierten Funktionen auf mehreren Seiten zu benutzen?

StackOverflow https://stackoverflow.com/questions/4189738

Frage

Ich bin derzeit CodeIgniter eine Seite zu unterstützen, deren Hauptzweck ist es, mehrere editierbare tablekit Tabellen und behandeln die AJAX anzuzeigen, die ankommt, wenn Sie sie bearbeiten. Eine Art von phpMyAdmin [sehr] Lite. Es hat eine Reihe von Kern Helfern und Controller, die die wichtigsten Funktionen der Website laufen, gemischt mit einigen ortsspezifische Steuerungen und Helfern.

würde ich meine Website neu zu strukturieren möge, damit ich die Kern-Code-Basis in einem anderen Standort wiederverwenden kann. Allerdings würde ich noch einige Standard-Controller-Funktionen und einige cutsom Funktionen in demselben Controller sein möchte haben; das heißt in einer Systemdatei irgendwo:

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

und auf einer Website:

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

Dann auf der anderen Seite:

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

hat jemand eine Anleitung, wie kann ich dies tun?

Danke,

Lemiant

War es hilfreich?

Lösung

Wenn Sie mit CodeIgniter 2.0 Sie die meisten dieser mit mit Paketen erreichen können. Sie lassen Sie Helfer laden, Bibliotheken und Modelle von überall, so dass in jeder Anwendung einfach ein Paket konfigurieren, um aus diesem freigegebenen Ordner geladen werden.

Wie Kernbibliotheken (die MY_Controller wird) Sie müssen Ihre eigene __autoload () Funktion implementieren:

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

Sie können einen Autoloader an der Unterseite des config.php setzen. Solange es die richtigen Ordner (lokal zuerst, dann die freigegebene Ordner-Struktur) es sollte alles funktionieren ziemlich gut ist, zu überprüfen.

Andere Tipps

Ich weiß nicht, ob dies für Sie noch nützlich ist, aber here, was ich getan habe.

sagen, ich habe 2 Websites, palladium.com und osmium.com.

meine Dateibaum sieht wie folgt aus

/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

innerhalb dieser index.php Dateien sind Linien, die in dem / System definieren / gespeichert. Ich habe das auf

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

Jetzt in / var / www / system / Bibliotheken Ich habe eine Datei mit dem Namen MY_TestClass

<?php

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

Von einer beliebigen Stelle im BEIDE palladium.com und osmium.com kann ich anrufen

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

und "das ist ein Test des Notfall-Broadcast-System" wird angezeigt.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top