Цей пост про те, що таке Symfony2, які завдання він вирішує і для чого взагалі потрібен. Отже, Symfony2 — це чудовий РНР-фреймвок для створення web-додатків, який використовує MVC патерн. Фреймворк легко масштабується під потреби проекту. Добре продумана архітектура додатку дозволяє швидко підключати/відключати потрібні пакети (бандли) в проект з використанням composer.
Symfony2 вимагає хороших знань ООП (об'єктно-орієнтованого програмування), тому якщо сумніваєтеся у своїх знаннях — настійно рекомендую повторити/вивчити, це значно підвищить швидкість вивчення фреймворку, оскільки будь-який програмний елемент — це клас, і критично важливо розуміти його поведінку.
Doctrine
Для роботи з БД (база даних) фреймворк використовує Doctrine (також можна використовувати Propel), який сам по собі є чудовим інструментом для роботи з БД, а в парі з Symfony2 перетворюється просто на незамінний інструмент, з яким легко і приємно працювати.
На початку може здатися, що працювати з SQL легше, ніж з Doctrine ORM, але варто витратити трохи часу для вивчення підходу Doctrine ORM (DQL) — і перед вами відкриються витончені підходи для "спілкування" з БД.
Twig
Для роботи з HTML Symfony2 за замовчуванням використовує twig — потужний інструмент для маніпуляції з шаблонами, що дозволяє побудувати практично будь-яку архітектуру шаблонів, які можуть розширювати один одного.
Варто відзначити, що twig має власний синтаксис, він досить простий, тому вивчення не повинно скласти проблем. Але натомість ми отримуємо набір інструментів, які просто необхідні для роботи з даними в шаблонах.
Більше інформації про twig можна знайти в наступних джерелах:
http://symfony.ua/blog/stvoriennia-ta-vikoristannia-shabloniv-chastina-1
http://symfony.ua/blog/stvoriennia-ta-vikoristannia-shabloniv-chastina-2
http://symfony.ua/blog/stvoriennia-ta-vikoristannia-shabloniv-chastina-3
Конфігураційні файли
Symfony2 дозволяє обирати типи фалів (yml, xml, php, annotation), в яких будуть зберігається налаштування для додатку. Який тип конфігураційних файлів використовувати — справа смаку.
Пакети
Окремо хочеться сказати кілька слів про пакети для Symfony2.
Вже реалізовано чимало готових програмних рішень, які можна використовувати у своєму проекті. Це може бути функціонал адмін-панелі, завантаження файлів, інтеграція з платіжними сервісами/соціальними мережами, реєстрація/вхід, рішення для локалізації і ще неймовірна кількість всяких корисностей! Тож якщо виникає думка розробити якийсь новий функціонал, настійно рекомендую витратити трохи часу на пошуки вже готового рішення, оскільки, швидше за все, хтось вже це робив до вас. У разі успішних пошуків буде зекономлено багато часу.
Замість висновку
Цей фреймворк бере на себе величезний обсяг рутинних робіт, які можуть "тиснути" на програміста щодня. Це робить розробку швидшою і дозволяє зосередити більше уваги на бізнес-логіці додатку.