Для тех, кто уже успел познакомиться с фреймворком.
CodeIgniter vs. CakePHP
6 мин
1.7KНиже находится перевод статьи Джонатана Снука (Jonathan Snook) о преимуществах и недостатках двух популярных PHP фреймворков CakePHP и CodeIgniter.
Прежде чем публиковать такого рода публикации, я обычно опасаюсь за всякого рода фанатиков, которые неадекватно реагируют на подобные сравнения. Поэтому стараюсь максимально объективно подойти к повествованию. Все выводы в статье сделаны только на основании фактов.
Я сопоставляю эти две платформы друг против друга, но безоговорочного победителя здесь нет. Обе имеют как сильные, так и слабые стороны, а также полные провалы в той или иной опции, которая для вас может оказаться необходимой.
Прежде чем публиковать такого рода публикации, я обычно опасаюсь за всякого рода фанатиков, которые неадекватно реагируют на подобные сравнения. Поэтому стараюсь максимально объективно подойти к повествованию. Все выводы в статье сделаны только на основании фактов.
Я сопоставляю эти две платформы друг против друга, но безоговорочного победителя здесь нет. Обе имеют как сильные, так и слабые стороны, а также полные провалы в той или иной опции, которая для вас может оказаться необходимой.
Несколько сайтов на одном движке CakePHP
2 мин
1.1KИ так. Объясняю популярно. Ибо сам пока разобрался потратил ни 10 минут. Делаем на примере условного сайта "Travel".
- Движок CakePHP [cakephp/cake и cakephp/vendors] я перенёс(!) в /var/www/cake.core (/var/www у меня apache wwwroot) — то есть, этот движок будет использоваться для всех проектов и не будет меняться до следующей версии CakePHP.
- Содержимое cakephp/app/webroot переносим(!) в /var/www/travel (в этой папке у нас будут все css, images, js, uploads и т.д.)
- Всё из cakephp/app (там уже нет webroot, мы его прошлым шагом от туда перенесли) переносим(!) в /var/www/travel.app (там у нас будет вся логика и темплейты. MVC то есть).
Tips & tricks CakePHP #2
3 мин
1.5KВ связи с выходом пре-беты 1.2 второй выпуск tips&tricks. Продолжаем знакомить Вас с идеями и проблемами версии 1.2, особенностями пре-беты, с которыми мы встретились в процессе разработки социальной сети.
Кроме того, мы завели себе блог на Хабре — присоединяйтесь, задавайте вопросы. Думаю, нам есть что обсудить.
Кроме того, мы завели себе блог на Хабре — присоединяйтесь, задавайте вопросы. Думаю, нам есть что обсудить.
CakePHP 1.2 beta
1 мин
706Прошел год, как была анонсирована версия 1.2 и вот оно — наконец-то перешли рубеж альфы и ушли в бету. По мнению разработчиков, текущий релиз — лучший из всех предыдущих. В процессе разработки постоянно находился баланс между удобством и расширяемостью.
CakePHP. Разделение доступа без компонента ACL.
2 мин
649В данный момент я пишу систему на связке CakePHP и MS SQL. Сначала попробовал использовать стандартный компонент ACL, но выяснилось, что CakePHP не полностью поддерживает MS SQL (по крайней мере в этом компоненте). Поэтому пришлось придумать следующий метод разделения доступа.
Стираю языковые барьеры. Бесплатно
2 мин
1.1KПримерно так можно озаглавить вещи, которые я делаю в свободное время вот уже несколько месяцев. После руссификации мануала по CakePHP я занялся переводом на русский язык документации по другому фреймворку.
Обсуждаем платформы… индивидуальный подход
3 мин
900Публикую здесь один из комментариев к моей записи «CodeIgniter vs. CakePHP». Может получиться интересная беседа. Да и человеку нужно помочь...
Нужен совет специалистов.
О себе. Я менеджер — разработчик — бизнес аналитик, не знаю, кто больше, но точно не в сторону программиста…
Знаю meta-CMS DJEM (к сожалению, платная и дорогая, 22 тыс. рублей+ за лицензию) и CMF ModX (к сожалению, там не всё так круто, как нам хочется). Хочу изучить ещё 1 CMF, выбор между Symfony, Django и CodeIgniter. CakePHP почему-то не нравится. Не хочу, не буду, уберите — это на подсознательном уровне, наверное. :)
Нужен совет специалистов.
О себе. Я менеджер — разработчик — бизнес аналитик, не знаю, кто больше, но точно не в сторону программиста…
Знаю meta-CMS DJEM (к сожалению, платная и дорогая, 22 тыс. рублей+ за лицензию) и CMF ModX (к сожалению, там не всё так круто, как нам хочется). Хочу изучить ещё 1 CMF, выбор между Symfony, Django и CodeIgniter. CakePHP почему-то не нравится. Не хочу, не буду, уберите — это на подсознательном уровне, наверное. :)
CakePHP: Добавляем «каменты» в блог.
4 мин
2K<p />Итак, мы решили начать программировать «по понятиям» и наконец разобраться с каким-нибудь фреймворком.
<p />Перед нами встаёт мучительный выбор, какой же фреймворк для этого использовать. Для этого можно найти кучу статей, обзоров, сравнительных анализов скорости, производительности, удобства использования и установки, а можно просто набрать в гугле «php framework» и кликнуть
<p />Перед нами встаёт мучительный выбор, какой же фреймворк для этого использовать. Для этого можно найти кучу статей, обзоров, сравнительных анализов скорости, производительности, удобства использования и установки, а можно просто набрать в гугле «php framework» и кликнуть
Вышел CakePHP 1.2 RC1
1 мин
718Вышел первый релиз-кандидат php-фреймворка CakePHP 1.2.7119 RC1. Данная версия разрабатывается уже более двух лет и включает в себя большой список изменений. С основными новинками можно ознакомиться здесь.
CakePHP 1.2 RC2
1 мин
780Вышел второй релиз кандидат фреймворка CakePHP. По большей части данное обновление включает в себя багфиксы и оптимизацию производительности. Не смотря на то, что и предыдущая версия была достаточно стабильной, в новой версии стабильность должна быть ещё выше. Помимо других изменений, проведено удаление устаревших методов, за исключением findAll, findCount и других find*-методов. Тем не менее, рекомендуется всё же заменить их на find('all'), find('count') и т.д., так как в будущем скорее всего и они будут удалены.
CakePHP 1.2 Containable Behavior
8 мин
1.3KНовый релиз замечательного фреймворка CakePHP принесет еще одну фичу, которая может сильно упростить жизнь разработчикам — Containable Behavior. Особенно эта фича будет полезна при работе с моделями с большим количеством ассоциаций.
Настройка autocomplete для CakePHP в NetBeans 6.5
1 мин
907Не секрет, что автокомплит в редакторах очень удобная штука, но в CakePHP слишком много магии (соглашений об именовании), чтобы он смог разобраться что к чему. Сейчас я расскажу, как объяснить автокомплиту NetBeans некоторые очень полезные вещи.
полезные вещи
полезные вещи
DebugKit для CakePHP
1 мин
1.5KНа GitHub (а именно здесь) уже некоторое время лежит отличный плагин для CakePHP, который значительно облегчает разработку на тортике.
Он добавляет на страницу в верхний правый угол вот такую панель:

