Yii Framework’e Giriş
Bu yazımda Yii framework‘e kısa bir giriş yapacağım. Yii framework’u, her framework’un iddia ettiği gibi en hızlı framework olduğunu iddia ediyor; benchmark sonuçlarını kendi sayfasından da bulabilirsiniz.
Öncelikle yii framework’un son sürümünü indirme sayfasından indiriyoruz. (Bu yazıyı yazarken en güncel sürüm 1.1.8′di.). İndirdiğimiz dosyayı web dizinimize çıkartıyoruz ve klasörün adını “yii” diye değiştiriyoruz(bu değişikliği yapmamın sebebi sürüm güncellendiğinde de makalenin güncelliğini koruması, yapmanıza gerek yok)
Web dizinimiz altındaki “yii” klasörünün içinde demos, framework, requirements isminde üç adet klasör var. Framework klasörü tahmin edebileceğiniz gibi asıl işi yapan klasör; demos klasörü ise yii ile yapılmış basit 4 adet projeyi içeriyor; requirements klasörü ise server konfigürasyonumuzun yii’ye uygun olup olmadığını denetleyebileceğimiz gereksinim kontrollerini yapan dosyaları içeriyor.
Yii ile bir projeye başlamadan önce 127.0.0.1/yii/requirements adresinden yii’nin gereksinimlerini karşılayıp karşılamadığımızı kontrol ediyoruz:
Eğer bu sayfada bir hata almamışsak, büyük ihtimalle yii framework’üyle bir sorun yaşamayacağız demektir, devam edebiliriz. Şimdi web dizininde ilkproje isminde bir proje oluşturalım. Bunun için komut satırından web dizinimize gidiyoruz; daha sonra:
cd /yii/framework chmod +x yiic ./yiic webapp ../../ilkproje
komutlarını giriyoruz. Eğer windows kullanıyorsanız “./yiic” yerine “yiic.bat” yazmanız gerekmektedir. Bundan sonra yii bize web dizinimizde ilkproje isminde bir web aplikasyonu oluşturmak istediğimize emin olup olmadığımızı sorar. “yes” yazarak bu ilk projemizi oluştururuz. Burada konsol çıktısı aşağıdaki gibidir.
Create a Web application under '/var/www/ilkproje'? [Yes|No] yes
mkdir /var/www/ilkproje
generate index.php
mkdir /var/www/ilkproje/images
mkdir /var/www/ilkproje/protected
mkdir /var/www/ilkproje/protected/extensions
mkdir /var/www/ilkproje/protected/data
generate protected/data/schema.sqlite.sql
generate protected/data/testdrive.db
generate protected/data/schema.mysql.sql
generate protected/yiic.php
mkdir /var/www/ilkproje/protected/components
generate protected/components/Controller.php
generate protected/components/UserIdentity.php
mkdir /var/www/ilkproje/protected/config
generate protected/config/main.php
generate protected/config/test.php
generate protected/config/console.php
mkdir /var/www/ilkproje/protected/models
generate protected/models/LoginForm.php
generate protected/models/ContactForm.php
mkdir /var/www/ilkproje/protected/views
mkdir /var/www/ilkproje/protected/views/site
generate protected/views/site/index.php
generate protected/views/site/error.php
generate protected/views/site/login.php
mkdir /var/www/ilkproje/protected/views/site/pages
generate protected/views/site/pages/about.php
generate protected/views/site/contact.php
mkdir /var/www/ilkproje/protected/views/layouts
generate protected/views/layouts/column2.php
generate protected/views/layouts/main.php
generate protected/views/layouts/column1.php
mkdir /var/www/ilkproje/protected/controllers
generate protected/controllers/SiteController.php
mkdir /var/www/ilkproje/protected/runtime
mkdir /var/www/ilkproje/protected/commands
mkdir /var/www/ilkproje/protected/commands/shell
generate protected/yiic
generate protected/yiic.bat
mkdir /var/www/ilkproje/protected/migrations
mkdir /var/www/ilkproje/protected/messages
mkdir /var/www/ilkproje/protected/tests
generate protected/tests/WebTestCase.php
mkdir /var/www/ilkproje/protected/tests/functional
generate protected/tests/functional/SiteTest.php
mkdir /var/www/ilkproje/protected/tests/fixtures
generate protected/tests/phpunit.xml
mkdir /var/www/ilkproje/protected/tests/unit
mkdir /var/www/ilkproje/protected/tests/report
generate protected/tests/bootstrap.php
generate protected/.htaccess
mkdir /var/www/ilkproje/themes
mkdir /var/www/ilkproje/themes/classic
mkdir /var/www/ilkproje/themes/classic/views
mkdir /var/www/ilkproje/themes/classic/views/system
mkdir /var/www/ilkproje/themes/classic/views/site
mkdir /var/www/ilkproje/themes/classic/views/layouts
generate themes/classic/views/.htaccess
generate index-test.php
mkdir /var/www/ilkproje/assets
mkdir /var/www/ilkproje/css
generate css/print.css
generate css/form.css
generate css/main.css
generate css/ie.css
generate css/bg.gif
generate css/screen.css
Your application has been created successfully under /var/www/ilkproje.
Şimdi projemize 127.0.0.1/ilkproje adresinden ulaşabiliriz. Biraz komplex bir hello world değil mi

