Создание мобильной версии для моего веб-приложения в CodeIgniter

Я использую CodeIgniter для разработки нового веб-приложения, и я бы хотел создать мобильную версию, на которую пользователи перенаправляются, когда они посещают ее со своих телефонов.

Мобильная версия приложения должна иметь разные потоки, поэтому замена CSS/HTML файлов в коде не является для меня вариантом, так как мобильная версия и веб-версия будут обрабатывать вещи по-разному в своих контроллерах и представлениях, те же модели.

Во всяком случае, как я мог бы сделать это эффективно?

Ваша помощь очень ценится.:)

Ответы

Ответ 1

Если вам действительно нужны 2 независимых приложения, вы можете настроить это с помощью одной или двух модификаций ядра codeigniter, в зависимости от того, используете ли вы PHP4 или 5.

Мы сделали это после страницы вики CI, и он отлично работает, мы делимся моделями, библиотеками, конфигурацией. В основном вы получили такую ​​организацию проекта:

/application/
   /common/<similar to application directory, but used for shared libs/helper/models/configs files>
   /frontend/<similar to application directory>
   /backend/<similar to application directory>
/system/

При переопределении загрузчиков вы можете реализовать приоритет загрузки, если тот же lib/config присутствует для обычных классов или приложений). Кроме того, вы можете перемещать весь общий код (контроллеры, определенный класс маршрутизации и т.д.) И сохранять только приложения в своих приложениях.

В итоге у вас есть два фронтальных контроллера (в основном идентичные файлу index.php) по одному для каждого приложения, и вы можете фильтровать посетителей с переписыванием URL, конкретным субдоменом и т.д.

Если вы настроите таргетинг на серверы с PHP4, я открыл этот поток на форумах codeigniter, чтобы узнать, что нужно изменить в основных классах, чтобы получить его (без изменений возникает проблема с загрузкой)

Другая жизнеспособная альтернатива, но я еще не использовал ее, использует организация HMVC

Ответ 2

Решение (a):

  • Проверьте глобальный контроллер, если пользователь использует мобильный или настольный клиент
  • Контроллеры нагрузки на основе клиентской версии (controller_default.php/controller_mobile.php)
  • Сделайте все содержимое, специфичное для клиента,
  • Виды могут храниться в разных папках

Примечание: (a) становится беспорядочным, если ваше приложение растет с течением времени.

Решение (b):

  • Измените index.php для загрузки различных папок приложений на основе используемого клиента.
  • Сохраните ваши модели /configs/libs в общей папке

Любая из перечисленных выше (обширная?) модификация структуры CI. Постарайтесь сделать как можно больше, перезаписав существующие классы (MY_Controller и т.д.), Чтобы иметь возможность обновлять их позднее.