﻿<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>ibonette.com &#187; codeigniter kurulum</title>
	<atom:link href="http://www.ibonette.com/tag/codeigniter-kurulum/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.ibonette.com</link>
	<description>Samimi olmayi vaat edebilirim ama tarafsiz olmayi asla...</description>
	<lastBuildDate>Thu, 09 Sep 2010 14:12:06 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0.1</generator>
		<item>
		<title>CodeIgniter -1 : Başlangıç</title>
		<link>http://www.ibonette.com/codeigniter-1-baslangic/</link>
		<comments>http://www.ibonette.com/codeigniter-1-baslangic/#comments</comments>
		<pubDate>Sat, 13 Dec 2008 09:46:20 +0000</pubDate>
		<dc:creator>ibrahim</dc:creator>
				<category><![CDATA[PROGRAMLAMA]]></category>
		<category><![CDATA[CI]]></category>
		<category><![CDATA[codeigniter]]></category>
		<category><![CDATA[codeigniter gereksinimler]]></category>
		<category><![CDATA[codeigniter kurulum]]></category>
		<category><![CDATA[codeigniter uygulama akış şeması]]></category>
		<category><![CDATA[MVC]]></category>
		<category><![CDATA[php framework]]></category>

		<guid isPermaLink="false">http://www.ibonette.com/?p=46</guid>
		<description><![CDATA[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.]]></description>
			<content:encoded><![CDATA[<p>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ş&#8230; Bunlardan, basitliği ve kullanım kolaylığı ile dikkat çeken <a href="http://codeigniter.com/" target="_blank">Codeigniter</a> ( 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.</p>
<p><!--[if gte mso 9]><xml> <w:WordDocument> <w:View>Normal</w:View> <w:Zoom>0</w:Zoom> <w:HyphenationZone>21</w:HyphenationZone> <w:PunctuationKerning /> <w:ValidateAgainstSchemas /> <w:SaveIfXMLInvalid>false</w:SaveIfXMLInvalid> <w:IgnoreMixedContent>false</w:IgnoreMixedContent> <w:AlwaysShowPlaceholderText>false</w:AlwaysShowPlaceholderText> <w:Compatibility> <w:BreakWrappedTables /> <w:SnapToGridInCell /> <w:WrapTextWithPunct /> <w:UseAsianBreakRules /> <w:DontGrowAutofit /> </w:Compatibility> <w:BrowserLevel>MicrosoftInternetExplorer4</w:BrowserLevel> </w:WordDocument> </xml><![endif]--><!--[if gte mso 9]><xml> <w:LatentStyles DefLockedState="false" LatentStyleCount="156"> </w:LatentStyles> </xml><![endif]--><!--  /* Style Definitions */  p.MsoNormal, li.MsoNormal, div.MsoNormal 	{mso-style-parent:""; 	margin:0cm; 	margin-bottom:.0001pt; 	mso-pagination:widow-orphan; 	font-size:12.0pt; 	font-family:"Times New Roman"; 	mso-fareast-font-family:"Times New Roman";} @page Section1 	{size:612.0pt 792.0pt; 	margin:70.85pt 70.85pt 70.85pt 70.85pt; 	mso-header-margin:35.4pt; 	mso-footer-margin:35.4pt; 	mso-paper-source:0;} div.Section1 	{page:Section1;} --><!--[if gte mso 10]> <mce:style><!   /* Style Definitions */  table.MsoNormalTable 	{mso-style-name:"Normal Tablo"; 	mso-tstyle-rowband-size:0; 	mso-tstyle-colband-size:0; 	mso-style-noshow:yes; 	mso-style-parent:""; 	mso-padding-alt:0cm 5.4pt 0cm 5.4pt; 	mso-para-margin:0cm; 	mso-para-margin-bottom:.0001pt; 	mso-pagination:widow-orphan; 	font-size:10.0pt; 	font-family:"Times New Roman"; 	mso-ansi-language:#0400; 	mso-fareast-language:#0400; 	mso-bidi-language:#0400;} --> <!--[endif]--></p>
<p><span style="text-decoration: underline;"><strong>Framework Nedir Ve Neden Kullanılır?</strong></span></p>
<p>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.</p>
<p>Ö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.</p>
<p>.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.</p>
<p>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 &#8216;ı ele alıyoruz.</p>
<p>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.</p>
<p><span style="text-decoration: underline;"><strong>Gereksinimler ve Kurulum</strong></span></p>
<p><span style="text-decoration: underline;"><em>CodeIgniter </em></span><span style="text-decoration: underline;"><em>kurulacak olan sunucudaki gereksinimler şunlardır;</em></span></p>
<p>1) PHP 4.3.2 ya da daha yeni bir versiyon<br />
2) Desteklenen veritabanları; MySQL (4.1+), MySQLi, MS SQL, Postgre, Oracle, SQLite ve ODBC.</p>
<p><em><span style="text-decoration: underline;">Kurulum:</span></em><br />
CodeIgniter, dört adımda yüklenir;</p>
<p>1) <a href="http://codeigniter.com/" target="_blank">http://codeigniter.com/</a> dan en son sürümü indirerek, Zip dosyasını açın,<br />
2) CI dizin ve dosyalarının sunucuya gönderin,<br />
3) application/config/config.php dosyasını herhangi bir text editörde açarak “base URL” nizi düzeltin.<br />
4) Eğer veritabanı kullanacaksanız application/config/database.php dosyasını açarak veritabanı bilgilerinizi güncelleyin.</p>
<p>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.</p>
<p><em><span style="text-decoration: underline;">İlk çalıştırma ve bazı ayarlar:</span></em></p>
<p>Tarayıcınızı açarak <em>http://localhost/CIklasorAdi/</em> (sizin url &#8216;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.</p>
<p>CodeIgniter  ile yapılan  projelerin dosyaları system/application dizininde bulunur. Buradaki /config dizini içindeki dosyalardan sitemiz ile ilgili temel bazı ayarları yaparız.</p>
<p><span style="text-decoration: underline;"><strong>MVC (Model-View-Controller)</strong></span></p>
<p>CodeIgniter  ve diğer çoğu php framework, MVC yaklaşımı ile tasarlanmıştır. Model-view-controller, yazılım mühendisliği&#8217;nde kullanılan bir &#8220;mimari desen&#8221;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.</p>
<p><em><span style="text-decoration: underline;">Model: </span></em>Veri yapısını ifade eder. Model class ları veritabanından veri çekme, ekleme, düzeltme işlerinde kullanılır.<br />
<em><span style="text-decoration: underline;">View: </span></em>&#8220;Model&#8221;i etkileşime açık bir forma sokar; tipik olarak bir kullanıcı arayüz elemanına dönüştürür. Bir &#8220;model&#8221; için değişik maksatlı birçok &#8220;view&#8221; 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.<br />
<em><span style="text-decoration: underline;">Controller:</span></em> 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.<br />
Özetle; Controller kullanıcıdan istekleri &#8221; View &#8221; üzerinden alır, Model de işler, View işlenen verileri kullanır.</p>
<p><strong><span style="text-decoration: underline;">Uygulama Akış Şeması</span></strong><br />
Aşağıdaki grafik sistemden verinin nasıl aktığını gösteriyor;</p>
<div id="attachment_47" class="wp-caption alignnone" style="width: 510px"><a href="http://www.ibonette.com/wp-content/uploads/2008/12/ci_uygulama_akis_semasi.jpg"><img class="size-full wp-image-47" title="ci_uygulama_akis_semasi" src="http://www.ibonette.com/wp-content/uploads/2008/12/ci_uygulama_akis_semasi.jpg" alt="CI uygulama akış şeması" width="500" height="147" /></a><p class="wp-caption-text">CodeIgniter  uygulama akış şeması</p></div>
<p>Bu şemayı kısaca özetlemek gerekirse, tipik bir CodeIgniter  uygulaması aşağıdaki adımları izler;</p>
<p>1.    Index.php, ön controller (front controller) olarak çalışır. CI için gerekli kaynakları başlatır.<br />
2.    Routing: Router, http isteklerini, ne yapılabileceğini belirlemek amacıyla inceler.<br />
3.    Caching: Eğer cache dosyası mevcut ise, normal sistem işlemlerini yürütmeden direk olarak internet tarayıcısına yollar.<br />
4.    Security: Uygulama controllerı yüklenmeden önce, http istekleri ve kullanıcı verileri güvenlik için filtrelenir.<br />
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.<br />
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</p>
<p>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 &#8220;merhaba dünya&#8221; uygulaması yapacağız.</p>
<p>Sağlıcakla kalın&#8230;</p>
<p><span style="text-decoration: underline;"><strong>Ekleme:</strong></span> Yazının ikinci bölümü için <a href="http://www.ibonette.com/codeigniter-2-controller/" target="_self">buradan</a> devam edebilirsiniz.</p>
<p><span style="text-decoration: underline;"><strong>Kaynakça:</strong></span></p>
<p><a href="http://codeigniter.com/user_guide/" target="_blank">CodeIgniter Kullanıcı Klavuzu</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.ibonette.com/codeigniter-1-baslangic/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
	</channel>
</rss>
