Codeigniter: для каких задачи используем

Codeigniter: для каких задачи используем

Коротко

  • 01
    Что за инструмент

    Codeigniter — фреймворк PHP

  • 02
    Где используем

    Крупный канадский контент-провайдер

  • 03
    Почему выбрали

    В 2013 году это был самый передовой фреймворк — он до сих пор выполняет свои задачи

    Большинство функций можно переопределить и расширить благодаря классам

    Консольные команды помогают работать с частями системы на других фреймворках

    Работает с .po/.mo форматами файлов для локализации системы

  • 04
    Результаты работы системы для бизнеса

    40 млн опубликованных роликов

    2 млрд показов рекламы в месяц

    Поддерживает 30 языков

    350 000 пользователей онлайн каждый день

350 000 пользователей онлайн каждый день

​​Наш клиент — крупнейший контент-провайдер в Канаде. Один из его проектов — сервис развлечений: более 40 млн опубликованных роликов и 350 тысяч пользователей онлайн каждый день.

Функционал сервиса:

  • Показ разного вида рекламы: попапов, роликов, баннеров.
  • Сбор разных статистических данных о взаимодействии пользователя с роликами: просмотры, где останавливались, где перематывали
  • Хранение данных
  • Предоставление отчетов

Сервис с помощью рекламного агентства зарабатывает на показах рекламы: на середину 2021 года у сервиса более 2 млрд показов рекламы в месяц.

Что дает использование Codeigniter

Для разработки сервиса мы выбрали популярный в 2013 году фреймворк — Codeigniter. На тот момент только он мог справиться с задачами проекта. В 2021 мы продолжаем поддерживать кодовую базу на Codeigniter, хотя и сузили область его применения: используем его для работы с пользовательскими панелями. Выводить фреймворк из работы совсем нет смысла, он справляется со своими задачами.

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

Код роутинга

Для создания достаточно задать соответствие beautiful-url' => ‘my_controller/my_method/params', тогда при запросе https://domain.tld/beautiful-url, будет вызван указанный путь.

Защищает от внезапного падения сервиса для пользователей. Прежде, чем запустить обновленную версию сервиса на компьютеры пользователей, разработчики тестируют ее в специальном окружении. Существует вероятность, что разработчик может ошибится и случайно запустить недоработанную версию сервиса в бой вместо теста — тогда, скорее всего, сервис для пользователей упадет и не будет работать.

В Codeigniter есть утилита phing: она формирует настройки системы в зависимости от окружения и исключает ошибку неправильного запуска. Например, можно создать несколько параметров окружений, где будут указаны адреса для подключения в БД, aerospike, redis. Выбором окружения можно быстро сформировать нужные файлы конфигурации на основе шаблона, вместо ручного прописывания всех данных.

Код запуска
Команда для создания баз данных вызывается из специального пакета «init» — действия, выполняемые на этапе инициализации системы. Название чисто символическое, для удобства.

Позволяет добавлять новый функционал и дорабатывать систему. При правильном использовании Codeigniter может конкурировать с более продвинутыми фреймворками — выполнять задачи бизнеса и не требовать больших затрат ресурсов.
Большинство функций можно переопределить или расширить, используя собственные классы:

Например, есть базовый класс CI_Input, который отвечает за данные, получаемые от пользователя — например, запросы на скачивание файлов. Был добавлен класс MY_Input от CI_Input с новыми правилами фильтрации и методами.

Вызов библиотеки
При вызове библиотеки Input, нам доступны все функции из стандартной библиотеки, а также новый функционал.

Здесь обрабатываются данные пользователя и выводятся ошибки. В переопределённом классе метод расширен и проверяет не только данные, но и метод представления данных.

Совместим с популярными базами данных. Codeigniter позволяет системе взаимодействовать с с MySQL базой данных, Aerospike, Redis, микросервисами. С помощью phinx можно накатывать и откатывать изменения для баз данных без использования SQL языка и получать отчет о миграциях.

Позволяет переводить сервис на разные языки. Сервисом пользуются в 30 странах — поэтому разработчики продумали возможность перевода контента на разные языки.

Код переводов
Так выглядит инициализация переводов. Переводы хранятся в .po/.mo файлах — PO хранит исходные тексты, MO — его бинарные данные. Для редактирования, обычно, используется программа Poedit.
код кэша
Переводы кэшируются. Так выглядит получение текста.

Результаты работы с Codeigniter: поддерживаем растущую систему более 8 лет

OrbitSoft начал работать над проектом в 2013 году, за это время нагрузка выросла в 10 раз. Система работает и развивается, мы продолжаем ее поддерживать и дорабатывать.

Бизнес зарабатывает на сервисе в разных странах. Сервис локализован на 30 языках: каждый день к ней обращаются более 350 000 пользователей из разных стран. Codeigniter помогает выводить переводы текста из хранилищ.

Сервис позволяет привлекать больше новых пользователей. Пользователи могут ранжировать ролики по своим предпочтениям — сервис умеет выводить контент с учетом персональных рекомендаций. Для работы с пользовательскими панелями использован фреймворк Codeigniter.

Технический блок

  • Codeigniter

Языки программирования:

  • PHP
  • JS

Библиотеки:

  • jQuery
  • Zend
  • NodeJS
  • Grunt

Базы данных:

  • MySQL
  • Aerospike
  • Redis

В чем бы вы ни нуждались, мы можем помочь!

Расскажите нам, с какими проблемами вы сталкиваетесь в своем бизнесе. Мы с нетерпением ждем вашего ответа.

Получите ответ по смс

Ваше сообщение успешно отправлено!
Представьтесь пожалуйста
Укажите номер, на который придет ответ
Нажимая на кнопку, вы даете согласие
на обработку персональных данных.