Чому фреймворк?

Деякі програмісти рішуче проти використання фреймворків. Вони стверджують, що фреймворки є надмірними, повільними і важкими для навчання. Вони кажуть, що фреймворки є непотрібними і що ви можете написати кращий код без них. Звичайно, є деякі слушні зауваження щодо недоліків використання фреймворків. Однак також є багато переваг використання фреймворків.

Причини використання фреймворка

Ось кілька причин, чому ви можете хотіти розглянути можливість використання фреймворка:

  • Швидка розробка: Фреймворки забезпечують багато функціональності прямо з коробки. Це означає, що ви можете швидше створювати веб-додатки. Вам не потрібно писати так багато коду, оскільки фреймворк забезпечує багато функціональності, яку ви потребуєте.
  • Послідовність: Фреймворки забезпечують послідовний спосіб виконання завдань. Це полегшує розуміння того, як працює код, і спрощує іншим розробникам розуміння вашого коду. Якщо ви маєте все по порядку, ви можете втратити послідовність між скриптами, особливо якщо працюєте в команді з розробниками.
  • Безпека: Фреймворки надають функції безпеки, які допомагають захистити ваші веб-додатки від загальних загроз безпеки. Це означає, що вам не потрібно так сильно хвилюватися про безпеку, оскільки фреймворк піклується про багато з цього.
  • Спільнота: У фреймворків є великі спільноти розробників, які роблять внески у фреймворк. Це означає, що ви можете отримувати допомогу від інших розробників, коли у вас є запитання або проблеми. Це також означає, що існує багато ресурсів для навчання роботи з фреймворком.
  • Кращі практики: Фреймворки створені за допомогою кращих практик. Це означає, що ви можете навчитися від фреймворка і використовувати ті ж самі кращі практики у своєму коді. Це може допомогти вам стати кращим програмістом. Іноді ви не знаєте, що ви не знаєте, і це може зашкодити вам у кінці.
  • Розширюваність: Фреймворки розроблені для розширення. Це означає, що ви можете додавати свою функціональність у фреймворк. Це дозволяє вам створювати веб-додатки, які відповідають вашим специфічним потребам.

Flight — це мікро-фреймворк. Це означає, що він невеликий і легкий. Він не надає такої ж функціональності, як більші фреймворки, такі як Laravel або Symfony. Однак він забезпечує багато функціональності, яку ви потребуєте для створення веб-додатків. Його також легко навчитися і використовувати. Це робить його хорошим вибором для швидкого і легкого створення веб-додатків. Якщо ви новачок у фреймворках, Flight є чудовим початковим фреймворком для старту. Він допоможе вам дізнатися про переваги використання фреймворків, не перевантажуючи вас занадто великою складністю. Після того, як ви отримаєте деякий досвід з Flight, вам буде легше перейти на більш складні фреймворки, такі як Laravel або Symfony, однак Flight все ще може скласти успішну надійну програму.

Що таке маршрутизація?

Маршрутизація — це основа фреймворка Flight, але що це таке насправді? Маршрутизація — це процес взяття URL-адреси і зіставлення її з конкретною функцією у вашому коді. Це спосіб, яким ви можете змусити ваш веб-сайт виконувати різні дії в залежності від запитуваної URL-адреси. Наприклад, ви можете захотіти показати профіль користувача, коли вони відвідують /user/1234, але показати список всіх користувачів, коли вони відвідують /users. Це все робиться через маршрутизацію.

Це може працювати приблизно так:

  • Користувач переходить у ваш браузер і вводить http://example.com/user/1234.
  • Сервер отримує запит і дивиться на URL-адресу та передає його вашому коду додатку Flight.
  • Скажімо, у вашому коді Flight ви маєте щось на зразок Flight::route('/user/@id', [ 'UserController', 'viewUserProfile' ]);. Ваш код додатку Flight дивиться на URL-адресу і бачить, що вона відповідає маршруту, який ви визначили, а потім виконує код, який ви визначили для цього маршруту.
  • Маршрутизатор Flight запуститься і викличе метод viewUserProfile($id) у класі UserController, передаючи 1234 як аргумент $id у методі.
  • Код у вашому методі viewUserProfile() потім виконається і зробить те, що ви йому сказали. Ви можете закодувати виведення HTML для сторінки профілю користувача, або, якщо це RESTful API, ви можете закодувати виведення JSON-відповіді з інформацією про користувача.
  • Flight упаковує це красиво, генерує заголовки відповіді і відправляє їх назад у браузер користувача.
  • Користувач заповнюється радістю та обіймає себе!

І чому це важливо?

