CodeIgniter

индекс
90,72

Миграции баз данных — интеграция с вашим приложением

Данная статья посвящена практическому использованию библиотеки Migraton, появившейся в обновлении CodeIgniter версии 2.1.0. Настоятельно рекомендую вам перед ознакомлением с данным материалом прочесть первую часть статьи, в которой говорится непосредственно о создании миграций.
+16
30 ноября 2011, 13:49
33

Миграции баз данных — обзор библиотеки и ее использование

Как вы уже могли прочесть, недавно вышла новая версия CodeIgniter, одним из нововведений которого является библиотека Migration. Один из главных ее разработчиков, Phil Sturgeon был настолько воодушевлен удобством управления версиями баз данных для Rails, что решил создать аналог такого метода для CodeIgniter, и вот, в конце-концов вы можете видеть эту библиотеку в официальной поставке.
Из этой статьи вы получите общее представление о миграциях, а также научитесь их создавать. Во второй же части, мы с вами увидим, как легко они могут быть интегрированы в ваше приложение.
Данная статья будет полезна начинающим пользователям CodeIgniter, но я надеюсь что и более продвинутые коллеги узнают об этой чудесной библиотеке и подчерпнут для себя что-нибудь новое.

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

+36
28 ноября 2011, 15:16
64

Вышел релиз CodeIgniter 2.1.0

imageРелиз состоялся 14-го ноября 2011 года. На момент написания статьи (21-е ноября) changelog на сайте CI так и не выложили. Поэтому решил сделать перевод changelog-а из архива с фреймворком. Так что давайте взглянем, чем же нас порадуют разработчики.
Сразу даю ссылку на оригинальный Change Log v 2.1
+24
22 ноября 2011, 02:36
28

Использование драйверов в CodeIgniter из песочницы

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

Итак драйвер — это особый тип библиотеки, которая состоит из одного родительского класса и нескольких дочерних. Дочерние классы получают доступ только к родительскому классу, но не имеют доступа к свои собратьям. Термин «дочерний» на самом деле не наследует поля родителя, а лишь получает к ним доступ.

Драйверы служат для разбиения ваших библиотек на отдельные классы и в CodeIgniter представляют собой реализацию структурного шаблона проектирования Декоратор.
+18
14 ноября 2011, 13:49
40

Codeigniter: делаем сессии наконец стабильными (прежде всего для авторизаций)

Сессии в Codeigniter хороши всем. Правда, очень удобно сделаны, особенно когда вы храните сессии в БД (что я считаю единственно верным). Куки шифрованные, в куках ничего, кроме идентификатора нету. Они привязываются к user_agent и, опционально, к IP. Красиво, безопасно.

Но есть у них очень существенный недостаток: жизнь сессии считается от поля last_activity. Это значит, что если у вас стоит expire сессии в двое суток, то при обращении к сессии, у которой last_activity < time()-172800, она ликвидируется и начинется новая. Следственно, для того что бы пользователям не приходилось каждый раз логиниться на сайт, last_activity нужно поддерживать в акутальном состоянии.
Поле last_activity обновляется в двух случаях: когда вы записываете что-то новое в сессию, либо когда сессия обновляется (по-умолчанию каждые 5 минут, опять же, относительно last_activity; указывается в конфиге). И вот главная проблема в том, что при обновлении сессии меняется session_id и текущая сессия у пользователя сессия прерывается, стартует новая.

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

Проблема «животрепещущая», о ней часто вспоминают на форумах Codeigniter, но толкового решения там нигде я так и не увидел.

Но голь, как известно, на выдумки хитра, поэтому простое решение таки нашлось.
+15
20 октября 2011, 18:02
57

Каркас для web-приложений, построенный на CodeIgniter из песочницы

image
Наверняка, многие веб-программисты изучали и, может быть, даже использовали такой замечательный фреймворк как CodeIgniter. Мой выбор пал на него ввиду того, что у него самый низкий порог вхождения, он наиболее прост в изучении, хорошая документация, быстрый и т.д. и т.п. Для простых проектов самое «оно», чтоб попробовать свои силы именно как разработчик. Само собой, для более серьезных проектов лучше использовать более функциональные и навороченные фреймворки.

