2017-12-30 17 views
0

Ich google seit einer Weile, aber ich kann nicht scheinen, eine Lösung für mein Problem zu finden. Ich habe eine Codeigniter-Instanz mit 2 Anwendungen (Back- und Frontend).CodeIgniter 3 Share-Core-Modell zwischen Anwendungspakete

ich meine Bewerbungsmappe wie folgt aufgebaut So haben:

  • Webroot/Anwendung
    • Frontend
    • Backend

i Jetzt Ähnlichkeiten zwischen den haben 2 Anwendungen, wie Modelle und so. Also habe ich einen „gemeinsamen“ -Paket, wie diese (fand ich diese Art und Weise es irgendwo auf dem Internet zu tun, kann ich nicht erinnern, wo genau):

  • Webroot/Anwendung
    • Frontend (Standard codeigniter Struktur)
    • Backend (Standard codeigniter Struktur)
    • Gemeinsam
      • config/
      • helpe rs/
      • Sprache/
      • Bibliotheken/
      • models/

Es wird automatisch geladen richtig, und ich kann Modelle und solche zwischen dem Rücken und Frontend teilen. Aber jetzt möchte ich ein MY_Model vorstellen, das Sie in das Verzeichnis core innerhalb Ihres Anwendungsordners stellen müssen (wie es in der Dokumentation heißt). Natürlich möchte ich das Modell über die 3 Anwendungspakete teilen. (Ich möchte Modelle in Front- und Back-End, um es zu erweitern, aber auch Modelle im gemeinsamen Paket).

Hier bleibe ich stecken. Ich habe versucht, eine core Ordner in der common Anwendungspaket, aber dann kann ich nicht sogar mit einem Modell in der common Paket erweitern.

Class 'MY_Model' not found in /webroot/application/common/models/News_model.php on line 11 

Ich kann nicht scheinen, es in jedem anderen Paket entweder zu verlängern.

Class 'MY_Model' not found in /webroot/application/backend/models/Ad_model.php 

Ich mag nicht die MY_model Klasse 3 mal replizieren und bearbeiten 3 verschiedenen Dateien jedes Mal, wenn ich einige neue Funktionen hinzuzufügen.

Gibt es eine Möglichkeit, dies zu lösen? Ich kann es nicht herausfinden.

Danke!

Antwort

0

Sie können das Kernverzeichnis nach außen verschieben und es in jede Struktur zurückverweisen.

$ ln -s {common/core} {frontend/core} 
$ ln -s {common/core} {backend/core} 
+0

Symlinking ist keine Option.Sein Shared Hosting und ich habe keine Shell-Zugriff auf den Server. Gut zu denken, aber danke :) – Clemenz

+0

Wenn es nur diese eine Datei ist; Du könntest einfach eine Datei an jeden Ort legen und die Datei draußen einfügen. – Phright

+0

Sie meinen, manuell eine 'require_once'? Aber wenn ich Änderungen an der Datei mache, möchte ich mich nicht daran erinnern müssen, dass ich das andere bearbeiten muss. Außerdem möchte ich Doppelarbeit reduzieren oder gar nicht einführen. – Clemenz