Laravel 4, başlı başına yeni bir framework olarak düşünülmelidir. Bu yüzden, L3'te sorunsuz çalışan uygulamalarınızı, olduğu gibi L4'e geçirirseniz, epey bir sorunla karşılaşırsınız. Aklıma geldiği kadarıyla kendi L3'ten L4'e proje aktarma sırasında karşılaştığım hatalardan size de yardımcı olması umuduyla bahsedeyim:
Öncelikle akılda bulundurulması gereken, L3'te
snake_case tarzı yazım geçerliyken, L4'te
camelCase söz konusudur. Buradan yola çıkarak;
Veritabanı:
- L3'te DB::table('users')->where_id(1) şeklinde gönderdiğiniz sorguyu, L4'te DB::table('users')->whereId(1) şeklinde düzenlemeniz gerekmekte.
[Edit: Ben bu mesajı yazarken, siz zaten bu kısmı farketmişsiniz]
- Zorunluluk değil ama aklınızda bulunsun: L3'te, eşitlik kontrol ederken = operatörü, where metodunun ikinci argümanı olarak kullanılmak zorundaydı: where('id', '=', 1) şeklinde. L4'te bu zorunluluk yok: where('id', 1).
Controllers & Routes:
- Restful metotlarınızı get_index, post_message şeklinde değil getIndex, postMessage şeklinde yazmanız gerekmekte.
- Route'da ise restful metotlarınızı kaydederken, artık any metodunu kullanamıyorsunuz:
L3'te
Route::any('link', 'controller@method') ile get_method ve post_method'u kaydedebiliyorken, L4'te Route::get('link', 'Controller@getMethod') ve Route::post('link', Controller@postMethod) şeklinde kaydetmeniz gerekmekte.
Libraries:
L3 projenizde kendi yazdığınız kütüphaneler varsa, bunları L4'e
kendi paketlerinizi oluşturarak, ya da şu şekilde aktarabilirsiniz:
1. app klasoründe libraries isimli bir klasör oluşturun.
2. app/start/global.php dosyasını açarak app_path().'/libraries', satırını addDirectories metodunda bulunan array'e ekleyin.
-----
Şimdilik aklıma gelenler bunlar. Projemi L4'e taşırken bunları yapmak büyük oranda L4'e uyumlu hâle getirdi. Başka aklıma gelirse, onları da yazarım.