Победитель Холивара

Примерно месяц назад я предложил назвать недостатки CakePHP по сравнению с другими PHP-фреймвоками. И, надеясь, подогреть интерес, предложил 2 небольших приза - за то, что приведут посетителей и за то, что назовут самый-самый недостаток.
Читать полностью >>

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

Алгоритм составления Top10 чего угодно

В каждом сборнике советов о том как сделать блог более популярным есть “Напишите Top10 чего-то”. Вот я решил написать Top10. Но как истинный программист, вместо 10 бессмысленных фактов написал алгоритм как правильно выбирать Top10 чего-то.

Допустим, у вас есть сайт со статьями и вы хотите сделать Top10 статей, учитывая количество их просмотров. Не торопитесь, подумайте сначала, зачем вы хотите это сделать. Наверное, чтобы показать людям статьи, которые могут быть им наиболее интересны. Но показывая одни и те же Top10, вы искусственно увеличиваете количество просмотров статей, которые находятся в топе и они, возможно, случайно туда попав, уже никогда не исчезнут. В то же время посещаемость надо учитывать, потому что всё же корреляция посещаемость-интересность есть.
Читать полностью >>

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

Вернуться назад и сообщить о результате

Некоторые задачи не совсем укладываются в парадигму Model-View-Controller, потому что у них нет как такового View. Они просто тихо делают свою задачу (backup, импорт/экспорт, оптимизация, удаление,…) и выдают либо, что всё ОК, либо ошибку. Раньше я для большинства таких задач использовал exit/die. Но это как-то не красиво.
Читать полностью >>

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

Тестирование скорости выполнения функции

В Delphi есть такой приятный оператор div - деление нацело. То есть 7 div 3 = 2, 7 mod 3 = 1. В PHP есть аналог mod - 7 % 3 = 1, а вот есть ли аналог div я постоянно забываю :)
Самое интересное, что алгоритм выяснения постоянно одинаковый. Я захожу на php.net/случайная_функция (кстати, удобнейшый вид вызова справки и самый простой способ добраться до мануала не выбирая версию online и язык), там нахожу php.net/manual/en/language.operators.arithmetic.php и ругаюсь, потому что аналога нет.
Казалось бы, Вова, что сложного написать floor($a/$b)? А вот нет, меня потянуло читать комментарии в которых часто есть хорошие советы и куски кода.
Читать полностью >>

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

Модели и контроллеры CakePHP в подпапках

Когда накапливается больше 20 контроллеров и моделей, то начинает казаться не такой уже и хорошей идея жёсткого закрепления папок, куда нужно помещать файлы определённого типа. Конечно, есть $modelPaths и $controllerPaths, но каждый раз назначать их вручную не так уж и приятно.

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

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

Определение языка и кодировки. Компонент для CakePHP

Для моего текущего проекта необходимо определять на каком языке пользователь вводит информацию. Причём это не сложный выбор между PHP и Perl, а, например, между английским и испанским. Сначала я хотел составить список самых распространённых слов в популярных языках - предлоги, частые глаголы и т.д. Почти сразу я понял, что точность будет небольшая, а работы - очень много, даже, если её буду делать не я :).
Поэтому пришлось думать дальше. Мне больше всего понравился способ, в котором учитывается частотность букв, двух-, трёх- и четырёхбуквенных сочетаний.
Читать полностью >>

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

Холиварчик и 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 комментариев

Страница 2 из 4«1234»