Mikro Siteler Nasıl Yazılır

Şirketinizin yaklaşan bir etkinliği için hızlı bir şekilde küçük bir web sitesi oluşturmanız gerektiğini düşünün. Basit, hızlı ve gereksiz komplikasyonlardan uzak olmalı. Bu kadar küçük bir projenin sağlam bir framework gerektirmediğini düşünebilirsiniz. Peki ya Nette çerçevesini kullanmak bu süreci önemli ölçüde basitleştirip hızlandırabilirse?

Basit web siteleri oluştururken bile konfordan vazgeçmek istemezsiniz. Tekerleği yeniden icat etmek istemezsiniz. Tembel olmaktan ve kendinizi şımartmaktan çekinmeyin. Nette Framework mikro framework olarak da mükemmel bir şekilde kullanılabilir.

Böyle bir mikro site neye benzeyebilir? Örneğin, web sitesinin tüm kodu genel klasördeki tek bir index.php dosyasına yerleştirilebilir:

<?php

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

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

// config.neon dosyasındaki yapılandırmaya göre bir DI konteyneri oluşturun
$configurator->addConfig(__DIR__ . '/../app/config.neon');
$container = $configurator->createContainer();

// Yönlendirmeyi ayarlayın
$router = new Nette\Application\Routers\RouteList;
$container->addService('router', $router);

// URL için rota https://example.com/
$router->addRoute('', function ($presenter, Nette\Http\Request $httpRequest) {
	// tarayıcı dilini algılar ve /en veya /de vb. URL'ye yönlendirir.
	$supportedLangs = ['en', 'de', 'cs'];
	$lang = $httpRequest->detectLanguage($supportedLangs) ?: reset($supportedLangs);
	$presenter->redirectUrl("/$lang");
});

// URL için rota https://example.com/cs nebo https://example.com/en
$router->addRoute('<lang cs|en>', function ($presenter, string $lang) {
	// uygun şablonu görüntüleyin, örneğin ../templates/en.latte
	$template = $presenter->createTemplate()
		->setFile(__DIR__ . '/../templates/' . $lang . '.latte');
	return $template;
});

// uygulamayı çalıştırın!
$container->getByType(Nette\Application\Application::class)->run();

Diğer her şey üst /templates klasöründe depolanan şablonlar olacaktır.

index.php adresindeki PHP kodu önce ortamı kurar, sonra rotaları tanımlar ve son olarak uygulamayı çalıştırır. Bunun avantajı, addRoute() işlevinin ikinci parametresinin, ilgili sayfa açıldığında çalıştırılan bir çağrılabilir olmasıdır.

Mikro Siteler için Neden Nette Kullanılmalı?

  • Tracy 'yi denemiş olan geliştiriciler bugün onsuz kodlama yapmayı hayal bile edemezler.
  • Ancak her şeyden önce, Latte şablonlama sistemini kullanacaksınız, çünkü sadece 2 sayfadan düzen ve içeriği ayırmak isteyeceksiniz.
  • Ve XSS güvenlik açıklarını önlemek için kesinlikle otomatik kaçışa güvenmek isteyeceksiniz.
  • Nette ayrıca bir hata durumunda PHP hata mesajlarının asla görüntülenmemesini, bunun yerine kullanıcı dostu bir sayfanın görüntülenmesini sağlar.
  • Kullanıcılardan geri bildirim almak istiyorsanız, örneğin bir iletişim formu şeklinde, formlar ve veritabanı da ekleyebilirsiniz.
  • Doldurulan formların e-posta ile gönderilmesini de kolayca sağlayabilirsiniz.
  • Bazen, örneğin beslemeleri indirirken ve görüntülerken önbelleğe almayı yararlı bulabilirsiniz.

Hız ve verimliliğin kilit önem taşıdığı günümüzde, gereksiz gecikmeler olmadan sonuçlara ulaşmanızı sağlayan araçlara sahip olmak önemlidir. Nette framework tam da bunu sunuyor – hızlı geliştirme, güvenlik ve süreci basitleştiren Tracy ve Latte gibi çok çeşitli araçlar. Sadece birkaç Nette paketi kurun ve böyle bir mikro site oluşturmak çocuk oyuncağı haline gelsin. Ve hiçbir gizli güvenlik açığı olmadığını bilirsiniz.