Güncelleme yapmadan önce statik bir yerde bulunan index.php dosyasını kendi sitenizde çevrimdışı olarak değiştirmelisiniz.
Sistem klasöründeki tüm dosyaları, dizinleri ve index.php dosyasını değiştirin. Eğer index.php dosyasında herhangi bir değişiklik yapılmışsa yenileme yapılması gerekecektir.
CodeIgniter 3.0 ile birlikte tüm sınıf dosyaları (libraries, drivers, controllers and models) içerisindeki sınıf isimleri büyük harf ile başlamalıdır.
Örneğin, library dosyasının içerisinde bulunan mylibrary.php varsa onu Mylibrary.php şeklinde değiştirmeniz gerekecektir.
application/libraries/Mylibrary.php
Sürücü kütüphaneleri içinde aynı durum geçerlidir. CodeIgniter’ın kendi kütüphaneleri ve core sınıfları üzerine yazdırılır ve genişletilir.
application/libraries/MY_email.php application/core/MY_log.php
üstteki dosyalar aşağıdaki gibi değiştirilmelidir:
application/libraries/MY_Email.php application/core/MY_Log.php
application/controllers/welcome.php -> application/controllers/Welcome.php
application/models/misc_model.php -> application/models/Misc_model.php
Lütfen bu durumun sadece sınıflarda uygulandığını dizinleri, yapılandırma dosyalarını, views, helpers, hooks ve başka herhangi birşeyi etkilemediğini unutmayalım.
Bu config dosyası daha fazla kullanıcı içermek için güncellendi. Lütfen onu _application/config/mimes.php e kopyalayınız.
$autoload config dizisi kullanmak CodeIgniter 1.4.1 itibariyle onaylanmamakta ve şimdi ise kaldırılmış durumdadır. $autoload yerine tüm girdileri taşıyabilirsiniz.
Log sınıfı “core ” sınıfı olarak kabul edilirdi. Şimdiyse system/core/ directory dizininde yer almaktadır. Aşağıda olduğı gibi Log sınıflarını application/core altına toplamak gerekmektedir.
CodeIgniter 3 ile birlikte Session library tamamen yeniden yazıldı ve artık yeni özellikler geliyor. Library, cookies’ler yerine ayrı depolama sürücüleri kullanır. Bazı yapılandırma ayarları değiştirilip yerine yenisi getirilmiştir. Aşağıdayapılması gereken değişikliklerin kısa bir listesi bulunmaktadır.
Tablo yapısı biraz değişti artık daha spesifik oldu.
Sadece MySQL ve PostgreSQL destekleniyor. Diğer veritabanlarıyla hala çalışabilir, ancak danışmanlık kilitleme özellikleri eksikliği nedeniyle, onlar eşzamanlı istekleri için güvensiz ve yerine başka bir sürücüyü kullanmayı düşünmelisiniz.
3.0.0 ile config/database.php içinde $query_builderda $active_record değişkeninin yeniden adlandırılması gerekecektir.
CodeIgniter 3.0’da hata şablonları Application/views altına toplanmaktadır Ayrıca, html aksine CLI hata şablonları için destek eklendi.
_application/views/errors/html* ‘den dizini _application/views/errors/cli* olarak yenilenir.
(:any) parça sadece karakter ise eşleştirir.
(.+) herşey eşleşir
(:any) '/' dışında her karakter ile eşleşir
$route ve $route’ ayarlarında sadece bir controler ismi kabul edilmez. 3 ile gelen değişiklerden biri de default_controller’ ve ‘404_override’ directory aracılığıyla uygulanmaz. Bunu açıklamak için aşağıdaki örneği ele alalım
Eğer bir uygulama application/controllers/admin/directory dizininde ve ziyaret dilen sayfa http://example.com/admin/? [example.com] İse ne olacak? CodeIgniter 3 içerisinde router ‘main’ controlerının altındaki admin/ directory dizinine bakıcak eğer bulamazsa sürüm 2.x’de olduğu gibi application/controllers/ dizini çare olacaktır. Aynı kural '404_override' ayarı için de geçerlidir..
Bir çok yöntem ve fonksiyonlar gerekli itemlerıyoksa eğer false yerine null döndürür.
CodeIgniter birçok fonksiyonları talep üzerine XSS filtreleme özelliğini kullanmanıza izin verir. Boolean parametrelerin default değeri False olarak kullanılırdı fakat şimdi Null olarak değiştirilmiş durumda ve $config değeri tarafından belirlenmektedir.
$xss_filter parametresi için manuel bir boolean değer kullanılıyorsa veya $config her zaman false olarak ayarlanıyorsa o zaman bu değişiklik sizi ilgilendirmemektedir.
Aşağıdaki fonksiyonların kullanımını gözden geçiriniz:
küresel XSS filtreleme açıldığında otomatik olarak yazılan bir başka değişiklikler $ _GET, $ _POST, $ _COOKIE ve $ _SERVER’dir.
Uri kütüphanesi Uri segmenti içeriside bulunan belli karakterler kümesinin dönüştürülmesinde kullanılır. $config ayarı bazı otomatik XSS koruması sağlamayı amaçlıyordu fakat bunun sorunlu olduğu anlaşılmış ve Codeıgneter 3 içerisinden çıkarılmıştır.
Eğer bu özelliği kullanmaya devam etmek isterseniz $this->security->xss_clean()ile güncelleme yapılması gerekmektedir.
Adım 13: ‘xss_clean’ form doğrulama kurallarının kullanımı için kontrol
Genelde bilinmeyen kurallar hakkında XSS temizleme veri girişi aksine sadece çıkış için uygulanmalıdır. Otomatik ve küresel XSS temizleme ile kendikendimize hata yapıyorduk şimdi ise form doğrulama listesinden ‘xss_clean’ çıkarılıyor.
Eğer bu kuralı uygulamaya ihtiyaç duyarsanız ‘xss_clean’ içeren Security Helper yüklemeniz gerekmektedir.
Giriş sınıf metodu get_post() ilk post verileri içinde arama yapıyordu daha sonra get verilerine geçilirdi. Bu metod Post da arama yapıldıktan sonra get içinde arama yapmaya yönelik çalışmaktadır.
post_get() metodu eklenmiştir bu metot ile get den sonra post arama yapılmaktadır
Elde edilen dizide, dizinler dizin ayraçları ile ayrılırlar ( genellikle ‘/’ ).
Not: bu verilen örnek Mysql sözdiziminde kullanılmaktadır. Ancak ODBC hariç tüm sürücüler arasında çalışmaktadır.
E-posta Kütüphanesi başarıyla e-posta gönderdikten sonra otomatik olarak ayar parametreleri silinecektir. Bu durumu geçersiz kılmak için send() metodu içerisinde ilk parametre False olarak ayarlanır.
if ($this->email->send(FALSE)) { // Parametreler silinmeyecek }
Adım 18: Form_validation dil bağlantılarınızı güncellemek
Form validation kütüphanelerinin dil dosyaları ve hata mesajları formatına geliştirme yapılmıştır.
Çarpışmalardan kaçınabilmek için dil kütüphalerinde bulunan ‘rule’ önüne form_validation_ ön eki eklenmiştir:
// Eski hali $lang['rule'] = ... // Yeni hali $lang['form_validation_rule'] = ...
Hata mesajları formatı parametre isimleri kullanılarak değiştirildi:
// Eski 'The %s field does not match the %s field.' // Yeni 'The {field} field does not match the {param} field.'
Not: Eski formatta hala çalışmaktadır. Fakat Codeigniter 3.1 + ile ön eksiz bağlantılara karşı koymak için bunun çıkarılması istendiği için kullanmak gerekir. Bu nedenle kullanılması teşvik edilmelidir.
$autoload yapılandırma ayarlarına ek olarak CodeIgniter 3.0.0 içinden çıkarılmış diğer işlevler bulunmaktadır.
Text Helper function highlight_phrase() tarafından varsayılan HTML tag kullanımı <strong>, yeni HTML5 tag’ı <mark> olarak değiştirildi.
mark { background: #ff0; color: #000; };
Yorumlar