Salı, 16 Mart 2010

CodeIgniter 2.0 Yayına Hazır

 

CodeIgniter uzun süren sessiliğini yeni çıkaratacağı 2.0 versiyonu ile bozuyor. Ellislab, CodeIgniter 2.0 ile beklenilen büyük adımı atarak kodlarda köklü değişikliğe gidiyor. Bu yazıda ana hatlarıyla değineceğim değişiklikler, 2.0 versiyonu yayımlandığında uygulamaya geçecektir. Değişiklik kayıtlarında anlatılanları buraya yazmak yerine, köklü değişikliklerden ana hatları ile bahsetmek isterim.

PHP4 Desteği Kalkıyor

Diğer PHP çatılarından ayıran en önemli özelliği olan PHP4 desteği, versiyon 2.0 ile birlikte kalkıyor. CodeIgniter 2.0 sadece PHP5+ desteği verecek. Böylece CodeIgniter çekirdeği PHP5`in avantajlarından yararlanarak yenilendi. Abstract sınıfları, _construct ve _deconstruct özellikleri gibi yeni özellikler ile güçlendirildi. Diğer değişiklikler bir yana, CodeIgniter 2.0 için en önemli değişiklik PHP4 desteğinin sona ermesiyle PHP5è geçmesi olacaktır.

Application Paketleri Geliyor

Bazı kullanıcılar, internet kullanıcıları için ayrı, site yönetim paneli için ayrı application dizinleri oluşturup çalışırlar. Bu farklı dizinler altında bazı dosylar (helpers, libraries vs.) aynıdır. Ancak bu yöntem değişikliklerin farklı farklı dosyalarda birden fazla yapılmasına sebep olmaktadır. Bunu önlemek için CodeIgniter 2.0 ile artık application dizini altına kendi ismini verdiğimiz bir dizin açarak, bu dizin altına kaydettiğimiz ortak dosyalarımızı (helpers, libraries vs) controller içinden doğrudan çağırabileceğiz.

Örneğin application/app dizini altına controller, model, view dizinlerini açıp kodladığımızı düşünelim. Aynı şekilde uygulamanın yönetim panelini de application/backend dizini altına controller, model, view dizinlerini açıp kodladığımızı düşünelim. Her iki uygulamada kullanacağımız helpers ve libraries dosyalarını da application/_common dizini altına yazalım. Helper dosyalarını çağırırken yazağımız kod şöyle olacaktır:

$this->load->add_package_path(BASEPATH.'application/_common/');
$this->load->helper('benim_helper');

Driver Dosyaları Yazacağız

Driver yeni bir kütüphane ismi. Driver olarak yazacağımız kütüphanler sınıfları ve metodlarını kullanmada işimize yarayacaklar. Böylece ana ve alt sınıflar ile onların metodlarına kolayca erişeceğiz. Kodlar daha temiz ve anlaşılır olacak.

//Driver dosyamızın adı ana_sinif olsun
$this->load->driver('ana_sinif');
 
// Bu sınıfa bağlı bir method çağırırsak:
$this->ana_sinif->ilk_method();
 
// Alt sınıflara ait methodları çağırma:
$this->ana_sinif->alt_sinif->birinci_method();
$this->ana_sinif->alt_sinif->ikinci_method();

Plugin Dosyaları Kaldırılıyor

Eski usul programlamaya kapı açan plugin dosyları tarih oluyor. Böylelikle programcıların OOP kullanımı, temiz ve anlaşılır kod yazımı daha çok teşvik ediliyor. Artık ister istemez eski alışkanlıklarımızla bugüne kadar getirdiğimiz kütüphanelerimizi değiştirmek zorunda kalacağız.

Versiyon Kontrol Sunucusu Değişti

Ellislab, versiyon kontrol sunucusu olarak subversion yerine mercurial kullanmayı seçmiş. Burada anlatılan kodları incelemek isterseniz, yeni sunucu olan BitBucket sunucusunu kullanabilirsiniz.

Ana hatlarıyla CodeIgniter 2.0 da yapılan büyük değişikliklerden bahsettim. Bu yazıyı hazırlarken Elliot Haughin`in incelemesinden faydalandım.

Yorumlar

teşekkürler, elinize sağlık

Fatih yeni projemde CI 2 nin çıkmasını bekliyorum, biliyorsun php6 da php4 fonksiyonlarının birkaçının desteği kalkacak o yüzden beklemedeyim.

CI 2 nin çıkış tarihi belli oldumu acaba

@Erhan: Tam çıkış tarihi belli değil ama Ellislab bu versiyon kullanıcılar tarafından denensin bug tespiti yapılsın amacıyla bitbucket üzerinden yayımladı.

