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

CodeIgniter *

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

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

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

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

Далее буду описывать, как я «апгрейдил» CodeIgniter, чтобы использовать этот каркас для разных проектов, т.к. базовый его функционал и примеры из документации, мягко говоря, очень простые, а в жизни всё гораздо сложнее. Итак, начнем-с.
Читать дальше →
Всего голосов 51: ↑44 и ↓7+37
Комментарии27

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

Время на прочтение2 мин
Количество просмотров9K
Логотип 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';

Читать дальше →
Всего голосов 16: ↑8 и ↓80
Комментарии15

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

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

что должно было означать, что подключение происходит через постоянное соединение.
Читать дальше
Всего голосов 29: ↑22 и ↓7+15
Комментарии26

CodeIgniter 2.0.0 Released

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

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

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

Делать выводы предоставляю заинтересованным в том.
Всего голосов 61: ↑51 и ↓10+41
Комментарии51

Истории

Доменная (LDAP) аутентификация в Codeigniter

Время на прочтение3 мин
Количество просмотров7.2K
image

Статья ориентирована на начинающих Codeigniter-щиков, таких как я.

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

Найти самостоятельно информацию в принципе не трудно. Поисковые системы еще ни кто не отменял. Я просто решил собрать найденные кусочки и объединить их в один, на русском языке.

Допустим, что CI уже установлен и настроен. Кстати, на одном из западных сайтов, доступно много хороших и исчерпывающих видео уроков по настройке и использованию Codeigniter-а.
Читать дальше →
Рейтинг0
Комментарии4

Как сделать FULLTEXT поиск в CMS на CodeIgniter

Время на прочтение10 мин
Количество просмотров6.2K
На Хабре в последнее время появляется все больше постов посвященных набирающему популярность framework'у CodeIgniter. Это довольно простой и удобный фреймворк с помощью которого можно быстро начать делать нормальные приложения на PHP. Под катом пример реализации FULLTEXT поиска в CMS на CodeIgniter.
Читать дальше →
Всего голосов 42: ↑32 и ↓10+22
Комментарии44

Добавляем так недостающий parse_string()

Время на прочтение2 мин
Количество просмотров1.3K
image В марте от хабраюзера Wave появилась новость, заставившая затрепетать сердца всех любителей фрэймворка CodeIgniter: вот-вот должна появиться версия 2.0 этой ляльки. И вот, прошло уже больше двух месяцец, а воз и ныне там, «двушка» для скачивания с офф.сайта так и недоступна.

И все бы ладно, да очень не хватало метода, который обещали внедрить во вторую версию фрэймворка — parse_string() в классе Parser, который бы позволил нам парсить шаблоны не только из файлов, но и из переменных. А так, как в одной из моих разработок есть потребность хранить небольшие шаблончики в БД, то, так сказать, стало мне невтерпеж.

Хвала разработчикам, нам дали возможность расширять все стандартные классы, чем мы и воспользуемся.

За реализацией этого метода — добро пожаловать под хаброкат.

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

Новости CodeIgniter — 2.0 soon

Время на прочтение2 мин
Количество просмотров1.5K
На сайте кодожжотера появилась интересная новость.
Ellislab перешли с SVN на Mercurial и выложили на bitbucket версию 2.0.0
Но по порядку.
Читать дальше →
Всего голосов 39: ↑33 и ↓6+27
Комментарии33

Доработка стандартного механизма обработки ошибок в CodeIgniter

Время на прочтение5 мин
Количество просмотров3.6K
CodeIgniter предоставляет неплохие возможности по обработке ошибок, но мне они показались недостаточными по следующим причинам:
  • отсутствует возможность обработки исключений
  • отсутствует возможность уведомлять администратора сайта о возникающих ошибках через почту
  • довольно скудная информацию о возникающих ошибках (в фреймворке с которым я работал раньше текст ошибки дополняется дампом глобальных переменных, что очень сильно облегчает процесс отладки, хотелось бы подобную схему увидеть и в CodeIgniter)

Будем это исправлять =)
Читать дальше →
Всего голосов 9: ↑7 и ↓2+5
Комментарии6

Вышел CodeIgniter 1.7.2

Время на прочтение1 мин
Количество просмотров1.4K
Список изменений:
  • Совместимость с php 5.3;
  • Добавлен класс Cart (корзина для интернет-магазинов);
  • Улучшения хелпера Form;
  • Добавлена функция is_php() для проверки версии php;
  • Усовршенствована функция show_error(), тепрь она позволяет отсылать http-статусы ошибок. Все вызовы этой функции во фреймворке теперь шлют соответствующие статусы;
  • Многочисленные исправления ошибок;

Источник
Скачать
Всего голосов 33: ↑29 и ↓4+25
Комментарии26

CodeIgniter + lighttpd = ЧПУ

Время на прочтение1 мин
Количество просмотров3.5K
image

