Codeigniter 2.0'a Geçerken Dikkat Edilmesi Gerekenler

Codeigniter 2.0a Geçerken Dikkat Edilmesi Gerekenler Geçtiğimiz günlerde navruz.net'i Codeigniter 2.0-dev sürümüne yükselttim. codeigniter.gen.tr'nin yöneticisi Fatih Bazman bu konudaki deneyimlerimi paylaşmamı önermişti.

Bilindiği üzere Codeigniter 2.0-dev sürümü bitbucket üzerinden yayınlanıyor. Sizde benim gibi yeni özellikleri kullanmakta sabırsızlanıyorsanız mevcut sistemlerinizi Codeigniter 2.0 sürümüne yükseltebilirsiniz. Codeigniter 2.0 oldukça stabil olduğundan resmi sürüm yayınlanmadan kullanmaya başladım.Yaptığım değişikler dışında küçük bir araştırma yapıp bu konuda yayınlanan yazılardanda alıntı yaptım yazımda.

Öncelikle bitbucket üzerinden Codeigniter 2.0-dev sürümünü indirmekle başlıyoruz. Bunun yanısıra mevcut ayarlarımızı kaybetmemiz için config/ klasörlerinde dosya karşılaştırması da yapmanızı öneririm. Bu işlem için uzun süredir kullandığım Winmerge programını kullanmanızı öneririm. Buraya tıklayarak son sürümünü indirebilirsiniz.

Eklenecek/Silinecek Klasör/Dosyalar

Yeni sürümde application/ klasörü system/ klasörünün dışına, yanı sitemizin ana dizinine taşınmış durumda. Eğer application klasörünün system klasöründe ise öncelikle onu ana dizine taşımalısınız. Taşıdıktan sonra system klasörünü siliyoruz. Çünkü PHP 5'e geçilmesiyle beraber bazı dosyalar system klasöründen kaldırıldı. Eski ve işimize yaramayan dosyaları gereksiz yere sistemde tutmak istemeyiz öyle değil mi?

Bu işlemden sonra indirdiğimiz Codeigniter 2.0 dosyalarından system klasörünü ve index.php dosyasını sitemizin ana dizinine kopyalıyoruz. Sakın application klasörünü kopyalamayın. Yoksa tüm ayarları tekrar yapmanız gerekecek. Daha sonra application/config klasöründeki foreign_chars.php ve profiler.php dosyalarını kendi application/config klasörüne kopyalayın ve Winmerge programı yardımı ile application klasöründeki config klasörlerini karşılaştırın. Yeni eklenen ve çıkarılan satırları bu program yardımı ile düzenleyin. Yok bu programı kullananmam diyorsanız config klasörünü komple kopyalayın ve eski ayarlarınızı yeni dosyalarda düzenleyin.

Bir diğer yenilikse application klasörüne eklenen core klasörü(Aynı zamanda system klasöründe de bu klasör mevcut). Sistem ile ilgili kütüphaneler artık core klasöründe bulunuyor. Yani extend ettiğiniz sistem kütüphanelerini libraries klasöründen core klasörüne taşıyacağız(Örneğin MY_Loader.php, MY_Controller). Burada dikkat etmeniz gereken nokta sisimleri MY_ ile başlayan tüm dosyaları taşımamamız gerektiği. Örneğin pagination kütüphanesinin extend ettiyseniz (Yani MY_Pagination.php dosyanız varsa) bu dosyayı taşımıyoruz. Çünkü system klasörüne bakarsanız Pagination.php dosyası core klasöründe değil libraries klasöründe bulunuyor.

Bilindiği üzere pluginlerde Codeigniter 2.0 ile birlikte tarihe karışıyor. application/plugins klasöründe plugin dosyalarını varsa bunları helper dosyası olacak şekilde düzenleyerek helpers klasörüne taşıyın.

application Klasöründe Yapacağımız Dosya Düzenlemeleri

Hazır pluginlerin kaldırılmasında bahsetmişken buradan başlayalım. Yukarıda pluginleri helper dosyası haline getirmeniz gerektiğini söylemiştim. Yani uygulamanızdaki plugin kullandığınız tüm dosyalarda gerekli düzenloemeleri yapmalısınız. $this->load->plugin() şeklindeki kodlarınızı $this->load->helper() şeklinde düzenlemelisiniz.

Artık tüm çekirdek sınıflar CI_ ön takısını kullanıyor. Yani tüm controller ve model dosyalarmızda değişiklik yaparak extend ettiğimiz sınıf ismini model dosyalarında CI_Model, controller dosyalarında CI_Controller olarak değiştirmemiz gerekiyor. Örneğin önceden kullandığımız class Post extends Controller gibi bir ifadeyi class Post extends CI_Controller olarak değiştiriyoruz. Aynı değişiklik model dosyalarımızda ve extend ettiğimiz diğer kütüphane dosyalarında da geçerli.

PHP 5 versiyonuna geçişle birlikte tüm yapıcı metodların isimlerinin de __construct olarak düzenlenmesi gerekiyor. Örneğin controller dosyalarımızdaki parent::Controller(); kodları parent::__construct(); olarak değişmeli. Bu değişikliği controller, model ve extend ettiğimiz tüm sistem kütühanelerinde de yapmalısınız.

Diğer Düzenlemeler

Yukarıda bahsettiğim değişikliklerin yanında benim karşılaşmadığım, ama araştımalarım sonucunda karşılaştığım bazı değişikliklerde var.

  • Validation.php dosyası kaldırılmış. Eğer eski kütühanelerden Validation kütühanesini kullanıyorsanız Form_Validation kütüphanesini kullanacak şekilde kodlarınızı revize etmelisiniz.
  • CI_Language kütühanesinin ismi CI_Lang olarak değişmiş.
  • Bazı eski veritabanı fonksiyonları kaldırılmış.
  • CI_Base kaldırılmış. Codeigniter süper nesnesi artık CI_Controller sınıfı ile başlıyor.

Tüm bu değişiklikler sistemimizi Codeigniter 2.0 sürümünü kullanacak şekilde güncellememiz için gerekli olan işlemlerdi. Yapılan yenilik ve eklemelerden bahsetmedik henüz. Zira oldukça kullanışlı bazı yenilikler, kütüphaneler ve helper fonksiyonlarıda yeni sürüme eklenmiş. Bunlarıda bir başka yazıda paylaşırım İnşallah. Umarım yeni sürümde kısa zaman içerisinde çıkar.

Kaynaklar
Upgrading to Codeigniter 2.0
CodeIgniter 2.0 Release: Upgrading from Previous Versions

Bu yazı en son 18 Şubat 2011 tarihinde düzenlenmiştir ve güncelliğini yitirmiş olabilir.

blog comments powered by Disqus

© Mustafa Navruz 2011 0.0164 sn.

^ Başa Dön