В виду некоторых обстоятельств (пока не буду говорить, каких) полностью перейти на Python + Django и забить на PHP не получается. В связи с этим вопрос - какой из PHP-фреймворков выбрать для изучения и последующего использования.
Кандидаты:
- Zend Framework - в принципе, если его основательно помучать, то за пару недель-месяц из него можно сделать неплохой каркас для быстрой разработки сайтов. Преимущества - красивый код, продуманность в архитектуре, гибкость (хотя во многих случаях она и не нужна). Недостатки - относительно медленный, нет всякой “помощи” разработчикам (типа скаффолдинга и прочего), нет реализации ActiveRecord.
- CodeIgniter - хороший, простой, и, самое главное, быстрый фреймворк. По скорости обгоняет все остальные (вчера был тест ZF/CakePHP/CI на линуксе с помощью ab - CI выиграл, причем с ощутимым отрывом). Есть скаффолдинг, есть куча плагинов, некоторые - достаточно интересные (в частности, rapyd).
- CakePHP - у этого фреймворка куча поклонников, много материалов по использованию и рабочих приложений. В недостатки можно записать жесткую тормознутость - он чуть ли не в 1,5-2 раза тормознее ZF (интересно, с чего бы это?).
- Советовали еще Limb, Solar, но пока их не смотрел. Еще что-нибудь предложите?
PS. Пока что склоняюсь к CI…
One Ping to “Выбор PHP фреймворка”
93 Responses to “Выбор PHP фреймворка”
-
1. mihailt Says:
December 18th, 2007 at 20:32Посмотри
Kohana – основанный на CI.
Если дружишь с pear то Solar может понравится, правда пока альфа.
Если нужно что-то совсем легковесное то frog фреймворк подойдёт. ;) -
2. FX Poster Says:
December 18th, 2007 at 20:35Нужно то, чем я буду пользоваться и не испытывать больших проблем.
-
3. Sam Says:
December 18th, 2007 at 20:36#1. Я тоже думал, что если его помучать, можно что-то вымучать… Возможно оно и можно, но:
1. Мучать придётся кучу либ, а не разрабатывающийся проект. Это надолго. У меня за пару месяцев не вышло (мучал конечно в свободное время).
2. ZF будет постоянно ставить палки и мешать мучению.
#2. CodeIgniter. Штука занятная. Работает быстро. Мануал покрывает 80% возможностей. Код ядра – лапша ещё та… Если что сбойнёт – не разберёшься просто так. rapyd штука довольно бажная…
#3. Cake. Не сказал бы, что тормознутый. Особенно если юзать кэш и вовремя откусывать ассоциации у моделей. Минус – есть довольно стабильная в работе пре-бэта 1.2. Всё время тянет на неё перейти (я уже). Но на неё нет внятной документации (у 1.1 с этим делом всё отлично).
p.s. тестирование проводилось без кэширования на “hello, world!”? Кстати, cake в дефолтном отладочном режиме работает на порядок медленней, чем в продуктивном.
-
4. FX Poster Says:
December 18th, 2007 at 20:45Кстати, cake в дефолтном отладочном режиме работает на порядок медленней, чем в продуктивном.
А чем они отличаются? :))) Если по манам судить – ничем кроме расположения директорий. :-DТестил на кейке 1.2. Кеширование вырублено. Дока по 1.2 есть тут.
-
5. FX Poster Says:
December 18th, 2007 at 20:53Гм. Щас запустил тесты на 1.2 vs 1.1. Оба кейка – out-of-box.
CakePHP 1.1: 21 запрос в секунду
CakePHP 1.1: 11 запросов в секунду -
6. FX Poster Says:
December 18th, 2007 at 21:00Кстати, установка debug в разные значения принципиально картины не меняет. В CakePHP при DEBUG == 0 – 21 запрос/сек, при DEBUG == 2 – 20 запрос/сек.
-
7. Sam Says:
December 18th, 2007 at 21:05Я не про это. Есть режим отладки, есть продуктивный. Это к папочкам никак не относится.
app/config/core.php
Configure::write(‘debug’, 0);p.s. Это не дока, а наброски.
-
8. Sam Says:
December 18th, 2007 at 21:08Так всё-таки на “hello, world!” тестирование было? ;)
-
9. FX Poster Says:
December 18th, 2007 at 21:12Configure::write(’debug’, 0);
см. выше. практически не роляет.Это не дока, а наброски.
А разница?Так всё-таки на “hello, world!” тестирование было?
Да, статическая страница размером 1.3кб. -
10. Sam Says:
December 18th, 2007 at 21:28Нашёл на чём тестировать :)
-
11. FX Poster Says:
December 18th, 2007 at 21:31Разница видна невооруженным глазом даже на таком примере. Что еще нужно-то?
-
12. Sam Says:
December 18th, 2007 at 21:37:)
Потестируй на чём-нибудь более реальном: пара связанных моделей, одна вьюшка, пара-тройка выборок. Хотя бы так.
-
13. mihailt Says:
December 18th, 2007 at 23:09У меня основной это фреймворк это CI, зенд встроить не проблема ( а куда его встроить проблема? ), да и сам CI куда угодно встраивать можно, плюс достаточно быстрый а в связке с memcached так вобще летает, с ораклом правда у него не всё в порядке и ещё минус не очень он с ajax’ом дружит.
Насчёт rapyd – сначала тоже нравилось, но глюков там как сказал Sam действительно много. ;)
Теперь про Kohanu( хотя упоминал уже) – ребята переработали CI и заточили его под пхп5 получилось очень хорошо,плюс постовляется в двух видах -minimal и standard набор минус доки мало, хотя там понятно всё в основном. :)
CakePHP – ну, не знаю я, но почему-то я его очень не люблю
ZF – как раз пару дней назад начал каркас делать, ну не выглядит что скоро всё будет и если чего-то быстро надо, то с тем же CI всё гораздо быстрее, хотя вещи на ZF точно делать можно взять хотя бы magento :)
-
14. FX Poster Says:
December 18th, 2007 at 23:28Magento – жесткая штука. Пример того, сколько нужно написать, чтобы сделать хорошее приложение. А понаписано там… Дай боже…
Kohana (кстати, по украински “кохана” – любимая ;)) – по скорости проигрывает CI. ;) А вообще – попробую, и наверно на нем и останусь. Совместимость с PHP4 мне нафиг не нужна.
-
15. FX Poster Says:
December 18th, 2007 at 23:30Кстати, насчет Framework.php от Frog’а – тем же CI и CakePHP поучиться бы у него, как нужно делать ActiveRecord.
-
16. mihailt Says:
December 18th, 2007 at 23:48дык я ещё в первом комменте про него сказал ;)
-
17. crash Says:
December 19th, 2007 at 00:43А symfony почему выбросил? Да, у него Propel надо менять на Doctrine, но зато админка часто очень помогает с мозгоимением такой рутинной задачи :)
У Limb ORM неплох, но все только-только начинается. -
18. FX Poster Says:
December 19th, 2007 at 00:48Доктрина только с виду хороша…
Создай в ней запись. Создай экземпляр записи, не присваивая записи никаких значений (типа, пустая запись). И сделай записи save. ;)По доктриновской логике запись сохранится, только в бд она не добавится. А по идее – тут должен быть Exception.
-
19. FX Poster Says:
December 19th, 2007 at 00:49Над симфони я думал… Нужно будет попробовать как-нить.
PS. А чем пропел-то не нравится? Yaml – прикольная штучка ;)
-
20. crash Says:
December 19th, 2007 at 00:58Ну после джанго писать запросы с Criteria – полнейший пиздец. Ну и YAML хз, к нему немного привыкнуть надо. И ситуация похожа на твою – хочется работать полностью на джанго, но некоторые обстоятельства требуют пхп :(
-
21. FX Poster Says:
December 19th, 2007 at 01:07Да вот так и живём…
А Yaml, кстати, очень даже популярен в ruby и rails ;) -
22. Sam Says:
December 19th, 2007 at 13:14На ror тут ориентироваться не стоит особо. Особенно если ror не нравится :)
Наиболее близки к ror сейчас CakePHP 1.2 и PHPonTrax.
-
23. Nikita Says:
December 19th, 2007 at 13:34CodeIgniter выигрывает в скорости отчасти из-за отсутствия собственного парсера структур типа YAML, а так же темплейтов. Только PHP. Active Record почти ничем не отличается от запросов MySQL, только на PHP основе. Имхо, этот фреймворк подойдёт тем, кто не хочет сильно заморачиваться с YAML, дополнительным синтаксисом шаблонов в View и т.п. Для новичков в framework’ах — идеально. Для больших проектов — не знаю.
Symfony — комбайн. Но тормоз.
ROR неплохая штука, но тоже тормоз. Плюс надо учить новый синтаксис.
-
24. FX Poster Says:
December 19th, 2007 at 14:06Sam
Я никогда не говорил, что мне ROR не нравится.
А по поводу симфони – ты на это погляди. Мне охрененно понравилось.Nikita
Эх… Все твердят – тормоз, тормоз. А в каких приложениях это проявилось? Разницы между рендерингом страницы за 0.2 секунды или за 0.01 – для конечного пользователя нет. Браузер эту страницу будет отображать ой как дольше. -
25. mihailt Says:
December 19th, 2007 at 14:13Насчет темплейтов в CI – они там хоть и хиленькие но есть ;)
-
26. Nikita Says:
December 19th, 2007 at 14:16FX Poster, с большой нагрузкой нужно больше мощного железа.
mihailt, в CI темплейты есть, но данные вставляются простым PHP. Нет лишнего синтаксиса для меток которые потом обрабатываются парсером. Соответственно скорость обработки меньше.
-
27. FX Poster Says:
December 19th, 2007 at 14:23Nikita
Нет лишнего синтаксиса для меток которые потом обрабатываются парсером.
На самом деле есть. Догадайся, как работает <?= в CI с отключенными short_open_tags.с большой нагрузкой нужно больше мощного железа.
Ну и что? CI быстр, согласен. Но мне вот интересно, есть ли такие приложения в вебе, которые бы на Symfony ложили сервер, а переписанные на CI – нормально работали бы. Я сильно сомневаюсь в том, что такие приложения вообще существуют.
Те же тесты на ab – это обычная “писькомерялка”. Если проект неоправданно тормозит – нужно искать баги/рефакторить код. А сравнение фреймворков по сути не дает ничего – в реальных приложениях разница будет малозаметной. -
28. Sam Says:
December 19th, 2007 at 14:26Скринкаст вообще по Propel :) Symfony там как-то сбоку. Propel – да. Вещь. Но немного заморочно с ней на shared-хостинге.
-
29. Nikita Says:
December 19th, 2007 at 14:29На самом деле есть. Догадайся, как работает <?= в CI с отключенными short_open_tags.
А что, работает? А я не знал ))
Ну, в принципе, ты прав. Если писать серьёзное приложение то нужно расчитывать нагрузку в соответствии с используемым софтом.
-
30. crash Says:
December 19th, 2007 at 14:39>Скринкаст вообще по Propel :) Symfony там как-то >сбоку. Propel – да. Вещь. Но немного заморочно с >ней на shared-хостинге
эм, генератор админки разве входит в поставку propel? :)
Но то что с админкой не надо писать запросы через Criteria – это да, большой плюс :) -
31. FX Poster Says:
December 19th, 2007 at 14:39Sam
А типа в симфони больше ничего нет, кроме propel? :) Вообще говоря, разница в подходах симфони и того же кейка впечатляет – в симфони всё сделано более продумано и профессионально. Тот же Doctrine в симфони подключается на ура через плагин. Сегодня пробовал.В симфони вообще применяется подход “тише едешь – дальше будешь”. Т.е. учишь долго – программишь потом быстро.
Nikita
Ага, работает. ;) Так что что-то он там все же делает. Что именно – не разбирался особо. -
32. mihailt Says:
December 19th, 2007 at 15:08Ага, работает. ;) Так что что-то он там все же делает. Что именно – не разбирался особо.
Да собственно не особо много:
if ((bool) @ini_get('short_open_tag') === FALSE AND config_item('rewrite_short_tags') == TRUE){
echo eval('?>'.preg_replace("/;*\s*\?>/", "; ?>", str_replace('<?=', '<?php echo ', file_get_contents($path))).'<?php ');
}
-
33. Sam Says:
December 19th, 2007 at 15:25FX Poster, а нафига тебе этот недоделанный AR Doctrine, когда есть нормальный ORM Propel?
В Symfony много всего интересного. Но блин тяжеловесно очень…
-
34. bewhite Says:
December 19th, 2007 at 18:55На CI заканчиваю второй проект. Работать можно. Не понравилась примитивность Active Record (по сравнению с RoR). Понравилось простота в установке и эксплуатации. Обязательно изучать плугины: сильно облегчают жизнь.
Symfony не понравился своей монументальностью. Здоровенные структуры каталогов густо посыпанные по всей площади конфигурационыыми файлами раздражают. Хотя для монструозных проектов может быть и оправдано.
Из портов RoR на PHP могу посоветовать глянуть на PHPonTrax и Akelos.
Ну а RoR – это RoR. Не холивар же здесь начинать :)
-
35. bewhite Says:
December 19th, 2007 at 18:58Кстати CI скаффолдинг в продакшене не советуют использовать даже авторы фреймворка.
-
36. FX Poster Says:
December 19th, 2007 at 19:02Ты погляди скринкаст симфони выше в комментах. Это вам не простой скаффолдинг. ;)
А вообще, имхо, с симфони можно добится очень быстрой разработки проектов. Вот только учить и пробовать его прийдется долго.
-
37. Sam Says:
December 19th, 2007 at 19:03Хе… доктрину чуть доделали… не заметил.
-
38. Sam Says:
December 19th, 2007 at 19:0870% проектов небольшие. Скорее всего их быстрее будет сделать на CI, Kohana или Frog…
-
39. FX Poster Says:
December 19th, 2007 at 19:10Ну тут как знать. Я считаю, что работа с симфоней в любом случае лишней не будет. ;)
-
40. Alex Says:
December 23rd, 2007 at 08:23Кто-нибудь рассматривал-тестировал-использует Prado Framework? Какое впечатление? Интересны отзывы об этом фрейворке.
http://www.pradosoft.com -
41. FX Poster Says:
December 23rd, 2007 at 14:06Я смотрел, правда давно и очень поверхностно. Тогда показался вполне нормальным. Но копать глубже не стал.
-
42. FX Poster Says:
December 24th, 2007 at 22:23Если честно, Model в CI мне не нравится.
-
43. mihailt Says:
December 25th, 2007 at 18:14хмм.. а чем именно??
-
44. FX Poster Says:
December 25th, 2007 at 21:28Как ни странно, но логикой. :) Хочется красивый ActiveRecord, а получаем фиг знает что.
Ведь что собой ActiveRecord представляет – класс, обьекты которого полностью представляют из себя записи таблицы – их можно сохранять, на них навешиваются валидаторы и прочее. И набор методов, которые бы возвращали обьекты этого класса. В PHP-фреймворках это есть разве что в симфони.
-
45. FX Poster Says:
December 25th, 2007 at 21:29Вру, в cakephp есть, но тоже как-то… Неправильно…
-
46. Andrey Says:
December 25th, 2007 at 22:39В Symfony тоже убогий ORM(Propel, Doctrine). А вообще многим надо от FW, тока адекватную модель, а всё остальное ставится на 2-ой план.
-
47. FX Poster Says:
December 25th, 2007 at 22:43Покажи, где убогость. ;) Что Propel, что Doctrine – лучшие из тех, что я видел ORM’ы на PHP.
-
48. Andrey Says:
December 25th, 2007 at 23:21PDO в качестве DBAL, всё же накладывает некие ограничения(поддержка хостерами, PDO не может учитывать реализацию конкретного драйвера, к Oracle например и т.д.).
Отношения 1 к 1, я так и не увидел.
к примеру в Propel отношения сделаны вообще убого….
Выбор драйвера всё же должен быть доступен разработчику… -
49. FX Poster Says:
December 25th, 2007 at 23:27Андрюх, ну обсуждали ж уже. :) PDO поддерживается большинством нормальных хостеров.
PDO не может учитывать реализацию конкретного драйвера
В смысле?Отношения 1 к 1, я так и не увидел.
Может быть. Не смотрел. В Doctrine есть.к примеру в Propel отношения сделаны вообще убого….
Аргументируй? Имхо – вполне даже ничего. Вчера игрался с симфоней – всё там норм.Выбор драйвера всё же должен быть доступен разработчику…
Он доступен. Но только через PDO. :) -
50. FX Poster Says:
December 25th, 2007 at 23:29Почитай, кстати. Достаточно интересно. Проблема в том, что рассказывать, какие они хорошие, они умеют. А вот удобства я от Limb’а по сравнению с Symfony не увидел.
-
51. Andrey Says:
December 25th, 2007 at 23:49Посмотри oci_*, намного больше функционала чем в PDO_OCI…
да вроде в PDO нет mysqli драйвера((((
Many-to-Many Relationships in Propel вот 1+n запросов мне и не нравится….P.S. вот LImb, мне ближе по структуре, чем Symfony!
-
52. FX Poster Says:
December 26th, 2007 at 00:25Ну, для начала – ты реализуй DBAL, чтобы абсолютно все возможности каждого драйвера были задействованы. ;)
Many-to-Many Relationships in Propel вот 1+n запросов мне и не нравится
Тут двояко можно рассматривать. Для начала 1+n запросов могут быть не намного медленнее, чем 1, но очень большой:SELECT book.*, reader.* FROM book LEFT JOIN book_reader_ref ON(book_reader_ref.book_id = book.id) LEFT JOIN reader ON(reader.reader_id = book_reader_ref.reader_id)БД тоже нужно время, чтобы это всё обработать. Это раз. И два – А если тебе join’ить не нужно будет, то что, тоже всё выбирать?
-
53. Andrey Says:
December 26th, 2007 at 00:55Ну, для начала – ты реализуй DBAL, чтобы абсолютно все возможности каждого драйвера были задействованы.
планирую на конец января, но поддержка Oracle будет наврятли )))
Тут двояко можно рассматривать. Для начала 1+n запросов могут быть не намного медленнее, чем 1, но очень большой
не буду спорить, просто опять же нету выбора((((
+ IN() тут разве не пойдет? -
54. FX Poster Says:
December 26th, 2007 at 01:05планирую на конец января, но поддержка Oracle будет наврятли )))
Если реализовывать все возможности каждого драйвера – про легкую смену баз данных можно забыть.IN() тут разве не пойдет?
SELECT reader.* FROM book_reader_ref LEFT JOIN reader ON(reader.reader_id = book_reader_ref.reader_id) WHERE book_reader_ref.book_id IN(<тут список book.id>)Можно, но первый вариант более гибкий.
-
55. mihailt Says:
December 26th, 2007 at 01:23кстати есть такая штука как junction ( http://www.junctionphp.com) достаточно легко интегрируется в любой проект
-
56. FX Poster Says:
December 26th, 2007 at 01:32Документации нормальной нет? :(
-
57. FX Poster Says:
December 26th, 2007 at 01:41Да и чем она лучше Propel’а и Doctrine’ы?
-
58. Sam Says:
December 26th, 2007 at 12:55Junction в дремучей бэте.
-
59. mihailt Says:
December 26th, 2007 at 15:46доки у неё немного в странные, но почитав wiki
всё быстро становится ясно.установка на мой взгляд очень простая да и работает довльно шустро
beta – это факт, но при этом работает стабильно
-
60. Zeke Fast Says:
January 30th, 2008 at 07:1445. FX Poster
В PHP-фреймворках это есть разве что в симфони.Посмотри Prado – замечательная реализация AR, выполняющая возложенные на неё задачи! Не больше ни меньше. С Propel её сравнивать без смысла ориентация у неё другая. Propel претендует на глобальную замену запросам, AR в Prado представляет же альтернативу маленьким и простым запросам к бд. В Prado для монстрообразных запросов есть SQLMap.
52. Andrey
P.S. вот LImb, мне ближе по структуре, чем Symfony!Ознакомься с Prado они очень похоже, как я понял. Оба WACT подобные темплейты используют если мне не изменяет память ….
-
61. FX Poster Says:
January 30th, 2008 at 22:47Нет, Limb больше на симфонию похож как раз. :) Только гораздо менее доделанный, ИМХО.
-
62. Sam Says:
January 31st, 2008 at 19:54Но сами Limb-овцы утверждают обратное… :)
-
63. Tamerlan Says:
February 28th, 2008 at 23:20А как вы тестите скорость работы?
-
64. FX Poster Says:
February 29th, 2008 at 00:07Apache Benchmark
-
65. Yevgeniy Says:
June 25th, 2008 at 14:06Seagull PHP Framework, особенно для тех кто “очень” дружит с pear ;)
-
66. FX Poster Says:
June 27th, 2008 at 02:52Спасибо, я уже выбрал Symfony. :)
-
67. Валерий Says:
December 11th, 2008 at 15:04Хоть и прошло много времени после поста, но посмотри на Kohana. Тот же игнайтер, только с грамотным кодом. В игнайтере в коде куча собачек, как его можно считать нормальным
-
68. FX Poster Says:
December 12th, 2008 at 18:10Как по мне – те же яйца.
-
69. xoma Says:
December 13th, 2008 at 00:20yii как вариант…..
-
70. relo_san Says:
December 31st, 2008 at 10:22FX Poster Says: Magento – жесткая штука. Пример того, сколько нужно написать, чтобы сделать хорошее приложение. А понаписано там… Дай боже…
Magento – это пример того, как можно написать объектно-ориентированный Оскоммерц с довольно красивым кодом, но тем не менее представляющим собой невъебенный пиздец. Через день работы с ним – хочется убить одного-двух его разработчиков, через неделю траха с этим гавном – хочется спалить нахуй фирму, которая его создала… Более хаотичной и ебанутой архитектуры я еще не видел за много лет программинга… Отсутствие сколько-нибудь вменяемой документации и комментов в коде прекрасно дополняют этот пиздец.
-
71. relo_san Says:
December 31st, 2008 at 10:36Да, по теме: На данный момент из фреймворков на пхп вижу только два варианта под разные задачи. Если нужно сделать что-то небольшое и быстрое с небольшими затратами средств – CI. Внутри он конечно гавнецо, но в коммерческом использовании это не важно. Если задача предполагает большой проект с поддержкой и развитием – то Symfony, желательно тщательно отбирая программистов, чтобы гавна под ним не написали. Для эксклюзивных задач аля “фейсбук” или “фликр” фреймворки не подходят, чтобы достичь низкой ресурсоемкости там нужно писать свой каркас, максимально быстро работающий и не выполняющий ничего лишнего, либо существенно переписать ту же Symfony, убрав в ней некоторое количество ресурсоемкой гибкости.
К сожалению, нормальных фреймворков (аналогов турбогирс, твистед и пайлонс в пайтоне) на пхп пока нет и не известно, будут ли когда-нибудь. Выбирать приходится только из попсы. Равно как и хороших орм, до уровня sqlalchemy пока из пхп-шных орм даже близко никто не приблизился. -
72. FX Poster Says:
January 31st, 2009 at 05:54relo_san
это типа гон на пхп? :) -
73. relo_san Says:
January 31st, 2009 at 07:23да нет, гнать я ни на что/кого не собирался, тем более что сам пишу на пхп последние 5 лет :) Это мое видение текущего состояния развития языка и продуктов на нем. Перешел бы на пайтон, но лень мешает :) Плюс опыт на пхп большой, перелазить на другой язык особого смысла нет. Но не появись вовремя симфони – перелез бы, потому что говнокод уже в печенках сидит. А так можно жить, и даже вполне себе неплохо, и не смотреть при этом в продукты типа magento.
-
74. FX Poster Says:
January 31st, 2009 at 07:42ясно. :) А я в последнее время запал на руби, но… Всё как и у тебя – работа-то на пхп, на другое времени не хватает :)
-
75. relo_san Says:
January 31st, 2009 at 08:20руби красивый язык, но ему, ввиду его молодости, пока не хватает хороших готовых решений, аналогичных пайтоновским фреймворкам и компонентам, типа того же мако и скулалчеми. Он мне тоже очень нравится, но писать на нем что-то коммерческое пока неудобно и следовательно неинтересно.
-
76. FX Poster Says:
January 31st, 2009 at 09:10Как по мне, Sequel, AR и DataMapper вполне себе уделывают SQLAlchemy :)
-
77. Виктор Says:
January 31st, 2009 at 15:18ему, ввиду его молодости, пока не хватает хороших готовых решений
Это что-то из серии “Мифы древней Греции”? :)Про скулачеми уже сказали а аналогом мако может быть Radius: http://radius.rubyforge.org/
-
78. relo_san Says:
January 31st, 2009 at 18:30Холивары ненавижу и спорить не собираюсь. Возможно я что-то упустил, я не смотрел в сторону руби последние года полтора, не до этого было.
Надеюсь, вы не относите рельсы к хорошим решениям :) Если есть качественные фреймворки под руби, готовые для коммерческого использования – назовите их, с удовольствием посмотрю при возможности. -
79. FX Poster Says:
January 31st, 2009 at 18:56Ммм. А чем плохи рельсы?
Другие фрейморки: Sinatra, Merb.
-
80. Виктор Says:
January 31st, 2009 at 21:27Надеюсь, вы не относите рельсы к хорошим решениям :)
Что вы, что вы! Рельсы ужасны. Они опасны для жизни. Пятеро уже поплатились жизнью за то, что использовали их. Несколько десятков людей пропали без вести. Список жертв постоянно увеличивается. Следите за выпусками новостей. :) -
81. relo_san Says:
January 31st, 2009 at 23:16:) фанатизм – это плохо (это я к последнему комментарию).
что касается рельс – у них много плюсов, до тех пор, пока задача не выходит за некие стандартные рамки. а если чуть дальше – все, писец. По крайней мере когда я ими интересовался – ситуация выглядела именно так. Основная проблема рельс собственно заложена непосредственно в их названии – с рельс не съедешь в сторону. Недостаточная гибкость в возможностях архитектуры. В сравнении скажем с Pylons или Twisted, на котором можно одинаково спокойно и без извращений реализовать куда более широкий круг задач. Более широкие возможности означают меньшую головную боль и больший охват клиентов, потому что программист, дабы сэкономить время и силы, обычно пользуется чем-то одним в арсенале и не станет перелазить на другой фреймворк ради одного проекта, который не вписывается в формат возможностей фреймворка, который он использует. Поэтому чем больше гибкости у фреймворка – тем выгоднее он для программиста. Т.е., если бы я перелазил на что-то с пхп – я бы ушел в Pylons (он к сожалению пока еще несколько сыроват, хотя некоторые его уже успешно используют в высоконагруженных серьезных проектах) или Twisted.
P.S. Учитывая, что тема все же касалась изначально PHP фреймворков – думаю имеет смысл прекратить тут непрофильную дискуссию :) Тем более сильно смахивающую на холивар.
P.S.2. Спасибо за список фреймворков, про Merb немного слышал, про Sinatra даже не слышал. Видимо они из свежих. Посмотрю, возможно понравится. -
82. Fusion Says:
April 2nd, 2009 at 15:19Yii
http://www.yiiframework.com/:) people say it’s great!!!
-
83. andryk Says:
April 15th, 2009 at 15:15Я работал достаточно долго с CodeIgniter, Kohana. Более-менее поигрался с Yii. Вот что я могу сказать. CI – да, когда то для меня это было фантастикой. Но сейчас я вижу что он недостаточно функционален, много нужно дорабатывать, поддержка пхп4. Kohana – в принципе очень даже хорош. Но оочень слабенькая документация, хотя покопавшись 1 день в коде все становится понятным. Yii – многофункциональный, с красивым кодом и расширяемостю. Но сыроват пока. В будущем нужно еще раз посмотреть.
А пока что я изучаю Symfony. Не буду ее лишний раз разхваливать, но просто все что приходилось ранее делать ручками, тут уже реализовано. Автоматические темплейты, кодогенерация, layout, интеграция с двумя ORM.
Еще немного работал с Zend. Все таки, имхо, это не фреймворк, а набор отличных классов. По этому zend нельзя сильно сравнивать, он немного в другой нише. -
84. Валерий Says:
April 16th, 2009 at 09:24Думаю скоро все равно перейдешь на Kohana. Я на симфони писал почти год. Я не фанат бороться за милисекунды, для меня куда более важнее боротся за скорость разработки, но Symfony даже меня раздражает своей тормознутостью. У нас сервер с двумя 4-х ядерными ксеонами иногда лежит. Хотя посещаемость 3000 хитов в сутки (это просто смешно).
-
85. relo_san Says:
April 16th, 2009 at 09:44Валерий, это вы просто не тем местом на Symfony программируете. Рассказывать о тормознутости может только человек, который ничего не понял в фреймворке и не научился им пользоваться, кодил под ним “абы работало”. Вы выложите исходники вашего проекта, который при 3к хитов в сутки ложит четырехядерный ксеон, мы дружно посмеемся. У меня на несчастном VDS с одним гигагерцем проца и гигом оперативы средней сложности проект на Symfony почему-то позволяет обслуживать несколько кило _уников_ в сутки и сервер при этом не грузится более чем на 40 – 50% в пике и 10 – 20% в среднем, на нем еще пара проектов и трак на пайтоне спокойно висят. Доктор, что я не так делаю?
-
86. Валерий Says:
April 16th, 2009 at 14:55Исходники конечно же я давать небуду. Но скажу просто так – приложение делает простую задачу – работа с формами, новости и т.д. Сдесь намудрить тяжело. Машина ложится лишь иногда. Есть страницы которые требуют 15-20 МБ памяти и время 1-2 сек на генерацию. Это вы считаете нормально?. С XCache конечно дело получше, но все равно несравнится с Kohana. Покажите свою страницу простую и расскажите сколько она потребляет памяти и времени на генерацию, и тогда посмотрим вместие и посмеемся.
-
87. Валерий Says:
April 16th, 2009 at 14:57Сынок будешь так разговаривать – поди убейся головой об стенку.
-
88. relo_san Says:
April 16th, 2009 at 15:25папаша, не учите меня пожалуйста, как разговаривать, ладно? :)
Если вас что-то оскорбило – имхо это ваши личные проблемы. Я высказал свое мнение по поводу вашей безосновательной характеристики. Я, заметьте, даже на “ты” не переходил. Поэтому если вас что-то не устроило в моем посте – можете последовать вашему же предложению на ближайшей стене.
Теперь по существу. Просто так говорить не нужно. Хотите показать конкретику – сделайте простой тестовый шаблон, протестируйте и выложите результаты тестов, с подробным указанием конфигурации, тестируемого исходника и полученных результатов. А просто так рассказывать что “ну очень тормозной, прям валится” – смысла не вижу. Работа с формами? Я не знаю где у вас и на какой форме нужно много времени на генерацию и 20 метров оперативы… Я таких форм пока не встречал. Если мне будет не влом и появится свободное время – я на выходных сделаю простую форму полей на 15, связанную с парой табличек пропелом и замерю генерацию.
Что касается новостей – простите, а слово “кеширование” вам возможно знакомо? Или вы каждому посетителю новости каждый раз из базы тянете и генерите?
Приложение на VDS, про которое я говорил – сайт с примерно 18 тысячами статей, ни малейших проблем на значительно менее мощной конфигурации я не наблюдаю, все работает как часы.
Что касается распространенной практики использования фреймворка – простите, насмотрелся. Гавно можно написать на любом фреймворке и любом языке. И гавна этого я видел за свою практику – дофигища, особенно на PHP. И в Symfony в шаблонах видел строчки вида “… $_REQUEST …”. Поэтому если у человека вдруг обычное несложное приложение жрет ресурсов в десяток раз больше положенного – то либо там программист нуб, либо сисадмин, который сервер настраивал – нуб, либо оба. Обижаться или нет – ваше личное дело. -
89. crash Says:
April 16th, 2009 at 15:27TEH DRAMA
-
90. relo_san Says:
April 16th, 2009 at 15:34Вдогонку. С xcache не работал, а вот APC кешит опкод на ура и вопрос с тормозами из-за огромных многометровых простыней ORM решается. Также, если у вас часто нужно работать с базой и нельзя многое переложить на кеширование – не рекомендуется использовать Доктрину, она раза в два тормознее Пропела. Для критических приложений, где объем работы с базой очень высок и нужно максимальное быстродействие/возможности – можно обойтись вообще без ORM и работать напрямую с PDO, хотя это точно не ваш случай.
-
91. Валерий Says:
April 16th, 2009 at 17:25Кеширование в симфони отдельная тема. Где к примеру таги, вместо этого remove_pattern(). Потом, если я хочу кешировать не шаблон а что нибудь другое, то что предлагает мне симфони? сделать так new sfCachFile. А где же фабрика? А как легко потом переключить кеш на другой бэкенд?. Для этого придется писать свою фабрику. Разве это удобсто?.
-
92. Валерий Says:
April 16th, 2009 at 17:27Посмотри на нормальное кешированеи, например в ZF или Kohana.
-
93. Валерий Says:
April 16th, 2009 at 17:46И повторяю просьбу – покажи пример стриницы и раскажи нам сколько она жрет памяти и времени. А потом поговорим.






April 3rd, 2008 at 19:15
[...] Продолжение, а самое главное камменты читаем тут [...]