Имеем новый проект «domen.com», который будет работать на php-фреймворке codeigniter и вебсервере lighttpd.
Задача: сделать красивую работу ЧПУ
Читать дальше →
Всего голосов 10: ↑5 и ↓50
Комментарии7

Гибкий base_url

Время на прочтение2 мин
Количество просмотров7.5K
Как-то мнe захотелось чтобы при обращению к странице по https, также все внутренние линки были изменены на варианты с https. Так как view страницы загружается с разными url, относительные пути не проходили (js/script.js) и я решил использовать функцию base_url (echo base_url().'js/script.js'), но дело в том что она подставляет содержимое переменной $config['base_url'], которая в свою очередь статична.
Немного поискав я нашел решение — динамический базовый путь в $config['base_url']. Также положительным эффектом является то, что теперь не нужно изменять base_url при переносе файлов между доменами.
Код под катом
Всего голосов 12: ↑6 и ↓60
Комментарии4

CodeIgniter Debug Toolbar

Время на прочтение1 мин
Количество просмотров4.5K
CodeIgniter Debug Toolbar
Многие видели девелоперский тулбар для фреймворка Kohana (слизанный, в свою очередь, с Symfony), который недавно выкладывали на хабре. Мне он очень понравился — захотелось поиметь такой и для себя.

Немножко поколдовав, получилось нечто похожее…
Читать дальше →
Всего голосов 54: ↑43 и ↓11+32
Комментарии40

Ближайшие события

Weekend Offer в AliExpress
Дата20 – 21 апреля
Время10:00 – 20:00
Место
Онлайн
Конференция «Я.Железо»
Дата18 мая
Время14:00 – 23:59
Место
МоскваОнлайн

Автодополнение функций CodeIgniter в NetBeans

Время на прочтение2 мин
Количество просмотров3K
На волне интереса к NetBeans расскажу небольшой хинт. Я работаю в основном с CodeIgniter, и вот чего мне сильно не хватает в IDE это быстрого автодополнения для встроенных функций (библиотек, хелперов) — вроде $this→form_validation→…

Сейчас я расскажу, как это реализовать:

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

MVC на примере CodeIgniter

Время на прочтение3 мин
Количество просмотров11K
На официальном сайте есть видео где рассказывается о создании блога. Там рассказано о применении только представления и контроллера, модель опускается и остается на самостоятельное изучение. Далее попытаюсь рассказать, как использовать полную модель MVC на примере вывода записей в блоге.
Читать дальше →
Всего голосов 6: ↑4 и ↓2+2
Комментарии19

Расширение класса Form_validation поддержкой значений полей по умолчанию

Время на прочтение3 мин
Количество просмотров1.6K
Однажды задал в комментариях такой вопрос. Недавно решил эту проблему, расширив класс Form_validation в CodeIgniter (отдаленно напоминает переделку, подсказанную мне в ответ на мой вопрос).
Вообще странно, что такого функционала в классе в валидации изначально нет — функции хелпера form для вывода значения поля, установки чекбокса, etc (set_value, set_checkbox) поддерживает значение поля по умолчанию, однако прописывать в отображениях везде в set_value дефолтные значения не очень удобно.

Поэтому было написано вот такое расширение класса валидации, позволяющее установить массив значений по умолчанию. Так же переопределены методы, которыми пользуется хелпер form.
Читать дальше →
Всего голосов 4: ↑4 и ↓0+4
Комментарии1

Руководство пользователя на русском в формате chm

Время на прочтение1 мин
Количество просмотров5.7K
Для тех у кого интернет не всегда под рукой, да и просто для любителей локальных мануалов, я скомпилировал руководство пользователя по CodeIgniter (code-igniter.ru) в отдельный файл chm.

Скачать его можно отсюда: www.iforyou.ru

UPD 1: Добавлена страничка с классом Image Manipulation.
UPD 2: Добавлена страничка с классом Typography.
UPD 3: Удалено выпадающее содержание (то что на JavaScript), панель справа теперь в юникоде.
UPD 4: Страница с содержанием теперь в две колонки.
UPD 5: Исправлена ошибка с кодом в одну линию. Теперь код как в оригинале.
Всего голосов 53: ↑44 и ↓9+35
Комментарии36

ЧПУ + GET

Время на прочтение2 мин
Количество просмотров11K
Здравствуйте. Как известно из документации по CI, мы можем задавать controllers и actions через GET параметры (например ?c=stationery&act=contacts), либо использовать ЧПУ (например stationery/contacts), но тогда мы не можем передавать в url get параметры. По моему мнению, это не совсем правильно отказаться от get, т.к. мы не можем сделать универсальный pager (кто сталкивался, думаю, поймет), ни указать сортировку результата. Еще одной нерешенной задачей для меня было сделать расширенный поиск. По идее все параметры поиска задаются в URL, но некоторые поля могут указываться, некоторые нет. Конечно, это все обходится, но самым понятным способом было бы использование get параметров.
Читать дальше →
Всего голосов 34: ↑21 и ↓13+8
Комментарии43