Wie Sie Setup Codeigniter auf mehrere Projekte mit gemeinsamen ci Basis umgehen?
-
20-09-2019 - |
Frage
Ich habe mehr CI Implementierung Beispiele gesehen, die Sie beanspruchen können für Codeigniter Projektordner unter dem Ordner „Programme“ setzen.
Allerdings habe ich nicht in der Lage gewesen, diese Arbeit zu sehen, wie versprochen.
Hier ist, was ich getan habe und was ich tun möchte - vielleicht können Sie helfen. Aus Gründen der Argumentation meines Dokument Wurzel / www / (es ist nicht, aber sie nutzt es für die Einfachheit halben)
Ich habe den codeigniter Kern setzen in / www / corelib / codeigniter
Ich habe das codeigniter System setzt Ordner in / www / ci_system
Ich habe in / www / Anwendungen
das Anwendungsverzeichnis setzenIch habe meinen "Einstiegspunkt" in / www / dd
putLassen Sie uns jetzt sagen, ich habe zwei Projekte: „Dataentry“ und „cPanel“
Die Ideen sind, dass ich gehen
h ** p: // mydomain / tt / Dataentry // für die Dataentry-Anwendung und
h ** p:. // mydomain / tt / cPanel // für die cPanel Anwendung
Wenn ich die Dataentry und cpanel Verzeichnisse wie folgt organisieren:
/ www / Anwendungen / controllers / Dataentry
/ www / Anwendungen / controllers / cPanel
/ www / Anwendungen / models / Dataentry
/ www / Anwendungen / models / cPanel
/ www / Anwendungen / views / Dataentry
/ www / Anwendungen / views / cPanel
Ich kann dies zu funktionieren bekommen. Doch was würde Ich mag es, das Modell und die Ansicht auf dem gleichen Niveau wie der Controller halten tun, damit ich hätte folgende:
/ www / Anwendungen / Dataentry / Controller
/ www / Anwendungen / Dataentry / Modelle
/ www / Anwendungen / Dataentry / Ansichten
/ www / Anwendungen / cpanel / Controller
/ www / Anwendungen / cpanel / models
/ www / Anwendungen / cpanel / Ansichten
Dies scheint nicht zu arbeiten.
Irgendwelche Vorschläge?
-CF
Lösung 2
Ok - ich habe diese Arbeit bekam nach Wunsch. Ich werde versuchen, ein umfangreichere „How-to“ zu schreiben und einen Link in den Kommentaren zur Verfügung stellen.
musste ich nicht mehr ändern .htaccess als CI erfordert - ich war glücklich darüber. Mein Eintrag Verzeichnis wie folgt aussehen:
/dd/index.php
Die beiden wichtigsten Stücke sind hier:
list($blank, $webpath, $app) = explode('/', $_SERVER['REQUEST_URI']);
$application_folder = $_SERVER['DOCUMENT_ROOT]."/applications/$app";
Dies ermöglicht es einem einzigen index.php alle Anwendungen bedienen zu können.
Der Teil, dass ich fehlte, dass appName muss nun auch der primäre Controller oder ein Verzeichnis innerhalb des Controller sein. (Das eigentliche Problem, das ich hatte, war, dass ich so viel Hacking, dass ich Konfigurationen und Routen hatte mich zu verhindern, dass zu wissen, was ich tatsächlich nicht zu sehen. Manchmal beginnen sauber ist zwingend notwendig)
Andere Tipps
Hat jede Anwendung ( "Dataentry" und "cPanel") ihre eigene Hauptes index.php-Datei, die den entsprechenden $ application_folder Variable definiert?
Auch - und ich bin sicher, haben Sie die Dokumentation lesen - aber CodeIgniter Dokumentation besagt, dass das Verzeichnis / applications (oder Verzeichnisse, in Ihrem Fall) sollte unter dem / Systemverzeichnis existieren wie folgt:
system/application/foo/
system/application/foo/config/
system/application/foo/controllers/
system/application/foo/errors/
system/application/foo/libraries/
system/application/foo/models/
system/application/foo/views/
system/application/bar/
system/application/bar/config/
system/application/bar/controllers/
system/application/bar/errors/
system/application/bar/libraries/
system/application/bar/models/
system/application/bar/views/