Yii’den bahsettikten sonra gelelim frameworkün kurulumuna ve Yii ile geliştirilecek ilk projeye.
SVN kullanıyorsanız “svn checkout http://yii.googlecode.com/svn/trunk/ yii-read-only” ile Git kullanıyorsanız “git clone git://github.com/ogulcan/unofficial-yii-framework-mirror.git” komutlarıyla konsoldan frameworkün son sürümüne erişebilirsiniz.
Ben yazıda svn ya da git ile değil, web üzerinden indirilmiş gibi anlatım yapacağım. Yii’nin son sürümünü (bu yazı yazılırken 1.1.8) resmi siteden indirin ve geliştirme yaptığınız yolun altına (örn: www/) dosyaları çıkartın. İçeriğine geçmeden önce klasörün uzun ismini “yii” ile değiştirin (yazıda yii olarak kullanılacak), çağırırken kolay olsun. Şimdi içerisindeki klasörlerden bahsedelim:
- demos: Resmi sitede videolu anlatımları bulunan örneklerin kaynak kodları da dahil olmak üzere 4 demo proje yer alıyor. Hepsi de giriş seviyesi için uygun ve anlaşılır.
- framework: Yii’nin kendisi.
- requirements: Sunucu konfigürasyonunun Yii’ye uygunluğunu kontrol etmek için kullanılan dosyalar.
Projeye geçmeden önce Yii’nin uyumluluğunu kontrol etmek için localhost/yii/requirements sayfasını açalım.
PHP 5.1+ ile başlayan ve geliştireceğiniz projeye göre yükleme zorunluluğu değişen bir liste çıkacak karşımıza.
Sarı uyarılar, uygulamada olacaksa yüklemenesi gerekenleri işaret ediyor. Hiç kırmızı işaret olmaması, konfigrasyonun Yii’ye uygun olduğunu gösteriyor.
Sıra geldi ilk uygulamayı oluşturmaya: Yii de Play gibi komut satırından yeni proje oluşturulan frameworklerden bir tanesi. Yii’nin bulunduğu dizin altındaki framework klasörüne girip, aşağıdaki komutu giriyoruz;
[code lang=”shell”] $ ./yiic webapp ../../helloCreate a Web application under ‘/var/www/hello’? [Yes|No] [/code]
Çıkan soruya Yes ya da Y ile cevap veriyoruz. Böylece hello isminde yeni bir yii projesi oluştu: http://localhost/hello adresinden projeye erişebilirsiniz.
Yukarıdaki gibi hakkında ve iletişim olmak üzere 1 statik sayfa, 1 giriş sayfası içeren bir proje çıktı karşımıza. Giriş bilgileri henüz veritabanından kontrol edilebilir durumda değil. İletişim formu ise doğrulama görseli ile birlikte açılıyor. Fakat form da henüz çalışır durumda değil.
Bu projeden öğrenilmesi gereken Yii’nin çalışma yapısı olmalı. Örneğin iletişim (contact) sayfası açıkken adres satırına baktığımızda; index.php’nin ardından ?r=site/contact geliyor. Bu “Site” isimli controllerın, contact metodunun çağırıldığını gösteriyor. MVC yapısına aşina olduğunuzu varsayarak, tekrardan controller kavramına girmiyorum.
Şimdi de projenin dosya yapısını, yii ile aynı dizinde bulunan hello klasöründen inceleyelim:
- assets: Genellikle JavaScript dosyalarını ve statik dosyaları içerir.
- css: Stil dosyalarını içerir.
- images: Projedeki görsellerin ekleneceği dizin.
- themes: Tıpkı wordpress gibi, projeden bağımsız bir şekilde arayüz değişimi için kullanılacak klasör (orta ve ileri seviye).
- protected: Model-View-Controller dosyalarını, test ve diğer önemli (değiştirilebilir) dosyaları içerir (eklentiler vb). Dizinin yazılabilir olması gerekmektedir (Gii için -detaylar sonraki yazıda-) .
Genel dosya yapısından bahsettikten sonra biraz da protected içerisine göz atalım.
Projenin “hello/protected/controller” dizini az önce bahsettiğimiz Controller/Method yönlendirmesini yapan SiteController.php dosyasını içeriyor.
Her Yii projesinin öntanımlı olarak gelen controller dosyası SiteController.php’dir (değiştirmeye daha sonra değiştireceğiz) . Yii’de controller dosya isimlerinin yanına “Controller” getirilmesi zorunludur.Controller’a ait metodlar içinse, her metodun önüne “action” getirilmesi zorunludur (örn: actionIndex).
Protected klasöründe “models/LoginForm.php” ve “models/ContactForm.php” dosyaları da SiteController içerisindeki ‘login’ ve ‘contact’ metodlarındaki modalların karşılığını sağlamakta.
Yine protected içerisinde her bir controller için, render edilen/edilecek view dosyaları mevcuttur. Bu proje için bakarsak; “hello/protected/views” içerisinde yalnızca SiteController için kullanılan view dosyaları mevcut. Yazının önceki kısmında belirttiğim statik sayfa olan “about” ise views/site/pages/about.php içerisinde.
Son olarak da, konsoldan oluşturduğumuz projeyi IDE içerisine dahil edin (import). Ardından da “include_path” içerisine (genelde projenin özelliklerinde yer alır) www/yii/framework yolunu gösterin.
Yii’nin ilk projesi için söylenecekler bu kadar. Sonraki yazıda framework üzerinde yapılacak çeşitli değişiklikler ile devam edeceğim.
Anlaşılmayan ya da sorulması/eklenmesi gerekenleri yorum ile belirtirseniz sevinirim.
[…] yazılarla birlikte Yii’nin nasıl çalıştığı az da olsa anlaşıldı. Bu yazıda ise, daha önce […]
[…] uygulama için yeni bir uygulama oluşturabilir ya da daha önce oluşturduğumuz uygulamanın üzerinden devam edebilirsiniz. İlerleyiş […]
İyi günler. bilgiler için teşekkürler. Yalnız ./yiic webapp ../../hello komutu ile proje oluşturabiliyoruz peki de internette hosting kullanıyorsak nasıl olacak? illa vps vs. mi olması lazım. Hostingte sonuçta terminale erişim yok. Direkt klasörleri kopyalayarak vs. yapamaz mıyız yeni uygulamayı?
Teşekkürler.
Merhaba, view site klasörü altında başka bir klasörde php sayfam var. Fakat bu sayfayı Site Controllerda bir türlü render edemedim. Klasörün adıyla yazdığımda hata veriyor. Yardımcıolabilirseniz sevinirim. Teşekkürler.