ibonette.com | CodeIgniter -1 : Başlangıç

ibonette.com

Samimi olmayi vaat edebilirim ama tarafsiz olmayi asla…
Subscribe

CodeIgniter -1 : Başlangıç

Aralık 13, 2008 Yazan: ibrahim Kategori: PROGRAMLAMA

Web programlama ile ilgilenenler iyi bilirler, son dönemde bir framework furyası aldı başını gidiyor. Bu konuda yüzlerce alternatif arasından seçim yapmak bile başlı başına bir iş… Bunlardan, basitliği ve kullanım kolaylığı ile dikkat çeken Codeigniter ( kısaca CI olarak bilinir) gerçekten güzel bir framework. Fırsat buldukça CodeIgniter hakkında çeşitli yazılar yazmaya çalışacağım.

Framework Nedir Ve Neden Kullanılır?

Framework’leri, sürekli olarak kullandığımız bazı işlevlerle ilgili olarak, güvenilirliği test edilmiş sınıflar, fonksiyonlar ve kod parçacıklarının oluşturduğu bir çalışma çatısı olarak tanımlayabiliriz. Örneğin veritabanı bağlantısı ve sorgulama, dosya işlemleri, güvenlik vb amaçlarla kullandığımız kodları her seferinde tekrar tekrar kodlamaktansa bunları sınıflar ve fonksiyonlar halinde bir çatı altına toplarsak framework elde ederiz. Daha sonra her projede bu temel çatı üzerinde geliştirerek gerekli gördüğümüzde framework kütüphanemizdeki kodlarımızı kullanır ve gerekirse kütüphanemize yeni kodlar, sınıflar ekleyebiliriz.

Özellikle nesne tabanlı programlama yaklaşımının bir standart haline geldiği bugünlerde framework ler giderek bir ihtiyaç haline gelmiştir. Bu sayede programcılar framework kütüphanesinde tanımlı sınıflardan nesneler oluşturarak çok pratik ve hızlı bir şekilde kod geliştirebilmektedir.  Ayrca daha temiz ve güvenli kod yazmayı da sağlar.

.net framework gibi birçok programlama diline hizmet eden frameworkler olduğu gibi CodeIgniter gibi sadece belli bir programlama diline yönelik frameworkler de mevcuttur.  Php diline yönelik CI nin yanında, Zend, cakephp, symfony   gibi frameworkler de mevcut olup, her geçen gün yenileri eklenmektedir. Özellikle php dünyasında çok önemli bir yeri olan Zend firmasına ait  zend framework gelecek vaat etmektedir.

Ancak biz, bunlar arasında öğrenim ve kullanım  kolaylığını ana hedef olarak seçmiş  ve gerçekten bu açıdan  diğerlerine oranla çok önde olan  CodeIgniter ‘ı ele alıyoruz.

Herhangi bir php framework ile çalışmaya başlamadan önce php diline ve nesne tabanlı programlamaya hakim olmamız bize büyük kolaylık sağlar. Spesifik olarak “php dilinde nesne tabanlı programlama” konusunu iyi öğrenmek gerekir. Bunlar olmadan da frameworkler ile üretim yapabiliriz ancak sancılı bir süreç yaşarız. Bu ve bundan sonraki yazılarım, temel nesne tabanlı programlamayı ve temel php’yi bilen okuyuculara hitap etmektedir.

Gereksinimler ve Kurulum

CodeIgniter kurulacak olan sunucudaki gereksinimler şunlardır;

1) PHP 4.3.2 ya da daha yeni bir versiyon
2) Desteklenen veritabanları; MySQL (4.1+), MySQLi, MS SQL, Postgre, Oracle, SQLite ve ODBC.

Kurulum:
CodeIgniter, dört adımda yüklenir;

1) http://codeigniter.com/ dan en son sürümü indirerek, Zip dosyasını açın,
2) CI dizin ve dosyalarının sunucuya gönderin,
3) application/config/config.php dosyasını herhangi bir text editörde açarak “base URL” nizi düzeltin.
4) Eğer veritabanı kullanacaksanız application/config/database.php dosyasını açarak veritabanı bilgilerinizi güncelleyin.

Eğer CodeIgniter dosyalarını gizleyerek güvenliği arttırmak isterseniz system dizininin ismini değiştirebilirsiniz. Bunu yaparsanız index.php dosyanızı açarak $system_folder değişkenine yeni isim bilgisi girilmelidir.

İlk çalıştırma ve bazı ayarlar:

Tarayıcınızı açarak http://localhost/CIklasorAdi/ (sizin url ‘niz ne ise onu) yazın. Eğer karşınıza “Welcome to Code Igniter!” mesajı geldi ise yükleme işleminiz başarılı demektir.

CodeIgniter  ile yapılan  projelerin dosyaları system/application dizininde bulunur. Buradaki /config dizini içindeki dosyalardan sitemiz ile ilgili temel bazı ayarları yaparız.

