Laravel
Laravel - безкоштовний вебфреймворк із відкритим кодом, призначений для розробки з використанням архітектурної моделі MVC (англ. Model View Controller - модель-представлення-контролер). Laravel випущено під ліцензією MIT.
Ключові особливості, що лежать в основі архітектури Laravel:
- Пакети (packages) - дають змогу створювати й під'єднувати модулі у форматі Composer до додатка на Laravel. Багато додаткових можливостей уже доступні у вигляді таких модулів.
- Eloquent ORM - реалізація шаблону проєктування ActiveRecord на PHP. Дозволяє строго визначити відносини між об'єктами бази даних. Стандартний для Laravel будівельник запитів Fluent підтримується ядром Eloquent.
- Логіка застосунку - частина розроблюваного застосунку, оголошена або за допомогою контролерів, або маршрутів (функцій-замикань). Синтаксис оголошень схожий на синтаксис, який використовується в каркасі Sinatra.
- Зворотна маршрутизація пов'язує між собою генеровані додатком посилання і маршрути, дозволяючи змінювати останні з автоматичним оновленням пов'язаних посилань. При створенні посилань за допомогою іменованих маршрутів Laravel автоматично генерує кінцеві URL.
- REST-контролери - додатковий шар для поділу логіки обробки GET- і POST-запитів HTTP.
- Автозавантаження класів - механізм автоматичного завантаження класів PHP без необхідності підключати файли їхніх визначень в include. Завантаження на вимогу запобігає завантаженню непотрібних компонентів; завантажуються тільки ті з них, які дійсно використовуються.
- Укладачі подань (view composers) - блоки коду, які виконуються під час генерації подання (шаблону).
- Інверсія керування (Inversion of Control) - дає змогу отримувати екземпляри об'єктів за принципом зворотного керування. Також може використовуватися для створення та отримання об'єктів-одинаків (англ. singleton).
- Міграції - система керування версіями для баз даних. Дає змогу пов'язувати зміни в коді застосунку зі змінами, які потрібно внести в структуру БД, що спрощує розгортання та оновлення застосунку.
- Модульне тестування (юніт-тести) - відіграє дуже велику роль у Laravel, який сам по собі містить велику кількість тестів для запобігання регресій (помилок внаслідок оновлення коду або виправлення інших помилок).
- Сторінковий вивід (pagination) - спрощує генерацію сторінок, замінюючи різні способи розв'язання цього завдання єдиним механізмом, вбудованим у Laravel.