kzakhariy
@kzakhariy
PHP Developer

Стоит ли изучать Symfony?

Уже немного поработав с Laravel возникает чувство что нужно учить Symfony 2 так как проектов на Symfony делают тоже много, и говорят что Symfony 2 настолько гибок что при поддержке проекта сделать новую "фичу" не составит труда, если изначально все было спроектировано правильно.
Прочитал много мнений о том что Laravel намного быстрее работает чем Symfony. Я хочу развиваться далее в этом направлении, подскажите правильный путь. Если стоит - то как лучше изучать? посоветуйте книги/видео-курсы/ ресурсы для изучения.
  • Вопрос задан
  • 9704 просмотра
Решения вопроса 2
@djay
Итак, обо всем по порядку:

1. Дописать новую фичу можно в любой системе и в любом фрейморке (ZF/Laravel/SF/Cake/CI/Phalcon ... ), даже если все было спроектировано не правильно изначально. Единственно на это уйдет чуть больше времени и нервов.

2. Симфони второй по востребованости в СНГ, после Yii - согласно hh и brainstorage. Остальное - ZF/Laravel. В Европе/США - наоборот, ZF2/Laravel, потом Symfony, а Yii вообще редко попадается.

3. Да Ларавел работает быстрее и есть меньше памяти. Это потому в симфони очень много слоев абстракции. Но как правило, память дешевая и многие могут её себе позволить. То есть в основном никого не волнует какие-то 9-10 лишних МБ памяти.

4. Симфони - не для слабаков. Его API гораздо сложнее всех остальных. Нужно уже знать и понимать DI контейнеры, принцип разделения концепций и аналогичное. Для работы с Yii/Laravel - знать этого не нужно, поэтому каждый второй школьник Yii/Laravel программист (образно говоря).

5. Не встречал адекватных мануалов для новичков на русском языке, к сожалению. Могу посоветовать только англоязычные:

Symfony2 Registration and Login
Creating a blog in Symfony2

Пройдя эти мануалы, уже сможешь писать приложения.

6. В любом фрейворке, тебе нужно будет в основном только это:

- Роутер / контроллеры
- Компонент валидации форм
- Слой над базой данных

И все! Фремворк предоставляет только инструменты, не более того. Т.е фреймворк - это не цель, а средство.
Ответ написан
Комментировать
AmdY
@AmdY
PHP и прочие вебштучки
Конечно, учить symfony нужно, потратив одни выходные вы получите кучу опыта, который пригодится даже если вы будете программировать на Laravel, тем более там используются компоненты sf. Обязательно нужно попробовать Doctrine, каким бы куском говна на мой взгляд она не была, но с концепцией должен познакомиться любой уважающий себя программист.
Ответ написан
Пригласить эксперта
Ответы на вопрос 4
Fesor
@Fesor
Full-stack developer (Symfony, Angular)
не составит труда, если изначально все было спроектировано правильно.

И тут приходим к тому что нужно учить не фреймворк, он тут много погоды не делает (хотя в Symfony чуть сложнее накосячить, хотя всегда можно сделать ужасно). Так же есть определенные нюансы. Скажем если вы захотите проникнуться настоящим феншуем, DDD всякими и т.д. придется отказаться от MySQL в пользу PostgreSQL (если конечно вы не работаете с ораклами какими, в mysql все плохо с автоинкрементами, что накладывает определенные ограничения при работе с Doctrine и заставляет писать кучу лишнего бойлерплейта что бы все было красиво, хотя этот бойлерплейт можно реюзать).

По сути единственная разница между приложениями на Laravel и Symfony - ORM идущая из коробки (как бы все можно подменить под себя). Все остальное - минимальные различия. А с нормальным ORM (а в PHP мире она пока одна - Doctrine) уже можно делать дела красиво и эффективно с точки зрения трудозатрат. Но даже с ActiveRecord можно жить и не тужить.

Словом, я не знаю что вы хотите получить от Symfony, по сути переход с одного фреймворка на другой вам мало чего даст.

Прочитал много мнений о том что Laravel намного быстрее работает чем Symfony.

Вот этот параметр просто не учитывайте. Как минимум Laravel основан на компонентах Symfony и единственное узкое место, которое явно работает медленнее это Doctrine ORM, но та гибкость которую она дает слихвой оправдывает прожерливость. Да и смысл вообще по этому поводу загоняться этом есть только на больших нагрузках, а так вы с большей вероятностью убьете производительность не расставив где надо индексы в базе.

подскажите правильный путь

А правильного нет. Каждый сам свой путь выбирает. Хотите развиваться? Читайте книги. Кента Бэка почитайте, Эрика Эванса и других персонажей... Расширяйте кругозор, а далее что понравится. А да, не ограничивайтесь книгами только для программистов. Почитайте чего по процессам разработки (чего-нибудь про скрамы, канбаны, лины, континиус импрувмент).
Ответ написан
kzakhariy
@kzakhariy Автор вопроса
PHP Developer
Спасибо всем за ответы! Еще нашел классные уроки , но платные https://knpuniversity.com/tracks/symfony
Ответ написан
Комментировать
xmoonlight
@xmoonlight
https://sitecoder.blogspot.com
Хотите развиваться - поймите архитектуру того, что уже есть и попробуйте сделать лучше по скорости работы и по скорости разработки.
Ответ написан
Комментировать
woonem
@woonem
Если вы не знаете с чего начать, берите и пишите без фреймворка. Бесят люди, которые спрашивают "а что лучше", "а стоит ли", "а чем вы пользуетесь" и т.д. Это зависит от вас лично и вы сами должны принять решение, а список вариантов вам с рабостью приподнесет гугл (если вам нужны варианты).
Моё мнение - перестаньте тратить время на поиски путей и изучение тонн ненужного материала. Работайте.

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

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы