Как стать автором
Обновить
0

CodeIgniter *

MVC-фреймворк с открытым исходным кодом

Сначала показывать
Порог рейтинга
Уровень сложности

Популяризация JSON-RPC (часть 2)

Время на прочтение 7 мин
Количество просмотров 2.7K
Разработка веб-сайтов *PHP *JavaScript *CodeIgniter *API *

Продолжим строить подобие JSON-RPC сервера, начатого в части 1 и анализировать его плюсы и минусы. В прошлой статье был описан механизм отделения бизнес логики бэкенда от транспортного протокола (HTTP) через шаблон проектирования "Front Controller", роль которого исполняет в нашем случае JsonRpcController.

Бэкенд API до передачи запроса в код, отвечающий за бизнес логику, обычно предоставляет частичный функционал API шлюза (API gateway) - он может делать аутентификацию, авторизацию, роутинг, валидацию данных, логгирование, кэширование, обеспечивать меры безопасности и другое.

Читать далее
Всего голосов 6: ↑6 и ↓0 +6
Комментарии 3

Новости

Популяризация JSON-RPC (часть 1)

Время на прочтение 8 мин
Количество просмотров 7.1K
Разработка веб-сайтов *PHP *JavaScript *CodeIgniter *API *

Для передачи данных по сети есть хорошо зарекомендовавшие себя стандарты - например, SOAP, gRPC, AMQP, REST, GraphQL.

При создании вебсайтов малой, средней и большой сложности с потоками данных к бэкенду и обратно в JSON формате обычно используются последние два с их вариантами. Верней, только варианты, потому что REST и GraphQL - ресурсо-ориентированные стандарты. Это как бы просто перенос элементарной работы с базой данных на клиента (хотя под "ресурсом" может пониматься и абстракция). Обычно таких запросов не больше трети от всего бэкенд API.

Попытка сделать весь API максимально RESTful страшно раздувает код и грузит сеть. Потому что остальные две трети запросов - в форме команд на бэкенд проделать какие-то действия, слабо отображающиеся на CRUD над некими ресурсами. И вариантов послать такие запросы достаточно много. Даже, чересчур.

Читать далее
Всего голосов 19: ↑12 и ↓7 +5
Комментарии 34

CodeIgniter 4: Подготовка к PHPUnit. Устанавливаем Xdebug в XAMPP (Windows 32-разрядная (x86))

Время на прочтение 3 мин
Количество просмотров 2.5K
PHP *CodeIgniter *
Туториал


Благодарю за отклики


Получив разноплановые отклики в виде комментариев и «кармы» на свою первую статью на Хабре «Фреймворк на PHP: CodeIgniter 4. «Лёгкий пример» использования Database Migrations (миграций) и Seeding (посев)», особенно хочется отметить тех членов сообщества, которые разделили точку зрения автора и в своих комментариях нашли нужные слова, чтобы поддержать автора в его намерении поделиться впечатлениями, что CodeIgniter 4 — это актуально.

Читать дальше →
Всего голосов 10: ↑2 и ↓8 -6
Комментарии 30

Фреймворк на PHP: CodeIgniter 4. «Лёгкий пример» использования Database Migrations (миграций) и Seeding (посев)

Время на прочтение 2 мин
Количество просмотров 5.8K
PHP *MySQL *CodeIgniter *GitHub *
Из песочницы

Познакомиться с PHP фреймворком CodeIgniter 4 достаточно просто.

Нужно потратить вечер, выполняя инструкции из раздела  «Build Your First Application» («Создайте свое первое приложение»). Поскольку документация написана хорошим, технически понятным языком, то в процессе ознакомления с этим и другими разделами возможно получить даже некоторое эстетическое удовольствие.

Читать далее
Всего голосов 8: ↑2 и ↓6 -4
Комментарии 24

Истории

Регистрация и авторизация пользователя на сайте — одним кликом — через кастомную кнопку Facebook. 2017

Время на прочтение 4 мин
Количество просмотров 40K
PHP *jQuery *CodeIgniter *Facebook API *
Из песочницы
Итак, начал я разрабатывать один проект по фану. Основная идея проекта проста: площадка, где все могут ставить на всё что угодно, заключать пари, сделки и БЕЗ каких либо ограничений. Развлекательный проект по сути своей.

Ну и конечно стал вопрос Удобной авторизации пользователей с наименьшим «трением». Подумав немного, я выбрал авторизацию через Facebook, но думаю, на этом я не остановлюсь и вы прочтете ещё несколько статей, с авторизацией через Google Acc, VK и Tweet.

