Anasayfa » Codeigniter, Php

Codeigniter Dersleri – 3 – Parametreler

14 Haziran 2011 10.263 kez okundu 18 yorum
1 Star2 Stars3 Stars4 Stars5 Stars (7 oy,5 üzerinden : 5,00 )
Loading ... Loading ...

Üçüncü yazımda controllerden view dosyalarına parametreleri nasıl göndereceğimizi anlatacağım.

Bundan sonraki derslerde hep aynı projeyi geliştirerek devam edeceğiz. Bu sayede gereksiz kod yazımından kurtulmuş olacağız ve sonunda elle tutulur bir projemiz olacak.Projemiz temel çıtasıyla bir pizza sipariş sayfası olacak, Pizza siparişi verilen sayfa ve siparişlerin göründüğü sayfadan oluşacak.

Şimdi dersimize dönelim.Projemiz için application/controllers  klasörü altına pizza.php dosyası oluşturalım ve içine aşağıdaki kodları ekleyelim.

<?php
 
class Pizza extends CI_Controller 
{
	function __construct()
	{
		parent::__construct();
	}
	function index()
	{
		$this->load->view('pizza_view');
	}
 
}
?>

Şimdi de application/views klasörü altına pizza_view.php dosyası oluşturalım ve alttaki kodları ekleyelim.

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-9" />
<title>Kodmerkezi.net Pizza Sipariş Sayfası</title>
</head>
 
<body>
<h1>Siparişler</h1>
Sipariş Yok
</body>
</html>

Şimdi adres çubuğuna http://localhost/CodeIgniter/index.php/pizza/index  yazalım ve projemizi çalıştıralım.

Buraya kadar herşey normaldi. Şimdi view dosyamıza nasıl parametre göndereceğimizi görelim. Controllers altındaki pizza.php dosyamızı aşağıdaki şekilde güncelleyelim.

<?php
 
class Pizza extends CI_Controller 
{
	function __construct()
	{
		parent::__construct();
	}
	function index()
	{
		$title='Kodmerkezi.net Pizza Sipariş Sayfası';
		$header='<h1>Siparişler</h1>';
		$orders='Sipariş Yok';
		//Şimdi üstteki değişkenleri bir araya toplayalım. Bunun için hepsini data dizisinin içine atalım.
		$data['title']=$title;
		$data['header']=$header;
		$data['orders']=$orders;
		$this->load->view('pizza_view',$data);
	}
 
}
?>

Views altındaki pizza_view.php dosyamızı aşağıdaki şekilde güncelleyelim.

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-9" />
<title><?php echo $title; ?></title>
</head>
 
<body>
<?php echo $header; ?>
<?php echo $orders; ?>
</body>
</html>

Şimdi ne yaptık?

controller dosyasından view dosyasına göndermek istediğimiz değişkenleri bir array içine atıyoruz ve view dosyasını çağırdığımız komuta ikinci parametre olarak arrayimizi veriyoruz.

Üstteki kodda oluşturduğumuz array $data idi. Bunuda view dosyasına göndermek için
$this->load->view(‘pizza_view’,$data);
şeklinde kullanıyoruz.

View dosyasına geçersek arrayin parametrelerini direk olarak olarak view dosyasında kullanabiliyoruz. Örneğimizde $data arrayinde mesela ‘title’ değişkeni bulunmakta ve biz bunu pizza_view.php dosyasında direk olarak
<title><?php echo $title; ?></title>
şeklinde kullanabiliyoruz.

Şimdi bir kez daha adres çubuğuna http://localhost/CodeIgniter/index.php/pizza/index yazıp çalıştırabiliriz. Gönderdiğimiz parametreler sorunsuz adrese ulaşmış oldu.

Biz projemizde default olarak bu class ve fonksiyonu (yani pizza/index) kullanacağız. Bu yüzden her defasında adres çubuğuna bunları yazmak istemiyoruz. Bunun için bir routes dosyasında bir ayar yapacağız. Application/config/routes.php dosyasında
$route[‘default_controller’] = “welcome”;
satırsını buluyoruz ve
$route[‘default_controller’] = “pizza”;
ile değiştiriyoruz. Artık projemizi http://localhost/CodeIgniter/ şeklinde çalıştırabiliriz. Sistem otomatik olarak pizza classına yönlendiriyor ve oradanda default olarak index fonksiyonu çağrılıyor.

Default classımızı application/config/routes.php dosyasında $route[‘default_controller’] satırında belirleyebiliriz.

 

Şimdi de view dosyalarımızda php kodlarımızı nasıl daha kısa yazacağımızı görelim. Bunun için öncelikle application/config/config.php dosyamızda
$config[‘rewrite_short_tags’] = FALSE;
satırını buluyoruz ve bunu TRUE yapıyoruz. Daha sonra php kodlarımızı daha kısa yazabiliriz.

Örneğin:
<?php echo $title; ?> yerine
<?=$title?> şeklinde kullanabileceğiz

pizza_view.php dosyamızı aşağıdaki şekilde tekrar düzenleyebiliriz.

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-9" />
<title><?=$title?></title>
</head>
 