читать дальше в моем блоге
Он добавляет на страницу в верхний правый угол вот такую панель:

читать дальше в моем блоге
Named Scope для CakePHP
1 мин
821В Ruby on Rails есть такая полезная вещь, как named scope, которая предоставляет элегантный и удобный способ поиска данных в модели. Для наглядности пример:
и при чем тут CakePHP?
class User < ActiveRecord::Base
named_scope :active, :conditions => {:active => true}
named_scope :inactive, :conditions => {:active => false}
end
# Использование
User.active # то же самое, что и User.find(:all, :conditions => {:active => true})
User.inactive # то же самое, что и User.find(:all, :conditions => {:active => false})
и при чем тут CakePHP?
Класс Set — повелитель массивов
1 мин
1.1KСегодня кстати, вышел четвертый релиз-кандидат CakePHP 1.2. Более 300 изменений и все такое. Но сейчас речь не об этом.
Оказывается в недрах CakePHP давно живет класс Set, который активно используется в ядре и редко используется конечными пользователями. А между прочим зря.
О чем это ты?
Оказывается в недрах CakePHP давно живет класс Set, который активно используется в ядре и редко используется конечными пользователями. А между прочим зря.
О чем это ты?
CakePHP 1.2 final
1 мин
803Вчера, на католическое рождество, команда CakePHP представила финальный релиз ветки 1.2. С момента первого релиза для разработчиков прошло ровно два года.
За это время фреймворк стали использовать действительно большие проекты (https://addons.mozilla.org/, http://www.livemocha.com/, http://www.zeadoo.com/). Появилось несколько компаний, специализирующихся на разработке с его помощью (http://cakedc.com, http://debuggable.com, http://sanisoft.com)
Полный список изменений и доступных фич вот тут
За это время фреймворк стали использовать действительно большие проекты (https://addons.mozilla.org/, http://www.livemocha.com/, http://www.zeadoo.com/). Появилось несколько компаний, специализирующихся на разработке с его помощью (http://cakedc.com, http://debuggable.com, http://sanisoft.com)
Полный список изменений и доступных фич вот тут
Капля, Унция и Ведро
2 мин
556Это суперски, что на Хабре есть обучающие статьи. Так сказать: изучаем по шагам: Ruby по каплям, Питон унциями и что-то (забыл что) вёдрами. А… Чуть не забыл — Java — чашками.
На будущее можно предложить следующие единицы измерения:
Можно, также, переключиться на скорость измерения: изучаем javascript со скоростью две функции в час, или разгоняем PHP до 50 строк в секунду.
Здорово, что есть учебные материалы, и странно, что так неоригинально придумывают названия. Видимо, чтобы взгляд цепляло? Но мне кажется, если человеку интересен Python то всё равно — каплями его выдавливают, или вёдрами льют :)
Было бы очень метко отмечать уроки в %, однако, все кто публикует (я так думаю) вряд ли имеют чёткий план изучения того или иного языка программирования. Поэтому для кого-то это будет 20%, а кто-то поймёт что язык стал понятен, а фунции — всегда можно будет глянуть в api документации.
У меня, по-крайней мере, на определённом этапе изучения «чего угодно» наступает момент «просветления», после которого любой учебный курс становится уже избыточным, а вопросы, которые возникают в ходе программирования находятся на грани возможностей языка (или, если быть точным, моих возможностей) — и почти с вероятностью 99% не раскрываются ни в каких учебных курсах, и что бывает совсем обидно — практически не предусмотрены во фреймворках.
Ну а что поделаешь? Типичные задачи решаются базовыми функциями, расширенные — приходится самому писать функции. Но самые интересные задачи — приходится ковыряться самому — от начала и до конца.
Кстати, как у вас — я не знаю, у меня в области веб-программирования, самое интересное начинается именно при построении запросов к базе данных. Именно хитрые выборки со всевозможными ускорениями и оптимизацией — вот что тонкое место. А всё остальное (я пишу на CakePHP) — в основном настолько тривиально, что без особых хлопот «портанётся» на любой другой язык или фреймворк. Мне так кажется.
А вам?
На будущее можно предложить следующие единицы измерения:
- карат
- грамм
- милилитр (не капля!)
- фунт (это для среднего уровня)
- пуд (это уже при изучении на уровне senior)
Можно, также, переключиться на скорость измерения: изучаем javascript со скоростью две функции в час, или разгоняем PHP до 50 строк в секунду.
Здорово, что есть учебные материалы, и странно, что так неоригинально придумывают названия. Видимо, чтобы взгляд цепляло? Но мне кажется, если человеку интересен Python то всё равно — каплями его выдавливают, или вёдрами льют :)
Было бы очень метко отмечать уроки в %, однако, все кто публикует (я так думаю) вряд ли имеют чёткий план изучения того или иного языка программирования. Поэтому для кого-то это будет 20%, а кто-то поймёт что язык стал понятен, а фунции — всегда можно будет глянуть в api документации.
У меня, по-крайней мере, на определённом этапе изучения «чего угодно» наступает момент «просветления», после которого любой учебный курс становится уже избыточным, а вопросы, которые возникают в ходе программирования находятся на грани возможностей языка (или, если быть точным, моих возможностей) — и почти с вероятностью 99% не раскрываются ни в каких учебных курсах, и что бывает совсем обидно — практически не предусмотрены во фреймворках.
Ну а что поделаешь? Типичные задачи решаются базовыми функциями, расширенные — приходится самому писать функции. Но самые интересные задачи — приходится ковыряться самому — от начала и до конца.
Кстати, как у вас — я не знаю, у меня в области веб-программирования, самое интересное начинается именно при построении запросов к базе данных. Именно хитрые выборки со всевозможными ускорениями и оптимизацией — вот что тонкое место. А всё остальное (я пишу на CakePHP) — в основном настолько тривиально, что без особых хлопот «портанётся» на любой другой язык или фреймворк. Мне так кажется.
А вам?
Связывание таблиц в Model::find()
7 мин
2.2K
Перевод
Перевод заметки на Bakery от Nate, одного из авторов CakePHP. Мне она показалась интересной и иллюстрирующей как же работает этот фреймворк, но сложной для понимания на английском языке.
В этой заметке описывается малоизвестный приём, позволяющий осуществлять связывание таблиц (joins) в запросах CakePHP напрямую, не используя методы bind и unbind.
Внимание: Приём сработает только если вы используете новый синтаксис Model::find(), который имеет всего два параметра. В противном случае читайте Cookbook или API.
В этой заметке описывается малоизвестный приём, позволяющий осуществлять связывание таблиц (joins) в запросах CakePHP напрямую, не используя методы bind и unbind.
Внимание: Приём сработает только если вы используете новый синтаксис Model::find(), который имеет всего два параметра. В противном случае читайте Cookbook или API.