November 28, 2007 at 6:04 pm
· CakePHP
Многие знают, что можно использовать общую папку CakePHP, а в папках проектов оставлять фактически содержимое папки app. Это упрощает поддержку - нужно обновлять cake только в одном месте.
Но часто приложение работает на нескольких компьютерах. Например, у меня есть 3 основных места в которых я их запускаю: мой компьютер (здесь можно делать что угодно), общий локальный сервер компании (здесь код, который работает, но в стадии тестирования) и production-сервер (Интернет или локальная сеть клиента). Некоторые из них под Windows, некоторые под FreeBSD. Поэтому никак нельзя сделать, чтобы путь был одним и тем же.
Читать полностью >>
Permalink
November 27, 2007 at 6:56 pm
· CakePHP, Helpers
Я так люблю CakePHP, что часто мучаю его так, как и не догадывались его создатели. Некоторые задачи у меня выполняются по несколько часов так как приходится обрабатывать огромные таблицы. При этом возникают проблемы - Request Time-out, который появляется, если долго ничего не выдавать браузеру. Я раньше выводил точки, потом номер обрабатываемой записи. Для того, чтобы просмотреть, сколько уже сделано, надо было скроллить в самый низ, который постоянно исчезал.
Сегодня мне это наконец надоело и я сделал привычный ProgressBar.
Читать полностью >>
Permalink
November 26, 2007 at 10:17 pm
· CakePHP, Helpers
“Хлебные крошки” - это удобный способ навигации, который к тому же даёт понять текущее положение на сайте. Для моего текущего проекта этот способ очень упрощает использование. Я задумался, как сделать это наиболее красиво в CakePHP.
Читать полностью >>
Permalink
November 23, 2007 at 9:32 pm
· CakePHP
В Cake есть удобное средство выдачи сообщений - Flash. Но меня всегда огорчало то, что нельзя передать тип Flash. Я выделяю для себя 3 типа: ошибки ("Не удалось добавить"), подтверждение ("Добавление завершено") и просто сообщения. Оказывается, можно это сделать встроенными средствами CakePHP.
Читать полностью >>
Permalink
November 12, 2007 at 11:45 pm
· CakePHP
BlogFriends.ru - 1. Схема сайта
Disclaimer: многие вещи в этом посте могут показаться очевидными для профессионалов, но уж слишком много я видел людей, использующих phpMyAdmin и "систему контроля версий" WinRAR.
Создание базы данных
После того, как мы продумали структуру базы данных, создадим её в MySQL. Cake позволяет добавлять любой префикс, что важно для shared hosting, так как там часто даётся только одна база данных в которую иногда надо вместить несколько приложений.
Читать полностью >>
Permalink
November 1, 2007 at 4:48 pm
· CakePHP, Модели
“Магия” CakePHP, которая позволяет делать программы с минимальным количеством кода, имеет свои недостатки. Например, в контроллере редакторы не понимают, что есть модели и какого они типа. А autocomplete - это чудесная штука, без которой постоянно надо лезть в API.
Читать полностью >>
Permalink
October 31, 2007 at 12:18 am
· CakePHP
Когда я только начинал знакомиться с Cake, мне ужасно не хватало примеров. Есть 2 популярных учебных примера: от CakePHP.org и от IBM. Оба они рассчитаны на CakePHP версии 1.1, а я думаю, что большинство не смогло устоять перед огромным количеством приятных фич, которыми радует CakePHP 1.2 pre-beta.
Поэтому я решил помочь программистам, которые поглядывают в сторону CakePHP, но ещё не успели его достаточно полюбить. Я создам проект на CakePHP 1.2 и буду тщательно описывать все шаги. Так как нормальной документации по CakePHP 1.2 ещё нет, то я надеюсь, что среди читателей найдутся критики, которые будут пинать меня в правильном направлении, если я буду выбирать не самое оптимальное решение.
Читать полностью >>
Permalink
October 24, 2007 at 8:49 pm
· CakePHP, Компоненты
Когда нужно скачать сотню страниц, то можно обойтись моим компонентом Browser. Но недавно мне надо было скачать столько информации, что нужно было ждать неделю. Проблема в том, что компонент загружает страницы по очереди. Пришлось придумывать как заставить его качать в несколько потоков.
Читать полностью >>
Permalink
October 22, 2007 at 9:23 pm
· CakePHP, Куски кода, Модели, Офф-топик
Как вы оцениваете свой уровень как программиста? Несмотря на то, что меня Влад дважды похвалил :), я свой уровень оцениваю на 3 с плюсом (по 5-бальной шкале). Каждый день узнаю такие интересные финты, что хочется посыпать голову пеплом, за то, что сам до этого не додумался.
Сегодня узнал способ легко кешировать результаты функции, которые не меняются при условии одинаковых входящих параметров.
Читать полностью >>
Permalink
October 20, 2007 at 2:51 pm
· CakePHP
Как я уже писал, я люблю выносить обработку данных в модели. При этом у меня часто получаются модели со схожими функциями, как в одном проекте так и в разных. А меня очень удручает, когда надо писать один и тот же код по несколько раз, а от копирования кода меня просто передёргивает, потому что я уже вижу как через полгода буду себя проклинать. До CakePHP я в таких случаях просто создавал общего потомка и там реализовал общую функциональность. Недостаток этого метода - это то, что в PHP можно наследовать можно только один класс.
К счастью, разработчики CakePHP придумали как удобнее выносить одинаковую функциональность из моделей. Эта возможность появилась в CakePHP 1.2 и называется behaviors.
Читать полностью >>
Permalink