İlk uygulamamızı yazıyoruz!

Yorumlarla basit bir blog oluştururken Nette Framework'ü birlikte tanıyalım. Hadi başlayalım!

İlk iki bölümden sonra kendi işlevsel blogumuza sahip olacağız ve harika gönderilerimizi yayınlayabileceğiz, ancak işlevler şimdilik büyük ölçüde sınırlı olacak. Ayrıca yorum eklemeyi, makaleleri düzenlemeyi ve son olarak blogu güvenli hale getirmeyi programlayacağımız sonraki bölümleri de okumalısınız.

Bu kılavuz, Kurulum sayfasını okuduğunuzu ve gerekli araçları 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 veya daha yenisini kullanın. Tam uygulamayı GitHub'da bulabilirsiniz.

Karşılama sayfası

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

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

Bu noktada, Web Projesi giriş sayfası zaten çalışıyor olmalıdır. Tarayıcıyı aşağıdaki URL adresinde açarak deneyelim:

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

ve Nette Framework giriş sayfasını göreceğiz:

Uygulama çalışıyor ve düzenlemeler yapmaya başlayabilirsiniz.

Bir sorun oluşursa, bu birkaç ipucunu deneyin.

Web Projesinin İçeriği

Web Projesi aşağıdaki yapıya sahiptir:

nette-blog/
├── app/              ← uygulama dizini
│   ├── Core/         ← çalışması için gerekli temel sınıflar
│   ├── Presentation/ ← presenter'lar, şablonlar & vb.
│   │   └── Home/     ← Home presenter dizini
│   └── Bootstrap.php ← başlatıcı sınıf Bootstrap
├── bin/              ← komut satırından çalıştırılan betikler
├── config/           ← yapılandırma dosyaları
├── log/              ← hata günlüğü
├── temp/             ← geçici dosyalar, önbellek, …
├── vendor/           ← Composer tarafından yüklenen kütüphaneler
│   └── autoload.php  ← yüklenen tüm paketlerin otomatik yüklenmesi
└── www/              ← genel dizin - tarayıcıdan erişilebilen tek dizin
    └── index.php     ← uygulamanın başlatıldığı başlangıç dosyası

www/ dizini, resimleri, JavaScript dosyalarını, CSS stillerini ve diğer genel olarak erişilebilir dosyaları depolamak için tasarlanmıştır. Yalnızca bu dizine internetten erişilebilir, bu nedenle uygulamanızın kök dizinini tam olarak buraya yönlendirecek şekilde ayarlayın (bunu Apache veya nginx yapılandırmasında ayarlayabilirsiniz, ancak bunu daha sonra yapalım, şimdi önemli değil).

Bizim için en önemli klasör app/'dir. Burada, tüm framework'ü yüklemeye ve uygulamayı ayarlamaya hizmet eden sınıfı içeren Bootstrap.php dosyasını bulacağız. Burada otomatik yükleme etkinleştirilir, burada hata ayıklayıcı ve yönlendirmeler ayarlanır.

Temizlik

Web Projesi, bir şeyler programlamaya başlamadan önce sileceğimiz bir giriş sayfası içerir. Bu nedenle, app/Presentation/Home/default.latte dosyasının içeriğini endişelenmeden “Merhaba dünya!” ile değiştirelim.

Tracy (hata ayıklayıcı)

Geliştirme için son derece önemli bir araç hata ayıklama aracı Tracy'dir. app/Presentation/Home/HomePresenter.php dosyasında bir hata oluşturmayı deneyin (ör. HomePresenter sınıf tanımındaki küme parantezini kaldırarak) ve ne olacağına bakın. Hatayı anlaşılır bir şekilde açıklayan bir bildirim sayfası açılacaktır.

hata ayıklayıcı ekranı

Tracy, uygulamadaki hataları ararken bize çok yardımcı olacaktır. Ayrıca, ekranın sağ alt köşesindeki, uygulama çalışmasından bilgiler içeren kayan Tracy Çubuğuna dikkat edin.

Üretim modunda, Tracy elbette kapalıdır ve hiçbir hassas bilgi göstermez. Bu durumda tüm hatalar log/ klasöründe saklanır. Hadi deneyelim. app/Bootstrap.php dosyasında aşağıdaki satırın yorumunu kaldırın ve kodun şöyle görünmesi için çağrı parametresini false olarak değiştirin:

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

Sayfayı yeniledikten sonra artık Tracy'yi görmeyeceğiz. Bunun yerine, kullanıcı dostu bir mesaj görüntülenecektir:

hata ekranı

Şimdi log/ dizinine bakalım. Burada ( exception.log dosyasında) günlüğe kaydedilen hatayı ve ayrıca zaten bilinen hata mesajı sayfasını ( exception- ile başlayan bir adla HTML dosyası olarak kaydedilmiş) bulacağız.

// $configurator->setDebugMode(false); satırını tekrar yorumlayalım. Tracy, localhost'ta geliştirici modunu otomatik olarak etkinleştirir ve başka her yerde devre dışı bırakır.

Oluşturduğumuz hatayı düzeltebilir ve uygulamayı yazmaya devam edebiliriz.

Teşekkür Gönderin

Size açık kaynak yazarlarını memnun edecek bir numara göstereceğiz. Projenizin kullandığı kütüphanelere GitHub'da basit bir şekilde yıldız verebilirsiniz. Sadece şunu çalıştırın:

composer thanks

Deneyin!