
Her geçen gün yeni bir PHP frameworkün internette ortaya çıktığı şu günlerde Yii Framework başarılı bir açık kaynak projesi olduğunu pek çok programcıya kanıtlamış durumda. Güçlü OOP özellikleri ile Yii frameworkü inceliyoruz.
- Yii Framework MVC
- Yii Framework ORM ve ActiveRecord
- Kod oluşturma, Gii ve CRUD
- Yii Framework ve Ajax
- Dökümantasyon
- Eklentiler ve Zii
- Tema sistemi
- Test Driven Development ve Yii Framework
- Sonuç
Yii Framework MVC
Yii framework yazılım mimarisi iyi düşünülmüş, doğru tasarlanmış bir framework. Esnek OOP yapısına sahip. Başlangıçta şunu belirtelim; eğer OOP’de yeniyseniz veya henüz PHP ile programlamaya yeni başladıysanız Yii size biraz karışık gelebilir. Ancak daha önce bir framework kullandıysanız veya web uygulamaları geliştiriyorsanız Yii’nin sunduğu özellikleri daha iyi anlayacaksanız.
Model
Yii frameworkün en güçlü olduğu bölümlerden birisi model yapısı. Model üzerinde scaffolding sayesinde çok fazla tanımlama yapmanıza gerek kalmadan veritabanı işlemlerini yapmanız mümkün oluyor. Tablo bağlantıları, validation kuralları, saha etiketleri, arama tanımlamaları gibi belirli özellikleri tanımlıyorsunuz. Aslında bu tanımlamaların önemli bir kısmı bir sonraki bölümde anlattığım Gii ile otomatik oluşturuluyor.
Yii frameworkde beğendiğim özelliklerden birisi formlar için CFormModel sınıfından model tanımlanabiliyor olması. Form üzerindeki sahalar validation işlemlerinin daha sağlıklı yapılabilmesi için iyi düşünülmüş bir tasarım.
View
Bir web uygulamasının programcı için iyi düşünülmesi gereken bölümlerinden birisi de View yapısıdır. Layout ve her request için hangi view parçasının gösterileceğini, Yii iyi bir organizasyonla başarmış. Öncelikle Yii içerisinde Blueprint css tanımlı layout yapısı geliyor. Eğer blueprint css konusunda bilginiz varsa kolayca tasarım işini halledebilirsiniz. Sıkça kullanılan 3 ayrı layout mevcut. Controller üzerinde dilediğiniz layout’u seçerek render‘layabiliyorsunuz. View yapısında View/Controller/action.php şeklinde dosya hiyerarşisinde kullanıyor, basit ve pratik. View içerisinde başka bir view parçası kullanılabiliyor.
Widget’lar, bir web sayfasında tekrar tekrar kullanmak isteyeceğimiz, menü, grid vb araçlar. Yii view yapısı içerisinde kullanabileceğiniz pek çok widget olduğu gibi kendiniz de oluşturabiliyorsunuz.
Controller
Controller bölümü iyi bir MVC yapısında mümkün olduğunca az kod içerir. İş kuralları model üzerinde bulunur. Yii framework, Controller üzerinde hangi layout’un kullanılacağını, hangi tür kullanıcıların hangi action‘ları çalıştırmada yetkili olacağını kolayca tanımlamanıza imkan veriyor.
Yii Framework ORM ve ActiveRecord
Yii framework ORM (Object Relational Mapper) yapısını; Doctrine, Propel veya RedbanPHP gibi başka ORM çözümlerine ihtiyaç bırakmadan rahatlıkla kullanabilirsiniz. SQL sorgularını kolayca oluşturabileceğiniz bir sınıf yapısına sahip. Öte yandan ActiveRecord özelliği ile CRUD işlemleri kolaylaşıyor.
Yii Framework ile yeni bir kayıt oluşturmak birkaç satır kod ile mümkün.
$yeniAdres=new Adres; $yeniAdres->adres_satiri='örnek sokak'; $yeniAdres->sehir ='istanbul'; $yeniAdres->create_time=time(); $yeniAdres->save();
Yii Framework ile kod oluşturma Gii
Yii framework, kod oluşturma konusunda Gii aracını kullanıyor. Ama önce uygulamayı oluştururken yiic komut satırı aracını kullanıyorsunuz. Aşağıdaki gibi bir komut ile web çalışan iskelet uygulamanız hazır hale geliyor.
% YiiRoot/framework/yiic webapp WebRoot/uygulamaadi

