Какие фреймворки PHP могут обрабатывать крупномасштабные приложения? - PullRequest
3 голосов
/ 01 декабря 2010

Во многих разговорах по фреймворкам обсуждается простота использования и скорость разработки. Эти вопросы важны, но они, как правило, исходят от разработчиков, которые снова и снова создают новые проекты с низким трафиком для разных клиентов. В этой ситуации важно иметь возможность выбить твердое решение для клиента как можно быстрее. Я сам работал в этой области в течение многих лет и с большим успехом использовал множество сред MVC.

Но как быть, когда вы работаете над одним приложением с высоким трафиком в течение нескольких лет? Теперь простота использования и скорость разработки начинают отставать от масштабируемости и скорости. Неважно, насколько это просто в использовании или как быстро вы можете писать код, если приложение не работает из-за скорости и масштаба.

Мой вопрос к любому крупномасштабному разработчику: полезны ли фреймворки в этой ситуации и, если да, которые успешно использовались в ситуациях крупномасштабного производства?

общие рамки: Zend, Symphony, Codeignitor, CakePHP

Ответы [ 5 ]

12 голосов
/ 01 декабря 2010

Когда речь идет о больших приложениях, вам следует беспокоиться не о структуре, а о базе данных.

Сначала решите, какую базу данных вы собираетесь использовать, затем найдите платформу, которая имеет хорошую поддержку для этой базы данных.Если вы хотите, чтобы ваше приложение масштабировалось до неограниченного размера и все еще работало быстро, вы должны исключить Mysql в качестве опции с самого начала.

Ищите решение NoSQL, найдите то, что вам нравится.Кассандра, MongoDB, CouchDB являются топ-3 выбора, но есть и другие.Все они довольно новые, но некоторые из крупнейших сайтов в Интернете используют их.Сделайте свое исследование, выберите базу данных, затем выберите рамки.

Я не знаю большинства фреймворков, я посмотрел Zend и Symphony2, оба поддерживают MongoDB, оба довольно быстрые.Я хотел бы взглянуть на любой из этих двух, нет причин искать в другом месте.

Но на самом деле, если вы планируете писать действительно большое приложение, вы должны действительно написать свой собственный код и не использовать каркасы.Таким образом, вы будете иметь только те функции, которые вам нужны, и ни одну из функций, которые вам не нужны.Помните, что большинство фреймворков предлагают вам гораздо больше функциональности, чем вам действительно нужно.Ненужные функции обычно замедляют работу вашего приложения.если вам нужно быстрое приложение, оно должно быть скудным, делать только то, что вам нужно, и ничего больше.

3 голосов
/ 01 декабря 2010

symfony используется Yahoo на своем сайте закладок и ответов.Вы должны заметить, что они отказались от ORM , поэтому база данных остается главной проблемой для масштабирования (как заявлено Дмитрий ), вы можете прочитать больше об этом здесь .

Dailymotion также использует symfony .

Мой вопрос к любому крупномасштабному разработчику: есть ли фреймворки в этой ситуации, и если да, то какиеуспешно использовались в крупномасштабных производственных ситуациях?

Я видел, как приложения на базе Symfony успешно масштабируются до многих тысяч пользователей, поэтому это сильный кандидат.

2 голосов
/ 01 декабря 2010

Создателю php больше всего понравился codeigniter (в прошлом), потому что это самый быстрый фреймворк, когда он тестировал его.Вы можете прослушать видео об этом более здесь .

1 голос
/ 01 декабря 2010

Чтобы добавить к тому, что уже сказали другие:

Вы можете начать с любого фреймворка в качестве отправной точки.По мере того, как ваше приложение становится больше (и я имею в виду, БОЛЬШОЕ), вы можете начать модифицировать фреймворк и настроить его в соответствии с конкретными потребностями вашего приложения.В конце концов, фреймворки - это общее решение большинства проблем.

Вы должны выбрать тот фреймворк, который вам наиболее удобен, и адаптировать его к вашим потребностям, если ваше приложение когда-либо станет очень большим.Бесполезно беспокоиться о миллионе посетителей, когда их еще нет.

0 голосов
/ 24 октября 2013

WordPress.com является 22-м по популярности веб-сайтом в мире и работает на (как вы уже догадались) WordPress, который представляет собой фреймворк с большим количеством накладных расходов.Так что это определенно возможно.

Независимо от того, используете вы фреймворк или нет, вы в конечном итоге работаете над теми же проблемами, что и ваш сайт в массовом масштабе.Сборка поверх фреймворка означает, что при работе над другими проблемами масштабирования у вас будет на одну проблему меньше (без пользовательской структуры для записи).Однако вам, возможно, придется расширить или настроить эту среду для работы с любой технологией, которую вам нужно масштабировать.

И в целом, я бы порекомендовал вам не проложить свой собственный путь.Найдите приложение или сайт, который сопоставим с тем, который вы создаете, и выясните, какие технологии и методы они использовали для создания этого сайта (многие, такие как WordPress.com, Twitter, проекты Google хорошо документированы или имеют болтливых разработчиков), и используйте ихтехнологии и методики.Вы выиграете от того, что они придумают все заранее.

...