Codeigniter Serisi 5 – Controller

PHP Programlama  Mart 1, 2015

Controller konusu en önemli konudur. Çünkü sistem controller üzerinden şekillenmektedir. Bu konuyu iyi anlarsanız CI de sıkıntı yaşamadan ilerlersiniz. İlk olarak hali hazırda bulunan welcome controllerine bakacağız.

Bunun için application klasörümüzde ki controller klasöründeki welcome.php dosyasını açalım. İçerisinde ki kodlara baktığımızda bir class tanımlanmış. Bu classın adı dosya adıyla aynı yani Wellcome. Ancak burada önemli bir husustan bahsetmem gerek ki dosya adları her zaman küçük harfle ve class adlarının ilk harfi her zaman büyükle başlamak zorunda. CI bu kuralı neden koymuş bilemiyorum ancak bu şekilde olmalı diyor.

public olarak bir function var ki adı index yani ana fonksiyonumuz.

 public function index()
 {
 $this->load->view('welcome_message');
 }

Burada görüldüğü gibi fonksiyon öbeğinde tek satırlık bir yordam bulunmakta. Hemen irdelemeye başlayalım.

$this paradigması

CI yüklenecek ve referans edilecek her şeyi Controller classın bizzat içine çeker. Yani sanki class bazında tanımlama yapmışsınız gibi tanımlama adına $this ile erişirsiniz. Erişeceğiniz her şey load ile yüklenmelidir. load ile yapılan çağrılar classınızı override yaparak ilgili nesneyi class içerisinde oluşturur. Yukarıda ki kod bloğunda load işlemi ile bir view yüklenmiş. Bu view welcome_message view’i. Yalnız load olayında bir view load ederseniz bu class içerisinde bir nesne olarak oluşmaz direk response ile kullanıcıya gönderilir. Bunun dışında ki tüm load olayında yüklediğiniz library ve diğer şeyler $this ile erişime sahip olurlar.

Şimdi application dizinimizde ki diğer bir klasör olan views klasörünü açıyoruz. Buraya bakacak olursanız burada da load edilen welcome_message adında bir php dosyası bulunmakta.

2015-03-01-20_36_21-codeigniter4sample-directorylist

Evet yukarıda da klasör ağacımız görülmekte. Şimdi welcome_message.php dosyamızı açalım ve içeriğinde ne var bakalım. Ah bakın içinde bildiğimiz HTML, CSS gibi kodlar bulunmakta. Yani bizim görsel öğelerimiz. Bu ekran nerede karşımıza çıkıyordu? Tabi ki codeigniter projemizi ilk çalıştırdığımız da ekrana çıkıyordu. Zaten CI nin ana ekranında da bu iki dosyadan bahsedilmekte. Artık kendi Controllerimizi oluşturmanın zamanı geldi diyebilirim.

Kendi Controllerimiz

Bu işlem için kullandığınız IDE (php yazdığınız program) çok önemli. Ben NetBeans öneririm. Google üzerinden NetBeans şeklinde arama yaparak indirirseniz faydalı olur. Bu IDE PHP ve başka bir çok dili destekleyen, kodlarını gösteren, github ile çalışabilen, bir çok toolsu bulunan template mantığıyla çalışabilen güzel bir araç.

Her ne ise hemen kendi controllerimizi yazmak için bir isim belirliyoruz. Madem kendi controllerimiz dedik bizimki diye bir isim koyalım. Controllers klasörüne sağ tıklayıp yeni bir php dosyası ekliyoruz. Veya siz nasıl ekliyorsanız.

2015-03-01-21_17_37-codeigniter4samplebizimki1

Burada gördüğünüz gibi bir PHP dosyası ekledik ve adını bizimki.php koyduk. İçine giriyoruz, tabi ki içi boş. Bu aşamada welcome.php nin içeriğini kopyalayıp yapıştırmak en mantıklı iş olacaktır. İçindeki yorum satılarını temizledik ve ortaya şu çıktı.

<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');
class Welcome extends CI_Controller {
 public function index()
 {
 $this->load->view('welcome_message');
 }
}

Şimdi class Wellcome yazan yere ilk harfi büyük olacak şekilde Bizimki yazıyoruz ve kaydediyoruz. Burada welcome_message viewini kullanak ki şimdilik kullanmasında bir sıkıntı yok. Hemen test edelim. CI ana dizininin sonuna /index.php/bizimki yazıyoruz ve karşımıza welcome_message sayfası yüklenerek geliyor.

2015-03-01-21_23_32-Welcomec

Evet kendi controllerimiz çalıştı ve ekrana welcome_message sayfası geldi. Hadi burayı da değiştirelim. Hemen ekrana başka bir şeyler yazdıralım. Bunun için application dizinindeki views klasörüne sağ tıklayıp yeni bir php dosyası oluşturuyoruz. Adı bizimki olsun. İçine de bu bizim ilk sayfamız yazalım. Kaydedip bizimki controller dosyasına geri dönüyoruz ve welcome_message yükleme yerine bizimki yazıyoruz.

public function index()
 {
 $this->load->view('bizimki');
 }

İşte bu kadar basit. Şimdi tekrar bakalım.

2015-03-01-21_27_35-Mozillabizimkijpg

Gördüğünüz gibi controllerimizi çağırdık ve ekrana ilgili sayfa gelmiş oldu. Bu aşamada Controller konusunu tek başına incelemek artık bitmiş oluyor. Sırada Controller-View ilişkisi var. Bunu diğer konumda anlatacağım. Projemizi github üzerinden indirip bakabilirsiniz. https://github.com/halityurttas/codeigniter4sample adresinden projemizi indirmeniz mümkün. Tekrar görüşünceye dek esenlikle kalın…

Bu yazı 2792 defa görüntülendi

“Codeigniter Serisi 5 – Controller” için 2 cevap

  1. Harun Demir dedi ki:

    Çok teşekkürler bu yazılarınız için umarım devamı da gelir. asp.net mvc den bildiğim kadarıyla amatörce php yede mvc yi uyarlamaya çalışarak bir kaç proje geliştirdim. çok zorlandım ama yinede spagetti koddan iyi olmuştu. Sayenizde bu framework’u öğrendimde çok daha hızlı projeler geliştireceğime inanıyorum.

  2. SS dedi ki:

    Eli öpülesi adam TEŞEKKÜRLER. Yazının devam etmesi dileği ile.

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

This site uses Akismet to reduce spam. Learn how your comment data is processed.

Yazar Hakkında

15 yıllık çalışma hayatında birçok proje geliştirmiş binlerce projeyi inceleme fırsatı bulmuş yazılım aşığıdır. İşini hobi olarak gören yazarımız iş hayatını profesyonelce zevkle sürdürmektedir.

Son Eklenenler