Comment configurer-vous Codeigniter à gérer plusieurs projets avec la base de ci partagée?

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

  •  20-09-2019
  •  | 
  •  

Question

Je l'ai vu plusieurs exemples de mise en œuvre de CI qui prétendent que vous pouvez mettre des dossiers de projet dans le dossier « Applications » pour CodeIgniter.

Cependant, je ne l'ai pas été en mesure de voir ce travail comme promis.

Voici ce que je l'ai fait et ce que je voudrais faire - vous pouvez peut-être aider. Par souci d'argument ma racine du document est / www / (Ce n'est pas, mais nous allons l'utiliser pour pour des raisons de simplicité)

J'ai mis le noyau de CodeIgniter dans / www / corelib / CodeIgniter

J'ai mis le dossier système de CodeIgniter dans / www / ci_system

J'ai mis le répertoire des applications dans / www / applications

Je l'ai mis mon "point d'entrée" dans / www / dd

Maintenant que j'ai deux projets: "DataEntry" et "cPanel"

Les idées est que je peux aller à

h ** p: // mondomaine / dd / dataentry // pour l'application dataentry et

h ** p: // mondomaine / dd / cPanel // pour l'application cPanel

.

Si j'organise les répertoires DataEntry et cPanel comme ceci:

/ www / applications / régulateurs / dataentry

/ www / applications / régulateurs / cpanel

/ www / applications / modèles / dataentry

/ www / applications / modèles / cPanel

/ www / applications / vues / dataentry

/ www / applications / vues / cPanel

Je peux obtenir que cela fonctionne très bien. Cependant, ce que je voudrais faire est de garder au même niveau que le contrôleur du modèle et la vue afin que j'avoir:

/ www / Applications / DataEntry / contrôleurs

/ www / applications / DataEntry / modèles

/ www / applications / DataEntry / vues

/ www / Applications / cpanel / contrôleurs

/ www / applications / cPanel / modèles

/ www / applications / cPanel / vues

Cela ne semble pas fonctionner.

Toutes les suggestions?

-CF

Était-ce utile?

La solution 2

Bon - j'ai ce travail comme vous le souhaitez. Je vais essayer d'écrire une plus grande « comment faire » et fournira un lien dans la section des commentaires.

Je ne devais pas modifier .htaccess plus que CI exige - j'étais heureux. Mon regard répertoire d'entrée comme ceci:

/dd/index.php

Les deux éléments clés sont ici:

list($blank, $webpath, $app) = explode('/', $_SERVER['REQUEST_URI']);
        $application_folder = $_SERVER['DOCUMENT_ROOT]."/applications/$app";

Cela permet à un seul index.php gérer toutes les applications.

La partie que je manque que appName doit maintenant être le contrôleur principal ou un répertoire dans les contrôleurs. (Le vrai problème que j'avais été que je Hacking tellement que j'avais des configurations et des itinéraires me empêchent de réaliser ce que je voyais réellement. Parfois, il est impératif de commencer propre)

Autres conseils

Est-ce que chaque application ( "dataentry" et "cPanel") ont leur propre fichier principal index.php qui définit la variable appropriée de application_folder de $?

En outre - et je suis sûr que vous avez lu la documentation - mais documentation de CodeIgniter indique que le répertoire (ou des répertoires, dans votre cas) devraient exister dans le répertoire / système / applications comme suit:

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/
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top