Codeigniter Ders - 1 -
Codeigniter Ders - 1 -
Codeigniter ve MVC framework ler hakkında tecrübesi olmayanlar için öğrenme süreci biraz karışık olabilir. Yerel web sunucusuna kurulum ve çalışma mantığını adım adım anlatıyorum ;
- Codeigniter'ı http://codeigniter.com 'dan indirip , web sunucusunun kök dizinine kopyalıyorum. ( Örnek:htdocs/codeigniter_2.1.1 )
- Klasör ismini proje ismi olarak değiştiriyorum ( Örnek: webdersleri) ve application/config.php içerisindeki base_url ve index_page i aşağıdaki gibi değiştiriyorum.
$config['base_url']= 'http://localhost/webdersleri/';
$config['index_page'] = '';
- Proje kök dizininde .htaccess dosyası oluşturup gelen isteklerin codeigniter'ın gerekli işlemleri yaptığı index.php ye yönlenmesini , fakat direkt olarak erişilmesini istediğimiz css/js/resimler gibi klasörleribu kural dışında tutması gerektiğini belirtiyorum. Bu kuralları yazmamın sebebi codeigniter ın çalışma mantığından kaynaklanıyor. Hazırlanan controller lar index.php üzerinden çağırılıyor. ( Örnek , http://localhost/webdersleri/index.php/controller_ismi ) Adres içerisinde controller lara ulaşılırken index.php yazılmasını istemediğimden aşağıdaki kuralları .htaccess dosyası içerisine yazıyorum.
RewriteEngine on
RewriteCond $1 !^(index\.php|favicon.ico|images|img|css|js|robots\.txt)
RewriteRule ^(.*)$ /webdersleri/index.php/$1 [L]
- Bu ayarlardan sonra ilk controller'ımı yazabilirim. Controller'ı application/controllers klasörü altında yazıyorum. Dosya ismi ile controller sınıfının ismi aynı , fakat sınıfın isminin ilk karakteri büyük harfle yazılmalı. main.php içerisinde yazdığım örnek controller'ın kodları ;
- <?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');
- class Main extends CI_Controller {
- public function __construct()
- {
- parent::__construct();
- }
- public function index()
- {
- }
- }
İlk satırdaki kod , bu sınıfa tarayıcı üzerinden direkt ulaşımı engelliyor. BASEPATH , codeigniter ın kök dizinindeki index.php içinde tanımlanıyor , index.php üzerinden gidilmiyorsa aşağısındaki sınıfın kodları çalıştırılmayacak.
İkinci satırda Main isimli sınıfı , extends ile CI_Controller ın genişletilmiş şekli olarak tanımlıyoruz.
__construct() içerisindeki parent::__construct(); ı yazmamızın nedeni , extends kullanarak genişlettiğimiz ebeveyn sınıfın constructor ının kendiliğinden çağırılmıyor olması.
Sonrasında oluşturduğumuz index() fonksiyonu ise herhangi bir parametre almadan çağırılan controller'ın çalıştırdığı metod.
URL ile codeigniter'ın çalışma mantığı şu şekilde ;
Standart kurulum sonrası ;
http://abcde.com/index.php/controller_ismi/controller_icindeki_metod/ilk_parametre/ikinci_parametre
Bir sonraki videoda view oluşturmayı ve controller içerisinden view i yüklemeyi göstericem. İyi çalışmalar..
Video Linki
Hiç yorum yok:
Yorum Gönder