Интеграция/Миграция двух приложений CodeIgniter.
У меня есть два приложения, разработанные в CodeIgniter, оба работают на отдельном сервере, т.е.
www.CI_App_1.com
и
www.CI_App_2.com
Теперь я хочу интегрировать CI_App_2
в приложение CI_App_1
, после чего я могу вызвать default_controller
из CI_App_2
из одной из ссылок из CI_App_1
.
Моя структура папок:
htdocs :
-application_1
-application
-application_2
-application
-config
-autoload.php
-config.php
-routes.php
-controllers
-app_2_controller.php
-helpers
-libraries
-models
-app_2_model.php
-views
-app_2_view.php
-system
-.htaccess
-index.php
-config
-autoload.php
-config.php
-routes.php
-controllers
-app_1_controller.php
-helpers
-libraries
-models
-app_1_model.php
-views
-app_1_view.php
-system
-.htaccess
-index.php
Я хочу получить доступ к CI_App_2 после входа пользователя из CI_App_1
. После процесса аутентификации пользователь может получить доступ только к моему CI_App_2
. Если пользователь попытается получить к нему доступ без аутентификации, получите сообщение об ошибке:
Доступ запрещен
Я ссылался на следующие ссылки:
Метод управления вызовом CodeIgniter вне каталога приложения
CodeIgniter: контроллер загрузки в контроллере
Как загрузить контроллер с другого контроллера в codeigniter?
Codeigniter: вызов метода одного контроллера из другого
http://www.techsirius.com/2013/01/load-controller-within-another.html
https://www.quora.com/Can-I-call-a-controller-function-that-resides-in-another-controller-in-CodeIgniter
http://www.devnetwork.net/viewtopic.php?f=72&t=131353
как настроить два приложения для кодирования на одном сервере
https://www.codeigniter.com/user_guide/general/managing_apps.html
Но в приведенных выше ссылках они сказали, что это должно быть сделано с использованием структуры модуля HMVC, но никто не упоминает, что оба файла контроллера являются одним и тем же приложением или разными. Я хочу получить доступ к default_controller
из второго приложения в первое приложение.
Возможно ли это?
Приветствуется всякая помощь. Заранее спасибо. Надеюсь, у вас есть мой вопрос.
Ответы
Ответ 1
Следующим набором функций на application_1 default_controller может быть его работа.
public function _remap($method) {
$userdata = $this->session->userdata('user');
if (!empty($userdata)) {
modules::run('application_2/controller/default_controller');
}
}
Ответ 2
Хорошо, Лучше всего, чтобы вместо их слияния. вам нужно сдвинуть
app2/controllers => app1/controllers/app2
app2/views => app1/views/app2
Таким образом, вы можете получить доступ к app2 внутри приложения1 с некоторым добавлением маршрутов.
Я должен порекомендовать не перекладывать весь код приложения2 в app1, как есть.
Это не будет хорошо.