Сегодня 14 ноября, четверг ГлавнаяНовостиО проектеЛичный кабинетПомощьКонтакты Сделать стартовойКарта сайтаНаписать администрации
Поиск по сайту
 
Ваше мнение
Какой рейтинг вас больше интересует?
 
 
 
 
 
Проголосовало: 7276
Кнопка
BlogRider.ru - Каталог блогов Рунета
получить код
Markup
Markup
Голосов: 5
Адрес блога: http://lusever.livejournal.com/
Добавлен: 2007-12-23 12:13:17 блограйдером lusever
 

CodeIgniter + Zend Framework + Doctrine

2009-01-09 05:33:48 (читать в оригинале)

Последний раз вплотную на php я что-то делал два года назад. За это время технологии прилично продвинулись вперед. Тогда вообщем-то было все тоже самое, но валилось из-за сырости, требовало постоянное ковырения в php.ini, конфиге апача и phpMyAdmin. А самое плохое – были завязаны сами на себе.

Сейчас же можно смотреть вебдванольненькие документации, с хорошим поиском и хоть каким-то количеством готовых решений.

А еще, не нужно лезть в phpMyAdmin, с помощью Doctrine можно запросто написать всю структуру в YAML файлах. А она сама запишет в БД со всеми зависимостями и индексами, да еще модели сгенерирует в специальную папочку.

CodeIgniter задаст легкую структуру приложения, не нужно выдумывать расположение файлов, шаблонные движки, писать тыщуодну MVC. А модели будут из Доктрины, он не против.

А если нужна авторизация, OpenId и еще что-нибуть такое стандартное, но хочется отлаженное и без копания в чужом коде – берем Zend Framework с его коллекцией классов. Он вообще изначально проектировался так, чтобы все компоненты не зависели друг от друга, а интегрировались.

На самом деле, самым без проблемным оказался CodeIgniter. Убрал везде index.html, перенес все в директорию cgi-bin и наслаждаюсь.

Потом добавил Doctrine. И час искал тот метод, который генерит таблички без использования консоли.

Doctrine::createTablesFromModels(APPPATH . 'models');

И тут как раз оказалось, что ей нужен PDO. Он был установлен у хостера. Установлен сам по себе, без драйверов :) Пришлось лезть в консоль. Собрал. Т.е. собрал все модули которые нужны. Переписал php.ini. Заработало. Очень понравилось. Единственное, в типах столбцов всегда нужно указывать что они NOT NULL.

---
Articles:
  columns:
    id:
      primary: true
      autoincrement: true
      type: integer(4)
      notnull: true
    url: { type: string(255), notnull: true }
    text: { type: string, notnull: true }

А вот Zend'а, моя сборочка встретила холодно.

Zend_Loader::registerAutoload('Zend_Loader');

Тут php бросался варнингами. Оказалось где-то в самом конце CodeIgniter проверял if (class_exists('CI_DB') AND isset($CI->db)), что вызывало у зенда стойкое желание подгрузить класс CI_DB. В сообществе об этом знают, но не используют. Убрал автолоад и стал подгружать вручную, на четыре строчки оказалось больше.

И нужно мне подсоединить OpenId. Там проблемы возникли у всех. CodeIgniter ругался на роутинг (у него инеграция с PHP4, но специфичная форма роутинга, которую удалось запустить только созданием хука), Zend отказывается принимать жж. А Доктрину не понятно как сюда вообще вписывать.

Вывод: эти технологии рассчитаны на будущее. Когда у каждого будет свой выделенный сервер с PHP7. И YAML будут проходить в школе.


Тэги: codeigniter, doctrine, framework, php, zend

 


Самый-самый блог
Блогер ЖЖ все стерпит
ЖЖ все стерпит
по сумме баллов (758) в категории «Истории»


Загрузка...Загрузка...
BlogRider.ru не имеет отношения к публикуемым в записях блогов материалам. Все записи
взяты из открытых общедоступных источников и являются собственностью их авторов.