İlk Başvurunuzu Oluşturun!
Yorumlarla basit bir blog oluştururken Nette Framework'ü tanıyın. Hadi başlayalım!
İlk iki bölümden sonra, kendi çalışan blogunuza sahip olacaksınız ve harika gönderilerinizi yayınlamaya hazır olacaksınız, ancak bu iki bölümü tamamladıktan sonra özellikler oldukça sınırlı olacaktır. Kullanıcılarınız için işleri daha güzel hale getirmek için sonraki bölümleri de okumalı ve uygulamanızı geliştirmeye devam etmelisiniz.
Bu öğretici, Kurulum belgesini tamamladığınızı ve araçlarınızı başarıyla kurduğunuzu varsayar. Ayrıca PHP'de nesne yönelimli programlamayı anladığınızı varsayar.
Lütfen PHP 8.1 veya üstünü 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
Şu anda, Web Projesinin karşılama sayfası çalışıyor olmalıdır. Tarayıcınızı açıp aşağıdaki URL'ye giderek deneyin:
http://localhost/nette-blog/www/
ve Nette Framework karşılama sayfasını görmelisiniz:
Uygulama çalışır ve artık üzerinde değişiklik yapmaya başlayabilirsiniz.
Eğer bir sorununuz varsa, bu birkaç ipucunu deneyin.
Web Projesinin İçeriği
Web Projesi aşağıdaki yapıya sahiptir:
nette-blog/ ├── app/ ← application directory │ ├── Core/ ← temel gerekli sınıflar │ ├── UI/ ← presenters, templates & co. │ │ └── Home/ ← Home sunucu dizini │ └── Bootstrap.php ← booting class Bootstrap ├── bin/ ← scripts for the command line ├── config/ ← configuration files ├── log/ ← error logs ├── temp/ ← temporary files, cache, … ├── vendor/ ← libraries installed by Composer │ └── autoload.php ← autoloading of libraries installed by Composer └── www/ ← public folder - the only place accessible from browser └── index.php ← initial file that launches the application
www
dizini resim, JavaScript, CSS ve diğer herkese açık dosyaları depolamak içindir. Bu, tarayıcıdan
doğrudan erişilebilen tek dizindir, bu nedenle web sunucunuzun kök dizinini buraya yönlendirebilirsiniz (Apache'de
yapılandırabilirsiniz, ancak şu anda önemli olmadığı için bunu daha sonra yapalım).
Sizin için en önemli dizin app/
. Orada Bootstrap.php
dosyasını bulabilirsiniz, içinde
çerçeveyi yükleyen ve uygulamayı yapılandıran bir sınıf vardır. Otomatik yüklemeyi
etkinleştirir ve hata ay ıklayıcı ile rotaları ayarlar.
Temizlik
Web Projesi, kaldırabileceğimiz bir karşılama sayfası içerir – app/UI/Home/default.latte
dosyasını
silmekten ve „Merhaba dünya!“ metniyle değiştirmekten çekinmeyin.
Tracy (Hata Ayıklayıcı)
Geliştirme için son derece önemli bir araç Tracy adlı bir hata
ayıklayıcıdır. app/UI/Home/HomePresenter.php
dosyanızda bazı hatalar yapmaya çalışın (örneğin
HomePresenter sınıfının tanımından bir küme parantezini kaldırın) ve ne olacağını görün. Anlaşılabilir bir hata
açıklamasıyla birlikte kırmızı ekranlı bir sayfa açılacaktır.
Tracy, hataları ararken size önemli ölçüde yardımcı olacaktır. Ayrıca, önemli çalışma zamanı verileri hakkında sizi bilgilendiren sağ alt köşedeki yüzen Tracy Çubuğuna da dikkat edin.
Üretim modunda, Tracy elbette devre dışıdır ve herhangi bir hassas bilgiyi açığa çıkarmaz. Bunun yerine tüm hatalar
log/
dizinine kaydedilir. Sadece deneyin. app/Bootstrap.php
adresinde, aşağıdaki kod parçasını
bulun, satırdaki yorumu kaldırın ve yöntem çağrısı parametresini false
olarak değiştirin, böylece
aşağıdaki gibi görünür:
...
$this->configurator->setDebugMode(false);
...
Web sayfasını yeniledikten sonra, kırmızı ekran sayfasının yerini kullanıcı dostu mesaj alacaktır:
Şimdi, log/
dizinine bakın. Orada hata günlüğünü (exception.log dosyasında) ve ayrıca hata mesajını
içeren sayfayı (adı exception
ile başlayan bir HTML dosyasına kaydedilmiş olarak) bulabilirsiniz.
// $configurator->setDebugMode(false);
satırını tekrar yorumlayın. Tracy, localhost
ortamında
geliştirme modunu otomatik olarak etkinleştirir ve başka yerlerde devre dışı bırakır.
Şimdi hatayı düzeltebilir ve uygulamamızı tasarlamaya devam edebiliriz.
Teşekkür gönderin
Size açık kaynak yazarlarını mutlu edecek bir numara göstereceğiz. Projenizin kullandığı kütüphanelere GitHub'da kolayca bir yıldız verebilirsiniz. Sadece çalıştırın:
composer thanks
Dene bakalım!