image
Итак к делу! В интернете я нашел несколько тем, которые описывают вопрос авторизации, некоторая информация мне помогла, но я не нашел ни одной, которая бы решила поставленную мной задачу, поэтому, завершив задачу я и решил написать эту статью.
Читать дальше →
Всего голосов 27: ↑15 и ↓12 +3
Комментарии 4

Пара полезностей для CodeIgniter

Время на прочтение 4 мин
Количество просмотров 17K
PHP *CodeIgniter *
Из песочницы
В 2012 году я даже не догадывался о слово сочетании ООП, но четко понимал, написание сайтов и в недалеком будущем web-приложений, потребует уже заранее подготовленных решений, так как количество задач росло, а времени на их реализацию было недостаточно. Выбор мой пал на CodeIgniter ведь его документация меня пожалела, откинув сложные для не окрепшего новичка слова. Признаться, я до сих пор не встречал настолько же удобную и понятную документацию. С тех пор прошло сравнительно немного времени. Но я решил поделиться не многочисленными накопленными знаниями с пользователями Хабра.

На данный момент я использую CodeIgniter v2.2.0.

image
Читать дальше →
Всего голосов 17: ↑8 и ↓9 -1
Комментарии 8

Как я Google API с CodeIgniter A3M подружить пытался и что из этого вышло

Время на прочтение 5 мин
Количество просмотров 6.3K
PHP *CodeIgniter *
Из песочницы


Недавно возникла задача прикрутить к библиотеке A3M (это довольно популярная библиотека аутентификации для CodeIgniter) поддержку аутентификации OAuth2 через Google. Все началось с того, что пару месяцев назад ко мне обратился товарищ. У него есть сайт, написанный кем-то в незапамятные времена на CodeIgniter. Естественно, этот кто-то уже исчез в неизвестном направлении.

Сайт вполне рабочий и проблем особо не делает, поэтому товарищ особо не парился и даже не думал про апдейты или (упаси боже) миграцию куда либо.

В один прекрасный день он обнаружил что при логине через Google прилетает такое вот сообщение:

OpenID 2.0 for Google Accounts is Going Away. OpenID 2.0 is no longer supported. If your app uses OpenID 2.0, you must migrate your app by the shutdown date April 20, 2015, as shown in the migration timetable.

Хотя мой товарищ ни разу не программист, почуял неладное и обратился ко мне в надежде, что я смогу это дело поправить.
У него довольно большая база юзеров на сайте, которые логинились через Google, и если до 20-го апреля это дело не пофиксить, многие юзеры внезапно не смогут попасть на сайт.

«Не проблема, пофиксим», — сказал я и полез в гугловский мануал по миграции.
Читать дальше →
Всего голосов 17: ↑11 и ↓6 +5
Комментарии 0

Релиз CodeIgniter 3.0.0

Время на прочтение 1 мин
Количество просмотров 18K
Разработка веб-сайтов *PHP *CodeIgniter *
image

Пару дней как, а именно 30 марта вышел релиз CodeIgniter 3.0.0. Скачать можно на странице проекта.

Основные изменения в сравнении с версией CodeIgniter 2:
  • Фреймворк выпущен под лицензией MIT
  • Обширный рефакторинг драйвера баз данных
  • Полная поддержка PDO
  • Новая библиотека для работы с сессиями
  • Новая библиотека шифрования
  • Доработано модульное тестирование, улучшилось покрытие кода
  • Рекомендуется PHP 5.4 или новее, но CI-прежнему будет работать на PHP 5.2.4

Полный список изменений.
Всего голосов 25: ↑19 и ↓6 +13
Комментарии 15

Интеграция phpBB в сайт (Codeigniter). Сквозная авторизация

Время на прочтение 7 мин
Количество просмотров 5.9K
PHP *CodeIgniter *
Из песочницы
imageНесколько недель назад по некой нужде было необходимо добавить форум в только что написанный сайт. Сайт на этапе завершения, пользователей раз-два и обчелся. Сайт был написан на Codeigniter. В качестве форума был выбран phpBB, как один из распространенных free форум версии 3.1.1. После несложных манипуляций форум без проблем был установлен. Стало интереснее, когда дело дошло до пользователей.
Читать дальше →
Всего голосов 14: ↑4 и ↓10 -6
Комментарии 5

Наш любимый CodeIgniter обрёл новый дом

Время на прочтение 3 мин
Количество просмотров 15K
Блог компании ua-hosting.company PHP *CodeIgniter *
Перевод


Когда мы объявили, что ищем новый дом для CodeIgniter, нас практически смыло волной электронных писем от потенциальных кандидатов (кстати, письма до сих пор продолжают поступать). Перед нами возник на первый взгляд простой вопрос: кому мы можем доверить поддержку фреймворка? Но найти верный ответ оказалось сложнее — нам нельзя было ошибиться.

