Codeigniter MY_Controller Oluşturmak

Codeigniter kullanırken bazen controller’a constructor eklemek gerekebiliyor ama bunu direk constructor yazarak eklerseniz codeigniter hata verecektir.  Bu yüzden codeigniter’ın core klasöründe controller‘ımızı biraz değiştireceğiz. Benim kulanma amacım session kontrol içindi. Bütün controller’lara tek tek eklemek yerine core içine MY_Controller oluşturdum ve bu şekilde hem kod tekrarlamaktan hemde zamandan kazandım. Şimdi kısaca nasıl yapılacağını anlatalım.

İlk önce application/core/ dizinine girin ve MY_Controller.php adında bir php dosyası oluşturun.  Daha sonra oluşturduğumuz dosyayı açalım ve içine aşağıdaki kodu ekleyelim.

Kodu kısaca şöyle açıklayabiliriz. OOP nin miras kalma yani extend özelliğinden faydalanarak CI_Controller classını MY_Controller classına aktardık. Artık MY_Controller içine constructor yazabiliriz. İlk olarak parent’ın yanı CI_Controllerin constructor’ını çağırıyoruz. Artık altına istediğimiz kodları ekletebiliriz. Mesela session kontrol işlemini yapabilirsiniz. Bu sayfayla işimiz bittikten sonra ise kullanımı çok kolay.
Normal bir controller oluşturun ama bu sefer miras alacağınız class MY_Controller olmalıdır.

Artık kontroller için yazdığınız constructor istediğiniz her controllerda çalışacaktır. (Bunu bütün controllerlar için yapmanıza gerek yok sadece gerekli olanlar için kullanın.)

Not  :  Konuda yanlış anlatmışım , direk controller içine contructor yazabilirsiniz , tabi ki parent constructor’ını da çağırmanız gerek. MY_Controller bütün controllerlarda geçerli bir kod yazmak için kullanılıyor.