Архив November, 2007

Холиварчик и 2 новогодних подарка

CakePHP - это только один из фреймворков. Признаюсь, я довольно поверхностно знаю Zend, Symfony и CodeIgniter (PHP), Rails (Ruby) и Django (Python). Так как по многим причинам мне приходится писать на PHP (сам я бы выбрал, наверное, Python - синтаксис нравится и готовых модулей много), то остаются только 4 известных фреймворка.

В предыдущем посте Sam, чей блог rmcreative.ru я сам читаю и часто кидаю ссылки нашим верстальщикам (это я так подлизываюсь, чтобы он меня в друзья добавил, как сделал Лог программиста :)), сказал, что с помощью Zend легко делается то, что нельзя сделать на Cake. Ну, я, истинный евангелист Cake, сразу же нашёл как это сделать двумя способами.

Да, так вот, уверен, что среди читателей блога есть люди, которые не так фанатично любят Cake, а предпочитают по каким-то причинам evil Zend другие фреймворки. Но, уверен, вы довольно умны и приняли это решение обдуманно, понимая хотя бы в общих чертах философию и возможности других PHP-фреймворков, включая Cake.

Пожалуйста, напишите в комментах, что может хорошего делать ваш любимый фреймворк и чего не может Cake. Условия:

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

Я попробую придумать как это сделать в CakePHP и, может быть, мне помогут такие гуру как Анатолий, Дмитрий и Влад (напомню, что на этом блоге после 5-го комментария rel=”nofollow” убирается ;) ).

Чтобы вас раззадорить, посмотрите статистику поисковых запросов (Google Trends):
trends.gif
Знаю, что искать “zend framework”, а не “zend” было не совсем честно, но “zend” много искали и задолго до появления Zend Framework.

И ещё одна просьба, которая поможет получить побольше откликов и больше шансов найти невозможные для CakePHP вещи. Вы ведь тоже программисты и у многих есть блоги. Напишите, пожалуйста, в следующем своём посте (где-то в конце, когда ваш пост уже дочитают) об этом посте. Ссылка “Почему CakePHP - отстой по сравнению с другими PHP-фреймворками” подойдёт :)
Если у вас нет своего блога, но вы Хабрачеловек, напишите, пожалуйста, в http://habrahabr.ru/blog/php/.

А теперь новогодние подарки!
Подарок 1
Тот, по чьей ссылке прийдёт больше всего людей (буду смотреть 25 декабря, так что можно успеть поставить ссылку несколько раз), получит от меня огромную благодарность и 10WMZ (или аналог в Яндекс.Деньгах). Если будет с Хабрахабра или какого-то другого сайта вроде News2.ru, то всё равно найду по нику создателя новости :)

Подарок 2
Человек, который придумает самую полезную вещь, которую нельзя будет относительно легко реализовать в CakePHP, тоже получит от меня 10WMZ. В качестве жюри будут выступать читатели блога (я сделаю голосование в отдельном посте 20 декабря, голосование закончится 25 декабря)

UPD 25 декабря 2007: Победитель определён.

19 комментариев

Общая папка для ядра CakePHP

Многие знают, что можно использовать общую папку CakePHP, а в папках проектов оставлять фактически содержимое папки app. Это упрощает поддержку - нужно обновлять cake только в одном месте.

Но часто приложение работает на нескольких компьютерах. Например, у меня есть 3 основных места в которых я их запускаю: мой компьютер (здесь можно делать что угодно), общий локальный сервер компании (здесь код, который работает, но в стадии тестирования) и production-сервер (Интернет или локальная сеть клиента). Некоторые из них под Windows, некоторые под FreeBSD. Поэтому никак нельзя сделать, чтобы путь был одним и тем же.
Читать полностью >>

6 комментариев

ProgressBar для CakePHP в стиле WinRAR

Я так люблю CakePHP, что часто мучаю его так, как и не догадывались его создатели. Некоторые задачи у меня выполняются по несколько часов так как приходится обрабатывать огромные таблицы. При этом возникают проблемы - Request Time-out, который появляется, если долго ничего не выдавать браузеру. Я раньше выводил точки, потом номер обрабатываемой записи. Для того, чтобы просмотреть, сколько уже сделано, надо было скроллить в самый низ, который постоянно исчезал.

Сегодня мне это наконец надоело и я сделал привычный ProgressBar.
Читать полностью >>

5 комментариев

Хлебные крошки в CakePHP

“Хлебные крошки” - это удобный способ навигации, который к тому же даёт понять текущее положение на сайте. Для моего текущего проекта этот способ очень упрощает использование. Я задумался, как сделать это наиболее красиво в CakePHP.
Читать полностью >>

13 комментариев

Разные Flash для ошибок, сообщений, подтверждений

В Cake есть удобное средство выдачи сообщений - Flash. Но меня всегда огорчало то, что нельзя передать тип Flash. Я выделяю для себя 3 типа: ошибки ("Не удалось добавить"), подтверждение ("Добавление завершено") и просто сообщения. Оказывается, можно это сделать встроенными средствами CakePHP.
Читать полностью >>

6 комментариев

Рекурсивная обработка массива

Приятно иметь “умные” функции, в которые всё равно что передавать - с помощью какой-то магии она сама поймёт что ей передали и что нужно с этим сделать. Например, когда нужно сделать htmlspecialchars, лучше иметь одну функцию и для одной строки, и для массива. Вот как я это решал такие задачи раньше:

Читать полностью >>

4 комментария

BlogFriends.ru - 2. Генерация кода

BlogFriends.ru - 1. Схема сайта

Disclaimer: многие вещи в этом посте могут показаться очевидными для профессионалов, но уж слишком много я видел людей, использующих phpMyAdmin и "систему контроля версий" WinRAR.

Создание базы данных

После того, как мы продумали структуру базы данных, создадим её в MySQL. Cake позволяет добавлять любой префикс, что важно для shared hosting, так как там часто даётся только одна база данных в которую иногда надо вместить несколько приложений.

Читать полностью >>

18 комментариев

Autocomplete для моделей в CakePHP

“Магия” CakePHP, которая позволяет делать программы с минимальным количеством кода, имеет свои недостатки. Например, в контроллере редакторы не понимают, что есть модели и какого они типа. А autocomplete - это чудесная штука, без которой постоянно надо лезть в API.
Читать полностью >>

3 комментария

Страница 1 из 11