November 23, 2007 at 9:32 pm
· CakePHP
В Cake есть удобное средство выдачи сообщений - Flash. Но меня всегда огорчало то, что нельзя передать тип Flash. Я выделяю для себя 3 типа: ошибки ("Не удалось добавить"), подтверждение ("Добавление завершено") и просто сообщения. Оказывается, можно это сделать встроенными средствами CakePHP.
Читать полностью >>
Permalink
November 23, 2007 at 4:40 pm
· Куски кода
Приятно иметь “умные” функции, в которые всё равно что передавать - с помощью какой-то магии она сама поймёт что ей передали и что нужно с этим сделать. Например, когда нужно сделать htmlspecialchars, лучше иметь одну функцию и для одной строки, и для массива. Вот как я это решал такие задачи раньше:
Читать полностью >>
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 29, 2007 at 11:32 pm
· Офф-топик, Программирование
Я ненавижу, когда люди в блогах пишут о том, как им плохо или наоборот хорошо. Есть тема блога, так о ней и пиши, нечего о всяких пятничных кошках рассказывать. И казалось мне, что я до этого никогда не докачусь и будут у меня посты только с кучей кода, который все будут использовать и придёт ко всем счастье.
Не тут-то было - я недавно искал ещё полезные сайты о PHP и расстроился, увидев, что русскоязычных ресурсов в DMOZ очень мало. И подал заявку на то, чтобы быть редактором раздела. И меня приняли.
Теперь я почётный редактор раздела World/Russian/Компьютеры/Программирование/Языки/PHP. Я уже успел добавить cake-php.ru о моём любимом фреймворке и ещё несколько более-менее адекватных сайтов, которые тоже подали заявки, но не были рассмотрены так как у раздела не было редактора. Несколько дурацких сайтов удалил. Сейчас разбираюсь, могу ли я добавить свой блог (1. Я аффилиирован с ним; 2. Это всё же блог, а не полноценный сайт) и что делать с сайтами компаний, которые пишут под заказ PHP-скрипты.
А теперь внимание!
Если у вас есть сайт, посвящённый PHP, то перейдите сюда, нажмите ссылку “предложить URL” в верхнем правом углу и заполните анкету. Заранее должен предупредить, что по правилам DMOZ ваш сайт должен иметь интересный контент и большей частью быть посвящённым PHP. А те, кто пишут о Perl, пусть идут в #@$% 
Блоги тоже добавляйте, если их будет действительно много, то можно будет попробовать создать подраздел “Блоги”.
Оправдываясь за отсутствие кода в этом посте я обещаю со следующего поста начать разработку учебного проекта на CakePHP в котором покажу от начала до конца как разрабатываю cake-проекты. Думаю, будет интересно не только для новичков в Cake.
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
October 19, 2007 at 9:04 pm
· CakePHP, Модели
Мне понравилось тестировать как можно больше всего в CakePHP. О том как тестировать компоненты, я уже писал, теперь пришло время моделей.
В поисках подходящего the fucking manual я набрёл на Testing Models with CakePHP 1.2 test suite на bakery.cakephp.org.
И всё очень хорошо расписано, но, блин, не работает и всё. Поэтому не читайте то, что там написано. Я тщательно изучив исходники методом научного тыка сделал так, чтобы всё работало.
Читать полностью >>
Permalink