MVC (Model-View-Controller)

CodeIgniter  ve diğer çoğu php framework, MVC yaklaşımı ile tasarlanmıştır. Model-view-controller, yazılım mühendisliği’nde kullanılan bir “mimari desen”dir. Uygulamalarda veri ve gösterimin soyutlanması esasına dayanır. Böylelikle veriler (model) ve kullanıcı arayüzü (view) birbirini etkilemeden düzenlenebilir. Model-view-controller, bunu controller adı verilen ara bileşenle, veri gösterimi ve kullanıcı etkileşiminden, veri erişimi ve iş mantığını çıkarma suretiyle çözmektedir.

Model: Veri yapısını ifade eder. Model class ları veritabanından veri çekme, ekleme, düzeltme işlerinde kullanılır.
View: “Model”i etkileşime açık bir forma sokar; tipik olarak bir kullanıcı arayüz elemanına dönüştürür. Bir “model” için değişik maksatlı birçok “view” bulunabilir. View normalde bir web sayfası olabildiği gibi CI de bu, header, footer gibi sayfa parçacıkları da olabilir. Ayrıca rss sayfası ya da diğer tür web sayfaları olabilir.
Controller: Kullanıcı eylemlerine karşılık gelen işleri yürütür ve ayrıca model üzerindeki değişiklikler işletebilir. Controller, Model ile View arasında ya da diğer http istekleri ve sayfa üretimi ile ilgili isteklerin arabuluculuğunu yapar.
Özetle; Controller kullanıcıdan istekleri ” View ” üzerinden alır, Model de işler, View işlenen verileri kullanır.

Uygulama Akış Şeması
Aşağıdaki grafik sistemden verinin nasıl aktığını gösteriyor;

CI uygulama akış şeması

CodeIgniter uygulama akış şeması

Bu şemayı kısaca özetlemek gerekirse, tipik bir CodeIgniter uygulaması aşağıdaki adımları izler;

1.    Index.php, ön controller (front controller) olarak çalışır. CI için gerekli kaynakları başlatır.
2.    Routing: Router, http isteklerini, ne yapılabileceğini belirlemek amacıyla inceler.
3.    Caching: Eğer cache dosyası mevcut ise, normal sistem işlemlerini yürütmeden direk olarak internet tarayıcısına yollar.
4.    Security: Uygulama controllerı yüklenmeden önce, http istekleri ve kullanıcı verileri güvenlik için filtrelenir.
5.    Controller, model’leri, temel kütüphaneleri, helper’ları, plugin’leri ve özel istekler için gerekli diğer tüm kaynakları yükler.
6.    Sonuç view, internet tarayıcısına görüntülenmek üzere yollanır. Eğer caching aktif ise view, daha sonraki isteklerde görüntülenmek üzere, cach ‘e (önbelleğe) kaydedilir

Başlangıç olarak şimdilik bunlar yeterli olacaktır sanırım. Takip eden yazılarımda konuya biraz daha ayrıntılı girerek, basit bir “merhaba dünya” uygulaması yapacağız.

Sağlıcakla kalın…

Ekleme: Yazının ikinci bölümü için buradan devam edebilirsiniz.

Kaynakça:

CodeIgniter Kullanıcı Klavuzu



3 yorumlar > “CodeIgniter -1 : Başlangıç”


  1. serhatlı says:

    Elien sağlık cakephp yi deneyecektim ama kurulumu nedense bi turlu olmadı ,başlangıç için bunu kullanayım en yisi bunda ajax desteği işte işin kötüsü olsun onuda biz koyarız..

    1
  2. ibrahim says:

    cakephp ye de bulaşmıştım bir zamanlar. yerlerde sürünen performansı ile saçbaş yoldurmuştu. o nedenle aramız hiç düzelmedi cake ile.

    fakat kurulumu falan öle ahım şahım birşey değil. istersen nerede takıldığını yazarsan yardımcı olmaya çalışayım… hatta önümüzdeki günlerde buna benzer bir başlangıç dokümanını da cake için yazayım ben…

    maksat netteki türkçe içeriği ve paylaşımı arttırmak

    2
  3. Merhabalar,
    lomonomo.com web sitemiz code igniter ile gelistirildi. Sitemizin duzeli updatleri ve yeni versiyon calismalari icin uzun sureli calisabilecegimiz php, php framework ve ozellikle de code igniter ile deneyimi olan yazilim evi, ajans, vb. bir digital medya partner aramaktayiz. Standart rutin islerin disinda web sitesinin duzenli updateleri de proje olarak degerlendirilerek ucretlendilecektir.
    Uzun sureli ve devamliligi olan bu is icin talip olacagini dusundugunuz kisisilere bu maili iletebilir misiniz?
    Tesekkurler

    3


Yorum yazın