Наявність належного централізованого маршрутизатора може значно спростити ваше життя! Це може бути важко зрозуміти на перший погляд. Ось кілька причин, чому:

  • Централізована маршрутизація: Ви можете зберігати всі свої маршрути в одному місці. Це полегшує перегляд маршрутів, які у вас є, та того, що вони роблять. Це також полегшує внесення змін, якщо це буде потрібно.
  • Параметри маршруту: Ви можете використовувати параметри маршруту, щоб передавати дані своїм методам маршруту. Це чудовий спосіб зберегти чистоту та організованість вашого коду.
  • Групи маршрутів: Ви можете групувати маршрути разом. Це чудово для організації вашого коду та застосування проміжного програмного забезпечення до групи маршрутів.
  • Псевдоніми маршрутів: Ви можете призначити псевдонім маршруту, щоб URL-адреса могла динамічно генеруватись пізніше у вашому коді (наприклад, як шаблон). Наприклад: замість того, щоб хардкодити /user/1234 у вашому коді, ви можете натомість посилатись на псевдонім user_view і передавати id як параметр. Це робить його чудовим, якщо ви вирішите змінити його на /admin/user/1234 пізніше. Вам не потрібно буде змінювати всі ваші зашкарублені URL-адреси, а тільки URL, що прикріплений до маршруту.
  • Проміжне програмне забезпечення маршруту: Ви можете додати проміжне програмне забезпечення до ваших маршрутів. Проміжне програмне забезпечення надзвичайно потужне, додаючи специфічні поведінки до вашого додатку, такі як підтвердження, що певний користувач має доступ до маршруту або групи маршрутів.

Я впевнений, що ви знайомі з методом "скрипт за скриптом" для створення веб-сайту. У вас може бути файл під назвою index.php, який містить безліч if операцій для перевірки URL-адреси, а потім виконання конкретної функції на основі URL-адреси. Це форма маршрутизації, але вона не дуже організована і може вийти з-під контролю швидко. Система маршрутизації Flight є набагато більш організованим і потужним способом обробки маршрутизації.

Це?


// /user/view_profile.php?id=1234
if ($_GET['id']) {
    $id = $_GET['id'];
    viewUserProfile($id);
}

// /user/edit_profile.php?id=1234
if ($_GET['id']) {
    $id = $_GET['id'];
    editUserProfile($id);
}

// і т.д...

Або це?


// index.php
Flight::route('/user/@id', [ 'UserController', 'viewUserProfile' ]);
Flight::route('/user/@id/edit', [ 'UserController', 'editUserProfile' ]);

// У вашому app/controllers/UserController.php
class UserController {
    public function viewUserProfile($id) {
        // зробити щось
    }

    public function editUserProfile($id) {
        // зробити щось
    }
}

Сподіваюсь, ви вже почали бачити переваги використання централізованої системи маршрутизації. Це значно легше керувати та розуміти в довгостроковій перспективі!

Запити та відповіді

Flight забезпечує простий і легкий спосіб обробки запитів і відповідей. Це основа того, що робить веб-фреймворк. Він приймає запит від браузера користувача, обробляє його, а потім надсилає відповідь. Це спосіб, яким ви можете створювати веб-додатки, які виконують такі дії, як показ профілю користувача, дозволяють користувачу входити в систему або дозволяють користувачу публікувати новий блог.

Запити

Запит — це те, що браузер користувача надсилає на ваш сервер, коли вони відвідують ваш веб-сайт. Цей запит містить інформацію про те, що користувач хоче зробити. Наприклад, він може містити інформацію про те, яку URL-адресу хоче відвідати користувач, які дані хоче надіслати користувач на ваш сервер, або який тип даних хоче отримати користувач від вашого сервера. Важливо знати, що запит є тільки для читання. Ви не можете змінити запит, але можете читати з нього.

Flight забезпечує простий спосіб доступу до інформації про запит. Ви можете отримати доступ до інформації про запит, використовуючи метод Flight::request(). Цей метод повертає об'єкт Request, який містить інформацію про запит. Ви можете використовувати цей об'єкт, щоб отримати інформацію про запит, наприклад, URL, метод або дані, які користувач надіслав на ваш сервер.

Відповіді

Відповідь — це те, що ваш сервер надсилає назад браузеру користувача, коли вони відвідують ваш веб-сайт. Ця відповідь містить інформацію про те, що ваш сервер хоче зробити. Наприклад, вона може містити інформацію про те, які дані ваш сервер хоче надіслати користувачу, які дані ваш сервер хоче отримати від користувача, або які дані ваш сервер хоче зберегти на комп'ютері користувача.

Flight надає простий спосіб надіслати відповідь браузеру користувача. Ви можете надіслати відповідь, використовуючи метод Flight::response(). Цей метод приймає об'єкт Response як аргумент і надсилає відповідь браузеру користувача. Ви можете використовувати цей об'єкт, щоб надіслати відповідь до браузера користувача, таку як HTML, JSON або файл. Flight допомагає вам автоматично генерувати деякі частини відповіді, щоб упростити процес, але в кінцевому підсумку ви маєте контроль над тим, що ви надсилаєте назад користувачу.