2012-04-13 4 views
2

Ich möchte ein zentrales CI-Setup für mehrere Standorte verwenden. Die Art, wie ich damit umgehe, ist, dass ich ein Paket namens MPACK erstellt habe und es autoload in der Konfigurationsdatei jeder Seite hinzugefügt habe.CodeIgniter - native Bibliothek in Multi-Site-Setup erweitern

Ordnerstruktur:

/main

/System (CI 2 Systemordner)

/MPACK

/site1

/Anwendung

site2

/Anwendung

Innerhalb dieser MPACK ich Aktie Bibliotheken, Modelle, Helfer usw.

Aber ich möchte eine erweiterte MY_Form_Validation haben, die für gewöhnlich verwendet wird Alle Standorte. Das Hinzufügen der Klassendatei zu/MPACK/libraries schlägt fehl. Das Hinzufügen zu/site1/application funktioniert wie erwartet.

Gibt es eine Möglichkeit, dies innerhalb von MPACK zu erweitern?

Vielen Dank für Ihre Zeit.

+0

Sie sollten nur die Kopien der Kernklassen behalten, die Sie in Ihre Anwendung aufnehmen möchten, und für jedes Projekt einen eigenen Ordner haben. Wäre es nicht einfacher, so zu arbeiten, wie ich es beschrieben habe? –

+0

Ich denke, es wäre schwieriger zu verwalten, denn sobald ich eine Änderung/Bugfix mache, müsste ich es auf alle Seiten replizieren. Wenn ich zum Beispiel eine Suchmaschine erstellen würde, hätte ich die Suchklasse im MPACK und erweitere sie einfach in jeder Anwendung basierend auf unterschiedlichen Bedürfnissen. – mitai

Antwort

0

Bitte versuchen Sie dies:

// Placed your MY_Form_validation.php under MPACK/libraries 
$this->load->add_package_path('/path/to/MPACK'); 
$this->load->library('form_validation'); 

Sie können aus CodeIgniter User Guide - Loader Class weitere Informationen erhalten. :)

können Sie AutoLoad- auch Ihr Paket in /application/config/autoload.php: $autoload['packages'] = array('/path/to/MPACK');

EDIT: herausstellen, dass die oben genannte Lösung funktioniert nicht, weil Loader immer für & APPPATH aussehen BASEPATH zuerst, und ich bin nicht sicher modifizierende Diese Kernklasse wird nichts kaputt machen.Hier ist eine andere Lösung in der Theorie:

sollten Sie haben Ihre MPACK Formularvalidierung lib und Sites' Formularvalidierung lib sollte Symlinks zu den MPACK ein:

/site1/application/MY_Form_validation.php -> /MPACK/libraries/MY_Form_validation.php 

Wenn Sie nur alles von MPACK verwenden, nichts speziell für/site1 oder/site2, nur einen Ordner Link machen:

/site1/application/libraries/ -> /MPACK/application/libraries/ 

Hope this help =)

mehr erfahren Sie hier lesen: http://codeigniter.com/wiki/Multiple_Applications_via_Symlinks/

+0

Hallo Rocco, das geht nicht. Es lädt nur die Standardklasse form_validation. Anscheinend überprüft Code Igniter nicht die Pakete für MY_-Klassen. – mitai

+0

@ user962411 Ich habe gerade die Antwort aktualisiert. Probieren Sie es =) – Rocco

+0

Das klingt nach einer großartigen Lösung. Wird das Laden verlangsamen, wenn die Site Hunderte/Tausende von Treffern pro Sekunde bekommt? – mitai

Verwandte Themen