Подтвердить что ты не робот

Разница между Symfony и Silex

Я бы хотел попробовать Silex, но у меня есть некоторые вопросы.

Я знаю, как использовать Symfony2, и я хотел бы знать, сильно ли Silex отличается от Symfony, или это одно и то же (такая же операция, тот же код...)?

Кроме того, Silex рекомендуется для небольших проектов PHP и Symfony для средних или больших проектов, это правда?

4b9b3361

Ответ 1

Несколько замечательных вещей:

  • Silex основан на компонентах Symfony2, как и на платформе Symfony2. Таким образом, его можно рассматривать как альтернативный пользовательский интерфейс для компонентов (пользователь, являющийся веб-разработчиком).
  • Поскольку они используют одну и ту же основу, миграция между ними должна быть относительно легкой.
  • Как и Symfony2, Silex в основном представляет собой структуру контроллера. Он предоставляет вам некоторую структуру, но части модели и представления обрабатываются сторонними библиотеками (такими как Twig или Doctrine).
  • Так как ваша бизнес-логика не должна быть в ваших контроллерах в любом случае, если вы отделите этот код и сохраните свои контроллеры, ограничивающим фактором с точки зрения размера проекта будет только количество ваших маршрутов.

Тем не менее, Silex не даст вам пакетов, которые Symfony2 имеет.

Ответ 2

Вот некоторые интересные мысли о том, когда использовать Silex (особенно в комментариях): https://web.archive.org/web/20160131151109/http://www.testically.org/2011/10/11/is-there-a-specific-situation-when-to-use-a-php-micro-framework-like-silex/

Silex сам по себе довольно голый, а это значит, что если вы хотите больше, а просто маршрутизировать и тестировать, вам нужно будет добавить определенные функции (DB, Twig...) в виде сервисов. Я рекомендую взглянуть на некоторые готовые пластинки, которые предоставят вам следующее: https://github.com/lyrixx/Silex-Kitchen-Edition или https://github.com/ivoba/superleansilexplate (thats mine:))

Еще один момент заключается в том, что Silex имеет, вероятно, более лёгкий след, чем Symfony2, поэтому, если вам нужен меньший и быстрый сайт, Silex заслуживает внимания.

Ответ 3

(ОБНОВЛЕНИЕ) С Symfony 2.8 Вы можете использовать symfony 2 в качестве микрокарта с микроядерным контроллером. См. Краткое описание здесь: symfony.com/blog/new-in-symfony-2-8-symfony-as-a-microframework. Теперь Symfony дает нам больше контроля над структурой и архитектурой. Хорошая альтернатива Silex, если вы предпочитаете стиль Symfony 2.

Сравнение Silex с Symfony до версии 2.8

Микрофракция Silex основана на Symfony, но это не совсем то же самое. Использование полнотекстовой структуры, такой как Symfony для небольшого проекта, просто завышает проект.

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

Silex был разработан для создания инструмента, а не для набора инструментов, которые вам могут не понадобиться. Я бы сказал, что для небольших проектов в Symfony вам придется удалить функции - в Silex вам придется их добавлять.

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

инъекция зависимостей Silex

Имейте в виду, что: Ограничения Silex

В заключение, Silex хорош для небольших приложений, и для них он, безусловно, заменит Symfony. Silex также можно использовать для больших проектов (но для более крупных приложений я бы рекомендовал использовать полнофункциональную инфраструктуру вместо Symfony).

Ссылка для слайдов по адресу: http://www.slideshare.net/dustin.whittle/silex-from-micro-to-full-stack. Если вам так хочется, продолжайте читать и прочитайте еще немного о структуре Silex.

Я также рекомендую посмотреть это введение, сравнивая Silex с Symfony: https://www.youtube.com/watch?v=RDVtnsoOysE.

Опять же, несколько Pro для использования Silex поступают от людей, которые на самом деле его используют: https://www.youtube.com/watch?v=OJcdHGJFfLU

Ответ 4

Silex хорош для небольших проектов, но он также может использоваться для больших проектов. Что мне больше всего нравится в Silex, так это то, что я полностью контролирую свою структуру проекта, но это моя ответственность, если мой проект хорошо организован или нет.
Также я рекомендую его по symfony, если я, как и я, переместил вашу прикладную логику на клиентскую сторону с использованием JS-структуры. Для меня это ощущение излишнего использования symfony только для обслуживания нескольких запросов json.

Ответ 5

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

Ответ 6

Silex - отличная инфраструктура для небольших, а также больших приложений. Предоставление структуры проекту является вашей ответственностью в Silex. По мере того как проект становится больше, вы можете легко интегрировать в него компоненты symfony, хотя документация для поставщика Symfony не так хороша, особенно для компонента безопасности Symfony.

Silex отлично подходит для проектов прототипирования. Если вы знаете, что будете использовать большинство компонентов symfony, то отправляйтесь на symfony, потому что в конечном итоге вы интегрируете почти все компоненты symfony в silex.

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

Ответ 7

На данный момент я пишу это, Silex находится в режиме обслуживания, и это конец срока службы произошло в июне 2018 года.

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

Вместо этого они рекомендуют использовать Symfony 4.

Silex был действительно хорош и быстр (может быть, быстрее, чем Symfony 4 для простых запросов/требований), но SF4 может принести новый стек и преимущества для наших приложений.

Ответ 8

Silex - это микрофрейм PHP. Он используется для небольшого проекта. Стиль кодирования symfony и silex почти похож на symfony. Но symfony используется для больших проектов.