Проекты

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

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

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

Перезвонить вам, чтобы ответить на вопросы?

Когда с вами связаться?

Связаться по телефону:+7 499 321-59-32

Нажимая на кнопку, я принимаю условия политики и пользовательского соглашения

Фото эксперта
Дмитрий

Проектный менеджер

Получите ответ на ваш вопрос в любимом мессенджере

Выберите удобный мессенджер и начните диалог прямо сейчас

Telegram WhatsApp

Рассчитать стоимость проекта

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

Напишите ваше имя
Укажите ваш email

Выберите удобный для вас способ связи

Мы сразу получим ваш запрос и поможем в решении проблемы

Написать в Telegram

Написать в WhatsApp

Позвонить нам