yii framework
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 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

yii framework demo application
Yiic oluşturduğu iskelet uygulamada gerekli klasörleri açıyor, hatta iletişim formunu bile captcha hazır biçimde geliyor.

yii framework demo application captcha

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

Etiketler: , , , , , ,
Ertan Kayalar

Ertan, PHP ve MySQL web geliştiricisi. Yii PHP Framework ve diğer başlıca PHP frameworkler üzerinde web tabanlı uygulamalar geliştiriyor. Bu sitenin yanında WTS ve erkasoft sitelerinde web tasarım, programlama ve linux hakkında makaleler yazıyor.

2s Cevap   “Yii Framework İncelemesi”

  1. Orkan Metin

    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.

    Cevapla
  2. Kemal

    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.

    Cevapla

Bir Cevap Yazın

%d blogcu bunu beğendi: