О чём эта книга?
Symfony — один из наиболее успешных PHP-проектов. Это не только мощный фулстек-фреймворк, но и популярный набор переиспользуемых компонентов.
С момента выпуска Symfony 2.0 в 2011 году, проект достиг зрелости. Думаю, что всё, что мы сделали за последние несколько лет, прекрасно сочетается между собой. Это и новые низкоуровневые компоненты, и высококачественные интеграции с другими программами, а также инструменты, повышающие продуктивность разработчика. Мы существенно улучшили удобство разработки без потери гибкости. Ещё никогда использование Symfony в новом проекте не было таким увлекательным.
Если вы только начинаете работать с Symfony, данная книга покажет возможности фреймворка и то, как он может повысить вашу производительность, разрабатывая приложение шаг за шагом.
Если вы уже разработчик на Symfony, то после прочтения книги вы заново откроете для себя этот фреймворк. За последние несколько лет фреймворк существенно развился и впечатление от процесса разработки значительно улучшилось. У меня такое ощущение, что многие Symfony-разработчики до сих цепляются за старые привычки, из-за чего им трудно освоить новые способы разработки приложений с помощью Symfony. Я могу их понять. Темпы эволюции просто ошеломляют. Занятые полный рабочий день своими проектами, разработчики просто не успевают следить за всем происходящим в сообществе. Я это знаю из собственного опыта и поэтому не буду делать вид, что могу уследить за всем. Это далеко не так.
И я имею в виду не только новые способы работы. Речь идёт также о новых компонентах: клиент HTTP, Mailer, Workflow, Messenger. Они в корне меняют подходы к разработке. Вероятнее всего, перечисленные компоненты изменят ваше представление о приложениях на Symfony.
Помимо этого, я чувствую необходимость в новой книге, поскольку интернет претерпел значительные изменения. Сейчас нам нужно обсуждать API-интерфейсы, SPA-приложения, контейнеризацию, непрерывное развёртывание и т.п.
Время бесценно. Не ждите ни длинных абзацев, ни долгих пояснений основных понятий. Эта книга больше напоминает путешествие. С чего начать, когда и как писать код. Я постараюсь пробудить интерес к важным темам и дам вам самим решать, хотите ли вы подробнее в них разобраться.
Я также не хочу повторять то, что написано в документации. Она очень качественная, поэтому я буду часто ссылаться на неё в разделе "Двигаемся дальше" в конце каждого шага/главы. Рассматривайте эту книгу как список указателей на дополнительные материалы.
В книге описывается создание приложения с нуля, вплоть до развёртывания в продакшене. Тем не менее, мы не будем разрабатывать всё до полной готовности. Поэтому не стоит ожидать идеального результата. Мы пойдем по короткому пути, и не будем затрагивать особые случаи обработки, проверки или тестирования чего-либо. Мы не всегда будем следовать рекомендуемым практикам, но затронем практически все аспекты современного проекта на Symfony.
Перед тем, как приступить к работе над книгой, я сначала разработал итоговое приложение. Я был впечатлён результатом и скоростью, которую сумел сохранить, легко добавляя новую функциональность. И всё это благодаря хорошей документации и тому, что Symfony знает, что вам нужно на вашем пути. Уверен, что Symfony ещё есть куда улучшать (я написал несколько заметок о возможных улучшениях на этот счёт), хотя если сравнивать с несколькими годами ранее, разрабатывать на нём стало намного приятнее. Я хочу рассказать всем об этом.
Книга разделена на шаги. Каждый шаг в свою очередь состоит из ещё более мелких шагов, так что всё это должно читаться быстро. Но гораздо важнее, к чему я вас призываю — начните писать код сразу, по ходу чтения книги. Напишите код, протестируйте его, посмотрите в действии, и затем попробуйте его улучшить.
И последнее, но не менее важное: не стесняйтесь обращаться за помощью, если окажетесь в тупике. Вы можете попасть в непредвиденную ситуацию или столкнуться с опечаткой в вашем коде, которую возможно будет трудно найти и исправить. Задайте вопросы, у нас есть замечательное сообщество в Slack и на GitHub.
Готовы разрабатывать? Тогда наслаждайтесь!