2012-06-26 2 views
0

Я использую CodeIgniter 2.1.1 и создаю веб-сайт с использованием двух сред - производства и тестирования. По сути, в начале обе среды имеют одну и ту же программную логику. Но теперь есть несколько изменений.Как поделиться контроллером и моделью между двумя приложениями в CI?

Идея состоит в том, чтобы совместно использовать контроллеры и модели производственной среды и тестовой среды, но иметь разные виды для среды.

Я создал WAMP и в каталоге WWW есть две отдельные папки: одна для тестирования, другая для производства. В каждой папке есть контроллеры, модели, представления и т. Д. CI указывается соответствующим образом, а базовые URL-адреса установлены.

Мой вопрос даже, когда я набираю URL-адрес в веб-браузере для вызова контроллера тестовой среды, он должен перенаправлять и вызывать контроллер рабочей среды. Это возможно ?

+0

Я удаляю тег 'mvc'. Он не имеет ничего общего с MVC как шаблон, только с конкретным материалом CodeIgniter. Тем не менее, вы описали своеобразное смущение. Обычно среды тестирования, промежуточной обработки, разработки и производства разделены развертываниями ** той же ** кодовой базы в разных местах (например, на другом сервере или поддомене). Возможно, с другой конфигурацией. Это не копирующая часть кода в той же кодовой базе. Что именно ты пытаешься сделать ? –

ответ

1

Не перенаправляйте его. Включите этот файл.

Если у вас есть эта структура файла:

www-root 
|-production 
| |-application 
| | |-controllers 
| | |-etc. 
| |-etc. 
| 
|-test 
| |-application 
| | |-controllers 
| | |-etc. 
| |-etc. 
| 

Создать файлы с точно таким же именем в обеих средах. Мы скажем controller.php для нашего примера. В производственной среде сделайте свое кодирование. В тестовой среде укажите эту строку и только следующую строку:

<?php include '../../../production/application/controllers/controller.php'; 

Это должно вытащить файл из вашей производственной среды в тестовую среду. Просто убедитесь, что ваше жесткое кодирование любых ссылок делает их относительными, а не абсолютными. Таким образом, когда вы попадаете в тестовую среду, она будет ссылаться на ваши тестовые активы, а не на ваши производственные.

Это не проверено, поскольку у меня нет доступа к моей установке CI прямо сейчас. Позвольте мне знать, как это получается.

0

Я бы предположил, что вы в конечном итоге настроили некоторый тип контроля версий, например Git. Вы можете отредактировать среду тестирования и вытеснить изменения в процессе производства.

Чтобы ответить на ваш вопрос, вы можете поделиться моделями и контроллерами между двумя различными приложениями, установив символическую ссылку. Я сделал это в Linux, но в Windows это должно быть одинаково. Итак, скажите, что вы хотите, чтобы фактические файлы находились в тестовом приложении. Поместите все php-файлы в каталог контроллера и модели тестового приложения. Вместо создания контроллеров и моделей в производственном приложении просто создайте символические ссылки в соответствующие каталоги тестового приложения.

Смежные вопросы