Мы быстро отбросили тех, у кого не было опыта, отклонили заявки тех, у кого не было достаточных средств или времени на поддержку столь крупного проекта. Мы также отказали тем, с кем не сошлись в видении будущего фреймворка. И всё равно осталось много хороших кандидатов с достаточными силами, возможностями и с хорошими идеями. Но один кандидат всё же выделялся на фоне остальных.
Читать дальше →
Всего голосов 37: ↑31 и ↓6 +25
Комментарии 13

Делаем авторизацию на Codeigniter 2.0 при помощи ajax и HMVC

Время на прочтение 5 мин
Количество просмотров 19K
Ajax *CodeIgniter *
Из песочницы
Добрый день, уважаемые Хабрачитатели.

Не так давно передо мной встала задача реализовать виджет авторизации на сайте. Идея не новая, я бы даже сказал банальная, но то ли я плохо гуглил, то ли решение на столько очевидное, что нет смысла об этом писать. В любом случае, хотя бы у новичков это может вызвать проблемы, именно поэтому я решил написать данную статью.

Итак, для начала, чтобы понять, каким образом это все реализовано, нужно познакомится (для тех, кто не знаком) с расширением HMVC для Codeigniter. Сделать это можно тут.

Я попытаюсь сделать все очень наглядно, поэтому начну с файловой структуры проекта:

image
Читать дальше →
Всего голосов 16: ↑6 и ↓10 -4
Комментарии 6

CodeIgniter 3.0 — будет!

Время на прочтение 2 мин
Количество просмотров 20K
Разработка веб-сайтов *PHP *CodeIgniter *
Recovery mode


В последние годы популярность данного, некогда лидирующего PHP фреймворка, сошла на нет, что видно и по трендам использования различных PHP фреймворков, и по отзывам разработчиков. Многие из них поставили крест на CI после выхода новости годичной давности о поиске новых владельцев и мейнтейнеров для CodeIgniter, т.к. EllisLab перестало поддерживать его и перекинуло все силы на свою платную CMS ExpressionEngine. Остальные продолжали сетовать на то, что версия 2 вышла аж 28 января 2011 года (больше 3 лет назад!) и с тех пор кардинально не обновлялась.
Читать дальше →
Всего голосов 35: ↑29 и ↓6 +23
Комментарии 37

CodeIgniter стал прекрасней, благодаря Bonfire

Время на прочтение 3 мин
Количество просмотров 14K
Разработка веб-сайтов *CodeIgniter *
Из песочницы

О чем это я...


Да, действительно, все наверное уже забыли (а кто-то может и не вспоминал), что такое CodeIgniter и давно его не рассматривают как полноценный фреймворк. Все довольно таки в нём просто: контроллеры, модели, отображения — и в каждом элементе MVC почти «чистый PHP». Никаких тебе миграций, модулей, окружений и прочих прелестей для удобной работы.

Сам я молодой программист, всего лишь год программирую на php, и из этого времени довольно таки много работал с этим фреймворком. Но на самом деле он очень хорош для общего представления об архитектуре MVC и для новичков, по-моему, просто не заменим. Смею сказать, что работаю также на YII и Symfony, и на самом деле с них было бы мне, например, нереально начать бороздить возможности PHP-фреймворков.

Изучая все больше и больше php и технологии, в которых удобно разрабатывать веб-приложения, я все дальше и дальше (да-да, всего лишь год «службы») отходил от CI и восхищался красотой и эргономичным использованием Symfony. Но вот тут совсем недавно натолкнулся на Bonfire — мощное дополнение к CodeIgniter.
Читать дальше →
Всего голосов 17: ↑10 и ↓7 +3
Комментарии 16

Ajax загрузка файлов средствами jQuery и CodeIgniter

Время на прочтение 3 мин
Количество просмотров 51K
PHP *JavaScript *CodeIgniter *
Из песочницы
Добрый день!

Долгое время на просторах интернета я искал информацию о реализации AJAX загрузки файлов для CodeIgniter. Разные разработчики предлагали разные технологии и примеры реализации. Я перепробовал их все, но ни одна из них не была достаточно проста и функциональна одновременно. Лишь недавно я открыл для себя jQuery File Uploader. «Он ничем не отличается от остальных» — скажите вы, но это не так. Его главное отличие — это простота и хорошая документация с примерами. В документации разобраны все callback'и, описаны все options. Внедрение в любую систему не занимает много времени.

Сегодня я покажу как можно очень просто организовать multipart загрузку файлов на сервер + drug&drop; в CodeIgniter.
Читать дальше →
Всего голосов 16: ↑8 и ↓8 0
Комментарии 5

