Як створювати мікросайти
Уявіть, що вам потрібно швидко створити невеликий веб-сайт для майбутньої події вашої компанії. Це має бути просто, швидко і без зайвих ускладнень. Можливо, ви думаєте, що для такого маленького проекту вам не потрібен потужний фреймворк. Але що, якщо використання фреймворку Nette може суттєво спростити та прискорити цей процес?
Адже навіть при створенні простих веб-сайтів ви не хочете відмовлятися від зручності. Ви не хочете вигадувати те, що вже було одного разу вирішено. Будьте спокійно лінивими і дозвольте себе побалувати. Nette Framework можна чудово використовувати і як мікрофреймворк.
Як може виглядати такий мікросайт? Наприклад, так, що весь код сайту
ми розмістимо в єдиному файлі index.php
у публічній папці:
<?php
require __DIR__ . '/../vendor/autoload.php';
$configurator = new Nette\Bootstrap\Configurator;
$configurator->enableTracy(__DIR__ . '/../log');
$configurator->setTempDirectory(__DIR__ . '/../temp');
// створи DI-контейнер на основі конфігурації в config.neon
$configurator->addConfig(__DIR__ . '/../app/config.neon');
$container = $configurator->createContainer();
// налаштуємо маршрутизацію
$router = new Nette\Application\Routers\RouteList;
$container->addService('router', $router);
// маршрут для URL https://example.com/
$router->addRoute('', function ($presenter, Nette\Http\Request $httpRequest) {
// визначаємо мову браузера та перенаправляємо на URL /en або /de тощо.
$supportedLangs = ['en', 'de', 'cs'];
$lang = $httpRequest->detectLanguage($supportedLangs) ?: reset($supportedLangs);
$presenter->redirectUrl("/$lang");
});
// маршрут для URL https://example.com/cs або https://example.com/en
$router->addRoute('<lang cs|en>', function ($presenter, string $lang) {
// відобразимо відповідний шаблон, наприклад ../templates/en.latte
$template = $presenter->createTemplate()
->setFile(__DIR__ . '/../templates/' . $lang . '.latte');
return $template;
});
// запустіть додаток!
$container->getByType(Nette\Application\Application::class)->run();
Все інше будуть шаблони, збережені в батьківській папці
/templates
.
PHP-код в index.php
спочатку підготує
середовище, потім визначає маршрути і нарешті
запускає додаток. Перевагою є те, що другий параметр функції
addRoute()
може бути callable, який виконається після відкриття
відповідної сторінки.
Чому варто використовувати Nette для мікросайтів?
- Програмісти, які колись спробували Tracy, сьогодні не уявляють, як програмувати без неї.
- Перш за все, ви скористаєтеся системою шаблонів Latte, оскільки вже з 2 сторінок вам захочеться мати розділений макет та вміст.
- І ви точно хочете покладатися на автоматичне екранування, щоб не виникла вразливість XSS.
- Nette також гарантує, що при помилці ніколи не відобразяться повідомлення про помилки PHP для програмістів, а зрозуміла для користувача сторінка.
- Якщо ви хочете отримувати зворотній зв'язок від користувачів, наприклад, у вигляді контактної форми, то ще додасте форми та базу даних.
- Заповнені форми ви також можете легко надсилати електронною поштою.
- Іноді вам може знадобитися кешування, наприклад, якщо ви завантажуєте та відображаєте стрічки новин.
У наш час, коли швидкість та ефективність є ключовими, важливо мати інструменти, які дозволять вам досягти результатів без зайвих затримок. Фреймворк Nette пропонує саме це – швидку розробку, безпеку та широкий спектр інструментів, таких як Tracy та Latte, які спрощують процес. Достатньо встановити кілька пакетів Nette, і створення такого мікросайту раптом стає зовсім простою справою. І ви знаєте, що ніде не ховається жодна дірка в безпеці.