CodeIgniter vs. CakePHP

Ниже находится перевод статьи Джонатана Снука (Jonathan Snook) о преимуществах и недостатках двух популярный PHP фреймворков CakePHP и CodeIgniter.

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

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

Зачем сравнивать?

CakePHP и CodeIgniter во многом очень похожи между собой, включая то, что оба поддерживают PHP4. Говоря о преимуществах одной платформы, мы тут же можем сослаться на сильные стороны другой.

Они обе дают возможность работать в парадигме MVC архитектуры, что просто означает их способность разделять Модель (данные), Контроллер (который направляет данные из модели, чтобы получить представление) и Вид (то, что видит пользователь).

Они обе используют роутинг, который дает возможность привязывать URL к определенной функции внутри контроллера (в CakePHP это называется actions). CodeIgniter поддерживает регулярные выражения для роутинга, в то время как нужно дожидаться релиза CakePHP версии 1.2 для поддержки этой функции. Поправка: CakePHP 1.1 уже поддерживает регулярные выражения для роутинга, но это не отражено в документации.

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

Приступим…

Read the rest of this entry »

silverlight.msi file is missing

The easiest way to remove software for which the original source msi is not available is to use the MSI cleanup utility. The download is about halfway down the page:

http://support.microsoft.com/kb/290301

Продвинутый EXPLAIN в MySQL — SHOW PROFILES

Не удивительно, что пока мало кто знает о такой замечательной штуке в MySQL, как профайлинг запросов. Т.к. существует она лишь в 5.0.37+ и 6.0 ветках, в 5.1 её нет.
Как известно, EXPLAIN не всегда дает верную информацию о поведении того или иного запроса, т.к. он его не выполняет. Однако профайлинг работает иначе, записывая отрезки времени, нагрузки на CPU, IO операций, MEMORY итп на всех этапах выполнения запроса.
Смешно, профайлинг в MySQL доступен с 27 февраля 2007 года…

Подробности тут.