Далее буду описывать, как я «апгрейдил» CodeIgniter, чтобы использовать этот каркас для разных проектов, т.к. базовый его функционал и примеры из документации, мягко говоря, очень простые, а в жизни всё гораздо сложнее. Итак, начнем-с.
+37
14 октября 2011, 12:47
138

Интеграция шаблонизатора Twig в CodeIgniter 2 из песочницы

Логотип CodeIgniterЛоготип Twig
CodeIgniter — это небольшой и быстрый php фреймворк, с низким порогом вхождения. Хотя есть такие силачи как Yii, Symfony и Kohana, по непонятным причинам, все проекты пишу именно на нем. Всё бы хорошо, но есть у CI две довольно ощутимые проблемы: слабо развитый ActiveRecord и отсутствие шаблонизатора. Вторую проблему мы и решим.

Почему Twig, а не SMARTY?


Как по мне SMARTY — нечто большое, старое и страшное. С другой стороны — мощное и проверенное временем. Twig — молод, энергичен и вызывает доверие, так как встроен в Symfony, а у этого фреймворка довольно большое и активное сообщество. Хотя ещё вчера провели сравнение производительности в котором явно выиграл SMARTY, я решил попробовать Twig.

C общей информацией закончили, переходим к сути — три простых шага для интеграции Twig в CodeIgniter 2:

1. Переносим файлы Twig в CI


Забираем стабильную версию Twig с gitHub'а
github.com/fabpot/twig
Извлекаем содержимое архива и переименовываем папку в Twig, переносим её в папку application/libraries в вашем CI.

2. Связываем Twig с CI


Забираем стабильную версию одноименной библиотеки Twig для CI, которая даст нам возможность вызывать Twig из контроллера.
github.com/jamiepittock/codeigniter-twig/
Из архива берем папку application и копируем поверх папки application в вашем CI.

3. Настраиваем пути Twig


Открываем application/config/twig.php и меняем пути в соответствии с вашими настройками. Например, мне понадобилось изменить путь к кэшу
$config['cache_dir'] = BASEPATH.'cache/twig';

0
1 октября 2011, 21:55
15

Альтернатива mysql_pconnect для драйвера mysqli в php 5.3

В качестве драйвера для соединения с базой я использовал mysqli. Проблема началась, когда я добавил на свой тестовый сервер > 500 000 записей в одну таблицу. Соединение с базой стало занимать от 1 до 10 секунд, несмотря на то, что в настройках стояло:
$db['default']['pconnect'] = TRUE;

что должно было означать, что подключение происходит через постоянное соединение.
+15
30 сентября 2011, 12:21
23

Консоль для CodeIgniter из песочницы

Добрый день Хабрасообщество.

Выношу на ваш справедливый суд консоль для PHP фреймворка CodeIgniter.

Перед этим небольшое пояснение — я не являюсь фанатом CI, но, так как приходится работать в команде пополняющейся новобранцами, выбирается наиболее легкодоступный для освоения инструмент. Это же и касается ОС на которой ведется разработка Windows, хотя инструмент тестировался и прекрасно себя чувствует в Linux-based системах, по крайней мере в Ubuntu. Это является прототипом, поэтому код можно критиковать бесконечно.

Небольшое иллюстрирующее видео:

+31
22 августа 2011, 17:53
27

CodeIgniter 2.0.0 Released

Этого ждали больше года [назад]. Месяцев десять назад был топик о том, что CI2 — soon. С тех пор были перестановки в команде разработчиков, да и так перспективы кодигнайтера были сомнительны. Сейчас большая часть поклонников ушла с CI на Yii или Kohana, а то и вовсе с php на питон или руби. Но вот совершенно неожиданно на сайте фреймворка объявили о релизе.

Большую часть плюшек можно обозреть, например, по вышеозначенному топику. А в официальном анонсе заявлено следующее.
  • В минимальных требованиях php 5.1.
  • Драйверы.
  • Application Packages.
  • Удалён скаффолдинг и класс валидации, удалены плагины в пользу хелперов.
  • Изменения в роутере, формах.
  • Кеш стал не только файловым, но и APC и memcache.
  • Командная строка для крона.
  • 50+ багфиксов.
  • 20+ усовершенствований и твиков.

На чём разработчики собираются работать дальше — это: документация, библиотека аутентификации, более объектная модель.

Делать выводы предоставляю заинтересованным в том.
+41
29 января 2011, 00:02
9