Холиварчик и 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: Победитель определён.

21 комментарий

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

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

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

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

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

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

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

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

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

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

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

Разные 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.
Читать полностью >>

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

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

Когда я только начинал знакомиться с Cake, мне ужасно не хватало примеров. Есть 2 популярных учебных примера: от CakePHP.org и от IBM. Оба они рассчитаны на CakePHP версии 1.1, а я думаю, что большинство не смогло устоять перед огромным количеством приятных фич, которыми радует CakePHP 1.2 pre-beta.

Поэтому я решил помочь программистам, которые поглядывают в сторону CakePHP, но ещё не успели его достаточно полюбить. Я создам проект на CakePHP 1.2 и буду тщательно описывать все шаги. Так как нормальной документации по CakePHP 1.2 ещё нет, то я надеюсь, что среди читателей найдутся критики, которые будут пинать меня в правильном направлении, если я буду выбирать не самое оптимальное решение.
Читать полностью >>

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

Как попасть в DMOZ или первый бестолковый пост

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

Не тут-то было – я недавно искал ещё полезные сайты о PHP и расстроился, увидев, что русскоязычных ресурсов в DMOZ очень мало. И подал заявку на то, чтобы быть редактором раздела. И меня приняли.

Теперь я почётный редактор раздела World/Russian/Компьютеры/Программирование/Языки/PHP. Я уже успел добавить cake-php.ru о моём любимом фреймворке и ещё несколько более-менее адекватных сайтов, которые тоже подали заявки, но не были рассмотрены так как у раздела не было редактора. Несколько дурацких сайтов удалил. Сейчас разбираюсь, могу ли я добавить свой блог (1. Я аффилиирован с ним; 2. Это всё же блог, а не полноценный сайт) и что делать с сайтами компаний, которые пишут под заказ PHP-скрипты.

А теперь внимание!
Если у вас есть сайт, посвящённый PHP, то перейдите сюда, нажмите ссылку “предложить URL” в верхнем правом углу и заполните анкету. Заранее должен предупредить, что по правилам DMOZ ваш сайт должен иметь интересный контент и большей частью быть посвящённым PHP. А те, кто пишут о Perl, пусть идут в #@$% :)
Блоги тоже добавляйте, если их будет действительно много, то можно будет попробовать создать подраздел “Блоги”.

Оправдываясь за отсутствие кода в этом посте я обещаю со следующего поста начать разработку учебного проекта на CakePHP в котором покажу от начала до конца как разрабатываю cake-проекты. Думаю, будет интересно не только для новичков в Cake.

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