Как я делал мультиязычность на Codeigniter

Время на прочтение 4 мин
Количество просмотров 13K
PHP *CodeIgniter *
Туториал
Из песочницы
В первую очередь хочу сказать спасибо за комментарии. Думаю данная тема будет еще для многих актуальна, так как периодически получаю от пользователей хабры сообщения в скайп, помочь в создании «модуля» мультиязычности.
image
Данный пост полностью переписан, так как на данный момент использую совершенно другой подход к разработки мультиязычности для CodeIgniter 3. Также пост максимально короткий с примером и кратким описанием.

Решение проблемы



В общем, со временем и более детальным изучением данного фреймворка, пришел к выводу — мультиязычность нужно делать в роутере.
Читать дальше →
Всего голосов 8: ↑7 и ↓1 +6
Комментарии 7

Встраивание своей классовой структуры в проект на CodeIgniter

Время на прочтение 3 мин
Количество просмотров 5.5K
PHP *CodeIgniter *ООП *
Доброго времени суток, товарищи.

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

Проблема



Я занимаюсь разработкой ресурса для кросс-постинга в социальные сети. Изначально продукт был предназначен только для Вконтакте и Facebook и для работы с API было выделено по одному контроллеры и по одной модели, плюс модель для работы с cURL. Пока была необходимость работать только с двумя социальными сетями такая классовая структура проекта не выглядела удручающей. Но стоило добавить работу ещё с несколькими соц. сетями, стало очевидно что такая модель ведёт к хаосу и полному бардаку как на стороне работы с API так и на стороне клиента. Чего стоит ветвление из 10 else if для просмотра данных пользователя или 10 ajax запросов для отправки сообщений в социальные сети. Было принято решение отрефакторить весь этот ужас, воспользовавшись паттерном Фабрика. Всё представлялось просто: описываем интерфейс с общим функционалом работы с API, делаем фабричный класс и единственный контроллер, который будет реквайрить фабричный класс. Но как только начали переносить функционал на новую парадигму, нас осенило. Вся работа в бд, пользовательскими данными, логами и https держится на CI моделях и библиотеках. Тут то я понял как был неправ, когда писал в курсовой что CodeIgniter не накладывает ограничений на разработчика — ещё как накладывает. Стоит немного шагнуть в своём решении за рамки модели MVC, возникает проблема — как включить это решение в проект.
Решение
Всего голосов 21: ↑10 и ↓11 -1
Комментарии 6

Стандарт разработки приложений на CodeIgniter

Время на прочтение 8 мин
Количество просмотров 19K
Разработка веб-сайтов *CodeIgniter *
А мы используем внутренние стандарты. Они действительно полезны:
стандартам совершенно не обязательно следовать;
— они позволяют быстрее и комфортнее осваиваться;
— они помогают меньше теряться при творческом процессе.

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

Читать дальше →
Всего голосов 21: ↑11 и ↓10 +1
Комментарии 25

Расширение помощника CAPTCHA для Codeigniter

Время на прочтение 5 мин
Количество просмотров 9.3K
CodeIgniter *
Из песочницы

Недавно, от наличия свободного времени и желания сделать что то полезное, решил написать расширение для убогого хелпера капчи в Codeigniter.
Читать дальше →
Всего голосов 10: ↑6 и ↓4 +2
Комментарии 11

Грамотное определение языка пользователя

Время на прочтение 3 мин
Количество просмотров 81K
Разработка веб-сайтов *PHP *CodeIgniter *
Туториал
Сейчас работаю над сайтом, который претендует на глобальность, естественно и с мультыязычностью у него должно быть все в порядке.

О том как отображать информацию на разных языках тут речи идти не будет. Разговор пойдет о том как определить язык пользователя, и выбрать из доступных на сайте языковых версий наиболее подходящую.
Читать дальше →
Всего голосов 16: ↑10 и ↓6 +4
Комментарии 20

Пакеты(packages) в Fuelphp

Время на прочтение 4 мин
Количество просмотров 4.6K
Symfony *CodeIgniter *Kohana *
В данной статье я бы хотел поделиться знаниями о том, как устроены, для чего нужны и что из себя представляют packages(далее пакеты) в Fuelphp. Прошу помочь сравнить реализацию и возможности пакетов Fuelphp с аналогами из других фреймворков. Думаю всем будет интересно узнать мнение адептов Simfony2 и Yii по этому поводу, милости просим, кидайте свои выкладки в комменты. Далее в примерах будет рассмотрен пакет fuel-ninjauth
Читать дальше →
Всего голосов 12: ↑8 и ↓4 +4
Комментарии 30

Вклад авторов