Çıkış tarihi belli olmamakla birlikte, 2.0 versiyonunu yazıda verdiğim linkten indirerek kullanabilirsiniz.

Benim yeni projemde yönetici, moderator ve yazar panelleri var. Hepsi için CI2 de 4 ayrı application dizini kullansam bir tane de ortak dizin yapıp library dosyalarımı oradan yüklesem herhangi bir performans kaybı yaşarmıyım, yoksa modul şeklinde mi yapmam lazım.

Burada büyük sitelerde modul yapmak daha avantajlı diyor. CI2 ile gelen ortak library ile değişik app ler yapmak daha avantajlı oldu gibime geliyor. Sence nasıl bir yol izlemem gerekli.

@Erhan: Bana kalırsa 2.0 versiyonundaki organizasyon daha uygun olacak ancak kodların yayım tarihi henüz belli değil. Bu konu üzerine Google groups'ta bir tartışma açarsan senin için daha faydalı olacaktır.

merhaba ben php framework kullanmak istiyorum, önce siteyi bilgisayarda yani localhost oluyor bu sanırım.. Burda siteyi oluşturup daha sonra hosta atmak istiyorum bunun için gerekli programlar nedir.. Codeigniter ile site yapmak için gerekli programlar nelerdir.. Hangi siteye baksam codeigniterı indirip localhosta atıyoruz sonra walcomeyi kodlarını değiştirip Türkçe yapıyoruz diyor direk kod yazmaya geçiyor localhost nedir yada localhost nasıl yapılır bununla ilgili ayrıntılı bilgi yok yada kodları yazmak için hangi programla php leri açıyoruz bunu söylemiyor ingilizce anlatımlı bir videoda kodları yazarken c# daki gibi yazmak istediğimiz kodu altta çıkaran bir menü geliyor bu hangi program yardımcı olursanız sevinirim

@hakan
localhost nedirlocalhost kendi bilgisayarında kullandığın web sunucusunu temsil eder, normal hostlarda da benzeri sistemler kullanılır burdaki amaç kod yazarken host kullanmadan daha hızlı şekilde kodlarını yazman ve denemendir.

Localhost yani kendi webserver ini kurmanın birden fazla yolu vardır ama yeni başlayan biri isen php için gerekli yazılımları
Webserver : Apache
Veritabanı  : Mysql
ve php kurulumu için ben xampp adlı yazılımı kullanıyorum
http://www.apachefriends.org/en/xampp.html

başka önerilerde olacaktır ama alışmış kudurmuştan beterdir :)

Normal kurulumu c:\xampp altındadır ve kök klasörü yani dosyalarını kopyalacağın her c:\xampp\htdocs klasörüdür
bu klasörün altına codeigniter diye bir dizin açıp içine dosyaları kopyalarsan http://localhost/codeigniter adresinden çalıştıracaksın.

php kodlarını herhangi bir text editorden (notepad,notepad++,editplus) ben şahsen editplus kullanıyorum yada Dreamviewer gibi yazılımlarla düzenleyebilirsin.

odları yazarken c# daki gibi yazmak istediğimiz kodu altta çıkaran bir menü geliyor bu hangi

Videoyu görmeden bir şey diyemem ama ücretli olur genelde iyileri benim önerim Nuspehere firmasının PHPed isimli yazılımı bence php konusunda yazılmış en iyi yazılımlardan birisidir.

Eğer C# ile ilgilendiysen Code Igniter'in yapısı sana tanıdık gelecektir, ama yeni php ye başlıyorsan daha temelden başlamanı öneririm.

C# Yazılım geliştirenler için web dili gibi bir konumda şu anda :)

Php Web Programcıları tarafından geliştirildiği için yapısı masaüstü yazılıma azcık biraz uzaktır (Kişisel görüşüm)

www.php.net sitesinde bulunan dökümanları incelemeni tavsiye ederim hem başlarken hem ileri düzeyde işine çok yarayacağını umuyorum

sorularımı fazlasıyla yanıtlamışsınız çok teşşekür ederim evet c# la ilgilendim ve şuanda hala ilgileniyorum.. Ayrıca codeigniter.gen.tr yi kuran arkadaşlara teşekkürler sanırım siteye reklam bile koymamışlar ingilizce kaynaklardan pek anlamayanlar için çok güzel bir site yolunuz açık olsun

CodeIgniter 2.0 çıkış tarihi belli değil ama 1.x li versiyonlardan geçiş 15 dakika sürüyor deniliyor heryerde. Bilginize.

Yorum Ekle