İlk Uygulamanızı Oluşturun!

Yorumlu basit bir blog oluştururken Nette Framework'ü tanıyın. Hadi başlayalım!

İlk iki bölümden sonra kendi çalışan blogunuz olacak ve harika gönderilerinizi yayımlamaya hazır olacaksınız; yalnızca bu iki bölümü tamamladıktan sonra özellikler epey sınırlı olsa da. Yorum ekleme, gönderi düzenleme ve en sonunda blogu güvenli kılma işlerini gerçekleştireceğimiz sonraki bölümleri de okumalısınız.

Bu öğretici, Kurulum belgesini tamamladığınızı ve araçlarınızı başarıyla hazırladığınızı varsayar. Ayrıca PHP'de nesne yönelimli programlamayı anladığınızı varsayar.

Lütfen PHP 8.1 ya da daha yenisini kullanın. Uygulamanın tamamını GitHub'da bulabilirsiniz.

Karşılama Sayfası

nette-blog dizininde yeni bir proje oluşturarak başlayalım:

composer create-project nette/web-project nette-blog

Bu noktada Web Project'in karşılama sayfası çalışıyor olmalı. Tarayıcınızı açıp şu adrese giderek deneyin:

http://localhost/nette-blog/www/

ve Nette Framework karşılama sayfasını görmelisiniz:

Uygulama çalışıyor, artık onda değişiklik yapmaya başlayabilirsiniz.

Bir sorun yaşarsanız şu birkaç ipucunu deneyin.

Web Project'in İçeriği

Web Project şu yapıya sahiptir:

nette-blog/
├── app/              ← uygulama dizini
│   ├── Core/         ← temel gerekli sınıflar
│   ├── Presentation/ ← presenter'lar, şablonlar vb.
│   │   └── Home/     ← Home presenter dizini
│   └── Bootstrap.php ← açılış sınıfı Bootstrap
├── assets/           ← ham varlıklar (SCSS, TypeScript, kaynak görseller)
├── bin/              ← komut satırı betikleri
├── config/           ← yapılandırma dosyaları
├── log/              ← hata günlükleri
├── temp/             ← geçici dosyalar, önbellek, …
├── vendor/           ← Composer'ın kurduğu kütüphaneler
│   └── autoload.php  ← kurulu tüm paketlerin autoloading'i
└── www/              ← genel klasör - tarayıcıdan erişilebilen tek yer
    ├── assets/       ← derlenmiş statik dosyalar (CSS, JS, görseller, …)
    └── index.php     ← uygulamayı başlatan ilk dosya

www/ dizini; görselleri, JavaScript dosyalarını, CSS stillerini ve herkese açık diğer dosyaları saklamak içindir. İnternetten doğrudan erişilebilen tek dizin budur, bu yüzden web sunucunuzun document root'unu buraya işaret edecek şekilde ayarlayın (bunu Apache ya da Nginx'te yapılandırabilirsiniz, ama şimdilik kritik olmadığı için sonra yapalım).

Sizin için en önemli dizin app/ dizinidir. Burada, framework'ü yükleyen ve uygulamayı yapılandıran bir sınıf içeren Bootstrap.php dosyasını bulacaksınız. Autoloading işlevini etkinleştirir, hata ayıklayıcıyı kurar ve rotaları yapılandırır.

Temizlik

Web Project bir karşılama sayfası içerir; programlamaya başlamadan önce onu kaldıracağız. app/Presentation/Home/default.latte dosyasının içeriğini çekinmeden “Hello world!” ile değiştirin.

Tracy (Hata Ayıklayıcı)

Geliştirme için son derece önemli bir araç, Tracy hata ayıklama aracıdır. app/Presentation/Home/HomePresenter.php dosyanıza bir hata sokmayı deneyin (örneğin HomePresenter sınıf tanımından bir süslü parantezi kaldırın) ve ne olduğunu görün. Anlaşılır bir hata açıklaması içeren kırmızı bir ekran sayfası çıkacak.

hata ayıklayıcı ekranı

Tracy, hataları ayıklarken size belirgin biçimde yardım edecek. Ayrıca ekranın sağ alt köşesindeki, önemli çalışma zamanı bilgilerini gösteren yüzen Tracy Bar'a dikkat edin.

Üretim kipinde Tracy elbette kapalıdır ve hiçbir hassas bilgi göstermez. Tüm hatalar bunun yerine log/ dizinine kaydedilir. Hadi deneyelim. app/Bootstrap.php dosyasında şu kod parçasını bulun, satırı yorumdan çıkarın ve metot çağrısının parametresini false yapın; şöyle görünsün:

// ...
$this->configurator->setDebugMode(false);

Web sayfasını yeniledikten sonra artık kırmızı ekranı görmeyeceksiniz. Bunun yerine kullanıcı dostu bir mesaj görüntülenecek:

hata ekranı

Şimdi log/ dizinine bakın. Burada (exception.log dosyasında) günlüklenen hatayı ve ayrıca tanıdık hata mesajı sayfasını (adı exception- ile başlayan bir HTML dosyası olarak kaydedilmiş) bulacaksınız.

// $this->configurator->setDebugMode(false); satırını yeniden yorum satırı yapın. Tracy, localhost ortamında geliştirme kipini otomatik açar ve başka yerlerde kapatır.

Artık soktuğumuz hatayı düzeltip uygulamamızı kurmayı sürdürebiliriz.

Teşekkür Gönderin

Açık kaynak yazarlarını sevindirecek bir numara gösterelim. Projenizin kullandığı kütüphanelere GitHub'da kolayca yıldız verebilirsiniz. Yalnızca şunu çalıştırın:

composer thanks

Deneyin!