マイクロサイトの書き方

あなたの会社の次のイベントのために、すぐに小さなウェブサイトを作成する必要があると想像してみてください。それはシンプルで、速く、不必要な複雑さがないものでなければなりません。このような小さなプロジェクトには、堅牢なフレームワークは必要ないと思うかもしれません。しかし、Netteフレームワークを使用することで、このプロセスが大幅に簡素化され、高速化されるとしたらどうでしょうか?

結局のところ、単純なウェブサイトを作成する場合でも、快適さを諦めたくはありません。すでに解決されたことを再発明したくはありません。怠惰になって、甘やかされてください。Netteフレームワークは、マイクロフレームワークとしても最適に使用できます。

そのようなマイクロサイトはどのように見えるでしょうか?たとえば、ウェブサイトのコード全体をパブリックフォルダ内の単一のファイル index.php に配置します。

<?php

require __DIR__ . '/../vendor/autoload.php';

$configurator = new Nette\Bootstrap\Configurator;
$configurator->enableTracy(__DIR__ . '/../log');
$configurator->setTempDirectory(__DIR__ . '/../temp');

// config.neonの設定に基づいてDIコンテナを作成
$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 に保存されたテンプレートになります。

index.php のPHPコードは、まず 環境を準備し、次に ルート を定義し、最後にアプリケーションを実行します。利点は、addRoute() 関数の2番目のパラメータが呼び出し可能であり、対応するページが開かれた後に実行されることです。

マイクロサイトにNetteを使用する理由

  • Tracy を試したことのあるプログラマは、今日、それなしで何かをプログラミングすることを想像できません。
  • しかし、何よりも、Latte テンプレートシステムを利用するでしょう。なぜなら、2ページ目からレイアウトとコンテンツ を分離したいからです。
  • そして、XSS脆弱性が発生しないように、自動エスケープ に頼りたいはずです。
  • Netteはまた、エラーが発生した場合にプログラマ向けのエラーメッセージPHPが表示されず、ユーザーフレンドリーなページが表示されることを保証します。
  • たとえばお問い合わせフォームの形でユーザーからのフィードバックを得たい場合は、フォームデータベース を追加するだけです。
  • 記入されたフォームを簡単に メールで送信する こともできます。
  • たとえばフィードを取得して表示する場合など、キャッシュ が役立つことがあります。

速度と効率が鍵となる今日の世界では、不必要な遅延なしに結果を達成できるツールを持つことが重要です。Netteフレームワークはまさにそれを提供します – 迅速な開発、セキュリティ、そしてプロセスを簡素化するTracyやLatteなどの幅広いツール。いくつかのNetteパッケージをインストールするだけで、このようなマイクロサイトを構築するのは突然非常に簡単になります。そして、どこにもセキュリティホールが隠れていないことを知っています。