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
October 18, 2007 at 8:12 am
· CakePHP, Куски кода
В CakePHP 1.2 появилось очень много интересных вещей, которых так не хватало в 1.1. Но что теперь не хватает новой версии - это документации. Конечно, можно сказать, что ведь это бета и что надо подождать релиза, но ведь программировать надо уже сейчас. Иногда запутываешься в исходниках и хочется, чтобы кто-то объяснил как же оно работает.
Команда разработчиков CakePHP работает над новой документацией, но почему то не хочет выкладывать её в открытый доступ как исходники альфа-версий CakePHP 1.2. Я слышал, что производительность PHP можно улучшить на 500%, но Zend не делает этого из-за того, что тогда сократятся продажи Zend Accelerator. Может и разработчики CakePHP тоже думают, что так они больше заработают на консалтинге?
В любом случае, они однажды нечаянно выложили бета-версию документации по новой версии CakePHP в открытый доступ и куча людей её скачало. Я добавил к ней ещё 2 файла (pdf с cakephp.org, и jpg с какого-то блога), которые помогают лучше понять как оно работает.
Качайте:
Документация по CakePHP 1.2
UPDATE 26 Oct: Документация появилась в открытом доступе на http://tempdocs.cakephp.org/
Permalink
October 17, 2007 at 10:09 pm
· Куски кода
Если часто надо сортировать массив по разным полям, то вручную лень писать callback-функции. А иногда надо сортировать ещё по нескольким полям. Тогда можно запутаться и наделать ошибок.
Кстати, если кто-то не понял, что я такое написал, идите на php.net/uasort и читайте как PHP способствует деградации программистов, потому что теперь почти никто не напишет сам 5 разных способов сортировки массива. В комментариях к документации я нашёл интересную функцию, которую немного доработал.
Читать полностью >>
Permalink
October 17, 2007 at 12:22 pm
· CakePHP, Helpers, Куски кода
Как вы делаете отладку? В запутанных случаях я использую Zend Debugger, а в простых случаях пишу pr($variable).
Прочитав Ярослава, я вдруг осознал насколько удобно было бы не мусорить окно браузера, а красиво выводить отладочные сообщения в Firebug. Особенно приятно туда выводить сложные объекты и большие массивы так как Firebug позволяет удобно такие вещи просматривать.
Но реализация от Ярослава мне не подходит.
Читать полностью >>
Permalink
October 15, 2007 at 10:24 am
· CakePHP, Компоненты
Google - классная поисковая система, но почему то они закрыли доступ к поиску в нём через SOAP. Как говорила в далёком детстве школьная учительница английского “Shame on you”, ведь даже у Yandex есть Yandex.XML. Мы же не спамеры, нам 1000 поисков в день с головой достаточно.
Но, пока можно искать через браузер, можно искать через Browser 
Попробуем применить наш компонент в боевых условиях.
Читать полностью >>
Permalink