Şimdi burada yii bize güzel bir başlangıç sayfası vermiş ve bu sayfayı nasıl düzenleyebileceğimizi söylemiş. Sayfamızda da yazdığı gibi bu sayfanın içeriğini /var/www/ilkproje/protected/views/site/index.php dosyasından değiştirebiliriz.
Üstteki menüden ise farklı sayfaları gezebiliriz. Bu sayfalara bir göz atalım:
“About”: Bu statik bir sayfadır, yii burada yine bize bu sayfanın içeriğini nasıl değiştirebileceğimizi söylemiş.
“Contact”: Bu sayfa iletişim formunun olduğu bir sayfa. Dikkat etmişseniz textbox’lara girdiğiniz bilgiler ajax ile doğrulanıyor ve de sayfanın altında gerçekten çalışan bir captcha var. Biraz fazla gelişmiş bir “hello world” demiştim:)
“Login”: Bu sayfa da gerçekten çalışmakta olan bir giriş sayfası. Yii bizim için kullanıcı adı ve şifreleri aynı örnek iki adet kullanıcı oluşturmuş: kullanıcı adı ve şifreler ise sayfada yazdığı gibi demo/demo ve admin/admin. Evet buradan anlayabileceğiniz üzere yii bize farklı işlemler için farklı yetkilendirmeler tanımlayabileceğimiz bir sistemi de hazırlamış durumda:)
Yii framework’u ile gayet şık ve işlevsel bir “hello world” hazırladık, ileride daha da derinlere girmek dileğiyle..
Not: Yukarıdaki işlemler Ubuntu 10.10 üzerinde gerçekleştirilmiştir.










Daha önce Yii’de bir şey yaptın mı? Bu ilk sanırım. Birde tavsiye ediyor musun? Ayrıca MVC patterni mi kullanılıyor?
Bir süredir local olarak yii ile uğraşıyorum; daha öncesinde öğrenme safhasında http://emushaf.net‘i yapmıştım. Tavsiye ederim çünkü framework yapısında ne var ne yok import edip sistem kaynağı harcamıyor; gerekli olan şeyleri include ediyor o kadar. Bu nedenle hızlı; güvenlik konusunda gayet beğeniyorum; modellerde validation yapılıyor ve ajax ile validation yapmak için kod dahi yazmıyorsun:) MVC kullanıyor ve büyük projelerde çok ciddi zaman kazancı sağlıyor.
["cd /yii/framework
chmod +x yiic
./yiic webapp ../../ilkproje
komutlarını giriyoruz. Eğer windows kullanıyorsanız “./yiic” yerine “yiic.bat” yazmanız gerekmektedir. "]
windowsta nasıl yapılacağını KOD olarak yazabilirmisiniz…
Windows’da framework nasıl kuruluyor?
Komut satırından yiiframework.com adresinden indirdiğiniz zipi çıkarttığınız klasöre geldikten sonra şu kod çalışmıyor mu?
yiic webapp denemeprojesiEğer çalışıyorsa içinde bulunduğunuz klasöre “denemeprojesi” isminde bir klasör açıp yeni bir web uygulaması oluşturacaktır. Daha detaylı bilgiyi şu adresten alabilirsiniz: http://www.yiiframework.com/wiki/3/how-to-setup-yiic-on-wamp-xp-vista/
C:\xampp\htdocs\PHP_FRMK\yii\framework>
yiic webapp ..\444YENi
yii frameworkü merak edenler aşağıdaki linkten faydalanabilirler.
http://www.erkasoft.com/yii-framework-incelemesi/