<body>
<?=$header ?>
<?=$orders ?>
</body>
</html>

Bu sayede kodlarımızı daha da kısaltmış olduk.

 

<<< Önceki:

Sonraki: >>>


Facebookta Paylaş

18 yorum »

  • fatih dedi ki:

    Netbeans ta CI_Controller yazınca kabul etmiyor.sadece Controller yazmak gerekiyor.Notepad++ da tam tersini istiyor CI_ yazmassak hata veriyor.

  • admin dedi ki:

    Ben notepad++ kullanıyorum, Bu sorun birazda php sürümünden kaynaklanıyor yanlış bilgi vermeyeyim yanlışım varsa düzeltin ama php 5 ile birlikte phpde class kullanımı geldi, ve constructure yapısı değişmiş oldu. Bunu bir araştırın. Codeigniter php5 ve üzerinde biraz farklı, php5 altında ise biraz faklı tanımlanıyor.

  • Hasan Hüseyin İŞLER dedi ki:

    Artık codeigniter ile ilgili böyle türkçe kaynaklar da görmek gerçekten güzel. Elinize sağlık gayet güzel anlatmışsınız. En zor olanda yazılı olarak programlama anlatmak. Tek bir şey merak ediyorum sisteminiz zannedersem wordpress, sizin kodladığınız bir blog varmı ci ile

  • admin dedi ki:

    makale.kodmerkezi.net için wordpress altyapısı kullanıyorum. Ancak bunun dışında kalan bölümlerin, (anasayfaya giderek görebilirsiniz) kodlaması ve tasarımı bana aittir. Kodlamayı ise codeigniter ile değilde klasik php ajax jquery ile oluşturdum. Benimde şu anda vakit buldukça üzerinde çalıştığım projeler var ancak yayında değiller.

  • Mehmet Doğan dedi ki:

    Böyle Bir Kaynak Yayınladığınız İçin Çok Teşekkürler…

  • Memo dedi ki:

    Ellerinize saglik böyle bir kaynaga ihtiyac vardi codeigniter.gen.tr’dede güzel örnekler olmasina ragmen bu kaynak ile bir tutulamayacak kadar güzel hazirlamissiniz ellerinize saglik cok sagolun isime cok yaradi…

  • levent dedi ki:

    çok işime yaradı teşekkürler.

  • ahmet dedi ki:

    gerçekten çok iyi devamını bekliyoruz

  • Web Baharatı dedi ki:

    Teşekkürler.. Güzel anlatım..

  • Cansu dedi ki:

    Codeigniterden hem korkuyordum yeni bir şey diye hem öğrenmek istiyordum. Görsel eğitimlerden daha yararlı buldum anlatımını, paylaştığın için teşekkürler.

  • kaya dedi ki:

    güzel ve zevkli bir anlatım.. emeğinize sağlık 🙂

  • Metin dedi ki:

    ben pek yorum yazmam. ama bu codeigniter konuları için teşekkür etmeden de olmaz.

    elinize, yüreğinize sağlık.

  • demir dedi ki:

    hocam öncelikle yazı icin teşekkürler fakat standart bır anlatım olmus söyleki

    CI_Controller ,parent::__construct(); bu gıbı terımlerın ne olduğu anlatılırsa ben ve benım gıbı yenı baslayan arkadaşlara daha yardımcı olur. amacım eleştırmek değil bılmeyen bırının ıhtıyaclarını anlatmak.

  • admin dedi ki:

    Geri bildiriminiz için teşekkürler.

  • Cemal dedi ki:

    Merhaba,

    İlgili videolarda dinledim ancak bu yazı ile Controller, View mantığını daha iyi anladım,
    Teşekkür ederim. Eline sağlık…

  • Agah dedi ki:

    Dersler için teşekkürler kardeşim, emeğine sağlık 🙂

  • Mehmet dedi ki:

    Codeigniter hakkında başlangıcı bu bilgilerle yapmıştım.
    Şu an ilk codeigniter tabanlı sitemi yapmış bulunmaktayım.
    Emek veren herkese çok teşekkür ederim.
    İleri seviye CODEİGNİTER paylaşımları yayınlamanızı bekliyorum.

  • Mavi dedi ki:

    Merhaba, öncelikle paylaşımınız ve anlatımınız için teşekkür ederim.
    Özellikle benim gibi acemilerin çok işine yarayacaktır.
    Yazıda belirtildiği gibi işlemleri yaptım ama “sayfa bulunamadı” hatası alıyorum. Nedeni hakkında bir fikriniz var mı? (sadece, yazıda pizza olarak yazan kısımları “tavsiye” olarak değiştirdim)

Yorum Bırakın!

Yorum yaz, yada kendi sitende trackback (Geri besleme) olarak ekle. Ayrıca RSS ile bu konuya üye olabilirsin. .

Nazik olun. Temiz tutun. Konu dışına çıkmayın. Spam yaratmayın.

Bu tagları kullanabilirsiniz:
<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

Bloğumuz gavatarı desteklemektedir. Kendi gavatarınızı edinmek için lütfen Gravatar a üye olun.