Yiic oluşturduğu iskelet uygulamada gerekli klasörleri açıyor, hatta iletişim formunu bile captcha hazır biçimde geliyor.
Gii aracı ile model, controller, view, modül, form ve CRUD oluşturabiliyorsunuz. Veritabanın oluşturduktan sonra Gii size uygulamanızı oluştururken zaman kazanmanızı sağlıyor. CRUD (Create, Read/Retrive, Update, Delete) işlemlerini tanımladığınız bir model için birkaç tanımlama ile oluşturmanızı sağlıyor. Yii frameworkün bu özelliği, oluşturacağınız bir web uygulamasının yönetim panelini oluşturmanızda büyük bir yardımcı.
Yii Framework ve Ajax
Yii frameworkde Jquery dahil geliyor. Formlarda ajax ile validation özelliği var. Hatta Gii ile oluşturduğunuz CRUD yapısında açıklamalarla kapalı tutulan ajax özelliğini kolayca açmanız mümkün.
// Uncomment the following line if AJAX validation is needed // $this->performAjaxValidation($model);
Yii framework ile JQuery’nin UI özelliklerini kolayca kullanabiliyorsunuz. Yii frameworkün eklentiler bölümünde jquery ile oluşturulmuş pek çok eklentiden ihtiyacınız olanı da seçebilirsiniz.
Dökümantasyon
Yii framework dökümantasyonu karşılaştığım pek çok PHP frameworkden daha başarılı olmuş. Hemen hemen tüm özelliklerin üzerinden geçildiği guide kısmının yanında, örnek bir blog uygulaması için de bir döküman oluşturulmuş. Class yapısının anlatıldığı API bölümünde her sınıfın özellikleri, metodları ve kodlarını kolayca inceleyebilirsiniz. Ayrıca topluluk desteği ile wiki bölümünde karşılaşabileceğiniz sorunlar için çözüm yollarını bulabilirsiniz. Aktif forum bölümünde sorularınız sorma şansınız da var.
Yii Framework Eklenti Sistemi
Pascal-Delphi zamanından beri iyi bildiğim bir konuda bir programlama aracının eklentilerinin zenginliği ile o aracının başarısının doğru orantılı olduğu. Yii frameworkün eklenti bölümünde hazır pek çok eklentiyi bulabilirsiniz. İster bir menü, isterseniz bir kullanıcı modülü olabilir. Ama Yii içerisinde bulunan Zii widgetları; CGridview, CListView ve CMenu gibi hazır araçlar bana göre en çok kullanacağınız widgetlar.
Tema sistemi
Ana dizinde oluşturulan Themes klasörü ile Yii framework, uygulamanızın farklı temalar oluşturarak farklı görünmesini kolayca sağlıyor. Bu bölüm bana WordPress tema sistemini hatırlarttı. Dilediğiniz kadar tema oluşturarak uygulamanızı kullanacak web sitelerinin özgün görünmelerini sağlayabilirsiniz.
Test Driven Development ve Yii Framework
Test işlemleri, bir programlama çalışmalarının vazgeçilmez faaliyetlerinden. Uygulamayı hatasız oluşturmak için en başta test ederek geliştirmek en sağlıklı yol. Yii framework ile geliştirdiğiniz projenizin birim testini phpunit ile, fonksiyonel testi selenium ile yapabilirsiniz. Yii framework test sistemi, test için özel sınıflar ve hazır konfigürasyonla sizi test kuruluşunda çok uğraştırmıyor.
Sonuç
Burada detaylarına giremediğim pek çok konu var. Temel bir kullanıcı yapısını ihtiyaçlarınıza göre geliştirmeniz mümkün. Çok dil destekli uygulama geliştirmek (i18n) için Yii birden fazla seçenek sunuyor. UrlManager ile SEO uyumlu, kullanıcı dostu URL’ler oluşturmanız çok kolay.
Projenizi yiic ve Gii ile araçları ile kolayca oluşturup, Zii widgetları ile ihtiyacınıza göre verilerin sunumunu hazırlayabilirsiniz. Yii uygulamayı hızla oluşturmanıza yardımcı oluyor.Kısacası, Yii framework bir web uygulasında ihtiyaç duyabileceğiniz pek çok özelliği barındırıyor ve mutlaka değerlendirmeniz gereken bir seçenek.
Yii framework web sitesi: www.yiiframework.com

Paylaşım için teşekkürler. Büyük ve kaliteli bir web projesi için framework şart, YII güzel bir seçenek gibi görünüyor. Deneyip göreceğiz.
Teşekkürler gerçekten güzel bir makale olmuş,
Yii Hakkında bir tane kötü yoruma denk gelemedim gerçekten iddiası kadar hızlı bir framework mu acaba deneyip göreceğiz.