<?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>CETURK &#187; Nesne Yönelimli</title>
	<atom:link href="http://www.ceturk.com/etiket/nesne-yonelimli/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.ceturk.com</link>
	<description>Türkiye&#039;nin Bilişim Platformu</description>
	<lastBuildDate>Tue, 07 Feb 2012 18:02:52 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.2.1</generator>
		<item>
		<title>Nesne Yönelimli PHP – Bölüm 3</title>
		<link>http://www.ceturk.com/nesne-yonelimli-php-%e2%80%93-bolum-3/</link>
		<comments>http://www.ceturk.com/nesne-yonelimli-php-%e2%80%93-bolum-3/#comments</comments>
		<pubDate>Fri, 06 Nov 2009 12:22:56 +0000</pubDate>
		<dc:creator>Kurtman Çelik</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[Web Teknolojileri]]></category>
		<category><![CDATA[Kurtman Çelik]]></category>
		<category><![CDATA[Nesne Tabanlı]]></category>
		<category><![CDATA[Nesne Yönelimli]]></category>

		<guid isPermaLink="false">http://www.ceturk.com/?p=3901</guid>
		<description><![CDATA[Öncelikle Tekrar merhaba, Nesne Yönelimli PHP dizisinin, son bölümüne hoşgeldiniz. Daha öncede bahsettiğim gibi eğer kendinizi bu konuda hazır hissetmiyorsanız, bölüm 1 ve bölüm 2 yazılarını tekrar etmenizi ısrarla tavsiye ediyorum. Temeller, bu konudaki en önemli parça. Bu Yazıda Bu yazıda, sürekli bahsettiğimiz MySQLi Veritabanı Sınıfını inşa edeceğiz ve bunu yaparken daha önceki konulardan öğrendiğimiz [...]]]></description>
			<content:encoded><![CDATA[<p><img title="oop-php-part3-banner.jpg" src="http://www.ceturk.com/images/oop-php-part3-banner.jpg.png" alt="oop-php-part3-banner.jpg" width="600" height="160" /></p>
<h2>Öncelikle</h2>
<p>Tekrar merhaba, Nesne Yönelimli PHP dizisinin, son bölümüne hoşgeldiniz. Daha öncede bahsettiğim gibi eğer kendinizi bu konuda hazır hissetmiyorsanız, <a href="http://www.ceturk.com/web-teknolojileri/nesne-yonelimli-php-bolum-1.html" target="_blank">bölüm 1</a> ve<a href="http://www.ceturk.com/web-teknolojileri/nesne-yonelimli-php-bolum-2.html" target="_blank"> bölüm 2</a> yazılarını tekrar etmenizi ısrarla tavsiye ediyorum. Temeller, bu konudaki en önemli parça.<span id="more-3901"></span></p>
<h2>Bu Yazıda</h2>
<p>Bu yazıda, sürekli bahsettiğimiz MySQLi Veritabanı Sınıfını inşa edeceğiz ve bunu yaparken daha önceki konulardan öğrendiğimiz herşeyi kullanmaya çalışacağız.</p>
<ol>
<li>Değişkenler ve Yapıcı Metod,</li>
<li>Temel Fonksiyonlar.</li>
</ol>
<p>Başlıklarıyla ilglileneceğiz.</p>
<h2>1. Değişkenler ve Yapıcı Metod</h2>
<p><em>class.db.php</em> adında yeni bir dosya oluşturun ve içine aşağıdaki kod bloğunu girin:<br />
Açıklama satırlarını okumadan önce kodlara bakarak ne yapıldığını çözmeye çalışabilirsiniz.</p>
<pre class="brush:php">&lt;?php

/*
* class db
* @param Host
* @param User
* @param Password
* @param Name
*/
class db
{

var $host;       //MySQL Host
var $user;       //MySQL User
var $pass;       //MySQL Password
var $name;       //MySQL Name

var $mysqli;     //MySQLi Object

var $last_query; //Last Query Run

/*
* Class Constructor
* Creates a new MySQLi Object
*/
function __construct($host, $user, $pass, $name)
{

$host = $this-&gt;host;
$user = $this-&gt;user;
$pass = $this-&gt;pass;
$name = $this-&gt;name;

$this-&gt;mysqli = new mysqli($this-&gt;host, $this-&gt;user, $this-&gt;pass, $this-&gt;name);

}

}

$db = new db('localhost', 'root', '', 'blog');

?&gt;</pre>
<p>Öncelikle, Nesne Yönelimli PHP&#8217;nin en önemli meselelerinden birini tamamlamış bulunıyoruz: Organiazyon!. İlk önce, bir veritabanına bağlanmak için gereken tüm bilgileri birer değişken olarak tanımladık ve ardından yapıcı (constructor) metod yardımı ile kullanıcıdan bu bilgileri girmesini istedik. Veritabanı bilgilerini yapıcı metod ile almamızın sebebi; biz daha sonradan bu sınıfı kullanmaya başladığımız sırada veritabanı bilgilerinin girilmesine gerek kalmamasının sağlanmasıdır. Böylelikle kullanıcı, bizim sınıfımızı ilk çağırdığında bir kereye mahsus, veritabanı bilgilerini girecek ve daha sonraki kullanımlarda bu bilgilere ihtiyaç duymayacaktır.</p>
<p>En son satırda ise bu sınıfımızın bir nesnesini tanımlayarak, örnek veritabanı bilgileri giriyoruz.</p>
<h2>2. Temel Fonksiyonlar</h2>
<h3>Select</h3>
<p>Şimdi, yukarıdaki kod bloğu sayesinde veritabanı bağlantısını kurmuş olduk, sıra geldi; gönderdiğimiz &#8220;SELECT&#8221; sorgu cümlesini veritabanı üzerinde çalıştıran fonksiyonun yazımına.</p>
<p>Aşağıdaki kod bloğunu sınıfımızın sonuna ekleyin:</p>
<pre class="brush:php">/*
* Function Select
* @param fields
* @param from
* @param where
* @returns Query Result Set
*/
function select($fields, $from, $where)
{

$query = "SELECT " . $fields . " FROM `" . $from . "` WHERE " . $where;
$result = $this-&gt;mysqli-&gt;query($query);

$this-&gt;last_query = $query;

return $result;

}</pre>
<p>Böylelikle, bir MySQL tablosu üzerinde gönderdiğimiz sorguyu çalıştırıp, sonuçları bize geri getiren bir fonksiyon yazmış olduk.</p>
<p>Kullandığımız değişkenler; <em>$fields</em> &gt;alanlar, yani tablodan hangi alanların okunup geri döndürüleceği, <em>$from </em>&gt; tablo adı, yani sorgu cümlesinin hangi tablo üzerinde çalıştırılacağı, <em>$where</em> &gt; nereden, yani tablodan okunacak bilgilerin hangi kritere göre<em> filtreleneceği</em>.</p>
<p>Son olarak, sorgu çalıştırılır ve geri dönen değerler <em>$result</em> adındaki değişkende tutulur ve<em> return</em> komutu ile uygulamamıza geri gönderilir.</p>
<h3>Insert</h3>
<p>Veritabanına yeni veri kaydı göndermek istediğimizde kullanacağımız fonksiyonumuzu yazalım:</p>
<pre class="brush:php">/*
* Function Insert
* @param into
* @param values
* @returns boolean
*/
function insert($into, $values)
{

$query = "INSERT INTO " . $into . " VALUES(" . $values . ")";

$this-&gt;last_query = $query;

if($this-&gt;mysqli-&gt;query($query))
{
return true;
} else {
return false;
}

}</pre>
<p>En basit fonksiyonlardan bir tanesi. Kullanıcıdan sadece 2 değişken almamız yeterli; Tablo adı ve eklenecek değerler. Bu fonskyionda diğerine göre; geriye tablo kayıtları döndürmek yerine şöyle bir yol izledik: Sorguyu çalıştır, eğer kayıt ekleme başarılı olursa geriye <em>true</em> değeri döndür, eğer kayıt eklemede sorun çıkarsa geriye <em>false</em> değeri döndür.</p>
<h3>Delete</h3>
<p>En basit haliyle veritabanından kayıt giren fonksiyonumuz:</p>
<pre class="brush:php">&lt;?php

/*
* Function Delete
* @param from //Silinecek kayıdın hangi tablodan silineceği.
* @param where //Silme filtresi, hangi koşul uyuyorsa ona göre silme yap.
* @returns boolean //Eğer silme işlemi düzgün tamamlanmışsa geriye true döndür, hata oluşmuşsa geriye false döndür.
*/
function delete($from, $where)
{

$query = "DELETE FROM " . $from . " WHERE " . $where;

$this-&gt;last_query = $query;

if($this-&gt;mysqli-&gt;query($query))
{
return true;
} else {
return false;
}

}

?&gt;</pre>
<h2>Birkaç öneri</h2>
<p>Muhtemelen yazdığımız her fonksiyondaki $last_query (son sorgu) değişkenini, dikkatinizde kaçmamışdır. Sınıfımızın en başında tnımladığmız bu değişken, sınıfımız aracılığı ile çalıştırılmış en son sorguyu hafızada tutmak için kullanılıyor. Nedeni ise: son derece hayati önem kazanan sorguların, hata ayıklama işlemlerinin yapılmasına yardımcı olmasıdır. Bir hata meydana geldiğinde aynı sorguyu tekrar çalıştırmakdansa bu değişkene bakarak hatayı bulmaya çalışabilirsiniz. Diğer bir değişken ise $last_error (son hata), yazmış olduğumuz fonksiyonlardaki hata olma olasılıklarına karşı, kullanıcıyı bilgilendirmek amacıyla kullanılabilir. Bir hata meydana geldiğinde, hata mesajını bu değişkene aktarıp return komutu ile kullanıcıyı haberdar edebilirsiniz.</p>
<p>Update sorgusunu ise size bırakıyorum, ne kadar öğrendiğinizi ispatlamak adına update fonksiyonunu siz kendiniz yazmaya çalışabilirsiniz.</p>
<h2>Sonuç</h2>
<p>Bu yazıyla birlikte, Nesne Yönelimli PHP&#8221;de giriş seviyesinde bilgi birikimine sahip olmuş olduk. Umarım öğrendiğimiz bu temel bilgiler üzerine kendinizi daha çok geliştirir ve ileri konular hakkındada bilgi sahibi olursunuz. Takip ettiğiniz için teşekkürler, iyi çalışmalar.</p>
<p>Kurtman Çelik<br />
<a href="http://kurtmancelik.wordpress.com/" target="_blank">kurtmancelik.wordpress.com</a><br />
<strong>Kaynak: <a href="http://buildinternet.com/2009/07/an-introduction-to-object-oriented-php-part-3/" target="_blank">http://buildinternet.com/2009/07/an-introduction-to-object-oriented-php-part-3/</a></strong></p>
]]></content:encoded>
			<wfw:commentRss>http://www.ceturk.com/nesne-yonelimli-php-%e2%80%93-bolum-3/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
	<enclosure url="http://www.ceturk.com/images/oop-php-part3-banner.jpg.png" length="40200" type="image/jpg" />	</item>
		<item>
		<title>Nesne Yönelimli PHP &#8211; Bölüm 2</title>
		<link>http://www.ceturk.com/nesne-yonelimli-php-bolum-2/</link>
		<comments>http://www.ceturk.com/nesne-yonelimli-php-bolum-2/#comments</comments>
		<pubDate>Thu, 05 Nov 2009 12:40:44 +0000</pubDate>
		<dc:creator>Kurtman Çelik</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[Web Teknolojileri]]></category>
		<category><![CDATA[Kurtman Çelik]]></category>
		<category><![CDATA[Nesne Tabanlı]]></category>
		<category><![CDATA[Nesne Yönelimli]]></category>

		<guid isPermaLink="false">http://www.ceturk.com/?p=3825</guid>
		<description><![CDATA[Giriş Bundan önceki yazımızda nesne yönelimli PHP&#8217;ye giriş yapmıştık. Bu yazımızda ise önceki yazıdaki örnekler üzerinden; ilerlemeye devam ediyoruz. Eğer başlangıç seviyesinde bilgiye sahip değilseniz, öncelikle 1. yazıyı okumanızı tavsiye ediyorum. Bu Yazıda Yapıcı (Constructors) ve Yıkıcı (Destrucktors) Metodlar, Fonksiyonlardan değer döndürme, Düzeni sağlama. Konularını işliyoruz. 1. Yapıcı ve Yıkıcı Metodlar Yapıcılılara, bir binanın yapımına [...]]]></description>
			<content:encoded><![CDATA[<p><img class="alignnone size-full wp-image-3826" title="oop-php-part2-banner" src="http://www.ceturk.com/images/oop-php-part2-banner.jpg" alt="oop-php-part2-banner" width="600" height="160" /></p>
<h2>Giriş</h2>
<p><a href="http://www.ceturk.com/web-teknolojileri/nesne-yonelimli-php-bolum-1.html" target="_blank">Bundan önceki yazımızda</a> nesne yönelimli PHP&#8217;ye giriş yapmıştık. Bu yazımızda ise önceki yazıdaki örnekler üzerinden; ilerlemeye devam ediyoruz. Eğer başlangıç seviyesinde bilgiye sahip değilseniz, öncelikle 1. yazıyı okumanızı tavsiye ediyorum.</p>
<p><span id="more-3825"></span></p>
<h2>Bu Yazıda</h2>
<ol>
<li>Yapıcı (Constructors) ve Yıkıcı (Destrucktors) Metodlar,</li>
<li>Fonksiyonlardan değer döndürme,</li>
<li>Düzeni sağlama.</li>
</ol>
<p>Konularını işliyoruz.</p>
<h2>1. Yapıcı ve Yıkıcı Metodlar</h2>
<p>Yapıcılılara, bir binanın yapımına başlanılması eylemi olarak bakabiliriz; yani bir sınıfın kullanıma hazır olması için gereken işlemler olarak tanımlanabilir. Yıkıcılar ise binanın yani sınıfın yok edilmesi olarak tanımlanabilir.</p>
<p>Daha iyi anlaşılması için yapıcılara bir örnek verelim:</p>
<pre class="brush:php">&lt;?php
class MyClass
{
function __construct()
{
echo "MyClass Loaded!";
}
}
$MyClass = new MyClass();
?&gt;</pre>
<p>Bu örnekde; basitçe bir sınıf tanımladık ve içinde yapıcı bir metod yerleştirdik. Kodumuzda bu sınıfımızı çağırdığımız zaman hiç bir işlem yapmasak bile yapıcı metod çalışacak ve ekrana &#8220;Sınıf kullanıma hazır&#8221; mesajını yazıcaktır.<br />
Yıkıcı metodlara gelecek olursak; PHP&#8217;de sınıflarımızın her zaman bir yıkıcı metoda ihtiyacı yoktur. Zira siz bir nesne ile birkaç işlem yapıp o nesneyi yok ettiğinizde içindeki fonksiyon ve değişkenlerde yok olacaktır.</p>
<h2>2. Fonksiyonlardan değer döndürme</h2>
<p>Basit örneklerin dışında, gerçek projelerden bahsedecek olursak fonksiyonlarınızın her zaman ekrana birşey yazdırması gerekmez. Çoğu zaman geriye bir değer döndürülür ve bu değer ana programda istenilen yerde kullanılır.</p>
<p>Fonksiyonlardan geriye bir değer döndürmek için &#8220;<em>return</em>&#8221; anahtar kelimesi kullanılır ve formatı &#8220;<em>return</em> <strong><em>Geri Döndürülecek Değer</em></strong>&#8221; şeklindedir.</p>
<pre class="brush:php">&lt;?php

class Sinifim
{

var $mysqli;

function __construct()
{

$this-&gt;mysqli = new mysqli('localhost', 'root', '', 'blog');

}

function get_latest_posts()
{

//Do some database selection
$query = "SELECT * FROM `yazilar` ORDER BY `id` DESC";
$result = $this-&gt;mysqli-&gt;query($query);

return $result;

}

}

php?&gt;</pre>
<p>Yukarıdaki örnekde; en basitinden bir veritabanı bağlantısı kurduk ve ardından veritabanındaki &#8220;yazilar&#8221; tablosundaki verileri azalan sıra ile çekip, PHP uygulamamıza gönderdik. Bu noktadan itibaren veritabanından gelen bilgileri istediğimiz yerde kullanabiliriz.</p>
<h2>3. Düzeni Sağlama</h2>
<p><img class="alignnone size-full wp-image-3828" title="intro-oop-knex-boxes" src="http://www.ceturk.com/images/intro-oop-knex-boxes.jpg" alt="intro-oop-knex-boxes" width="600" height="250" /></p>
<p>Yukarıdaki resim &#8220;sınıf&#8221; terimine iyi bir örnek. Birbiri ile bağımsız her kutuya bir sınıf olarak bakacak olursak, kutuların içindekilerde o sınıfa ait fonksiyonlar ve değişkenlerdir.</p>
<p>Sınıfların en büyük avantajı, içindekileri kolay okunabilir ve düzenlenebilir şekilde tutmasıdır.<a href="http://core.trac.wordpress.org/browser/trunk/wp-includes/wp-db.php" target="_blank"> WordPress&#8217;in veritabanı işlemlerini gerçekleştirmek için kullandığı sınıfı</a>na bakacak olursanız demek istediğimi daha iyi anlayacaksınız.</p>
<p>Gördüğünüz gibi her sınıf tanımının, fonksiyonun, değişkenin, yapıcının üst kısmında; ne işe yaradığını anlatan açıklama satırları mevcut. Bu, o sınıfı kullanan diğer programcılar için çok büyük bir avantaj sağlamaktadır.</p>
<p>Şimdi bu yapıyı kendi sınıfımıza da uygulayalım:</p>
<pre class="brush:php">&lt;?php

/*
* @name Sinifim
* @params none
* Bu sınıf, veritabanına bağlantıyı ve yeni kayıt ekleme işlemlerini gerçekleştirir.
*/
class Sinifim
{

/*
* MySQLi Bağlantısı
*/
private $mysqli;

/*
* __Yapıcı
* Yeni bir MySQL bağlantısı kurar.
*/
function __construct()
{

$this-&gt;mysqli = new mysqli('localhost', 'root', '', 'buildinternet');

}

/*
* Veri ekle
* @params Kullanici_Adi, Sifre
* @returns bool
*/
function Veri_ekle($Kullanici_Adi, $Sifre)
{

//Gelen bilgileri veritabanına kaydet.
if(success)
{
return true;
} else {
return false;

}
}
}
php?&gt;</pre>
<p>Gördüğünüz üzere, sınıfımızın ne olduğunu, hangi iş için yazıldığını belirtmiş olduk. Hangi fonksiyonun hangi parametrelere ihtiyaç duyduğunu ve yaptığı işlemden sonra geriye nasıl bir değer döndürdüğünü yazdığımı açıklama satırlarında belirttik.</p>
<p>Bundan sonraki yazımız için gerekli bilgiyi topladığımıza inanıyorum, 3. yazımızda veritabanı işlemleri yapmak için kullanacağımız basit bir sınıf yazacağız.</p>
<p>Kurtman Çelik<br />
<a href="http://kurtmancelik.wordpress.com/" target="_blank">kurtmancelik.wordpress.com</a><br />
<strong>Kaynak: <a href="http://buildinternet.com/2009/07/an-introduction-to-object-oriented-php-part-2/" target="_blank">http://buildinternet.com/2009/07/an-introduction-to-object-oriented-php-part-2/</a></strong></p>
]]></content:encoded>
			<wfw:commentRss>http://www.ceturk.com/nesne-yonelimli-php-bolum-2/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
	<enclosure url="http://www.ceturk.com/images/oop-php-part2-banner.jpg" length="50456" type="image/jpg" />	</item>
		<item>
		<title>Nesne Yönelimli PHP &#8211; Bölüm 1</title>
		<link>http://www.ceturk.com/nesne-yonelimli-php-bolum-1/</link>
		<comments>http://www.ceturk.com/nesne-yonelimli-php-bolum-1/#comments</comments>
		<pubDate>Wed, 04 Nov 2009 16:03:32 +0000</pubDate>
		<dc:creator>Kurtman Çelik</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[Web Teknolojileri]]></category>
		<category><![CDATA[Kurtman Çelik]]></category>
		<category><![CDATA[Nesne Tabanlı]]></category>
		<category><![CDATA[Nesne Yönelimli]]></category>
		<category><![CDATA[oop]]></category>

		<guid isPermaLink="false">http://www.ceturk.com/?p=3769</guid>
		<description><![CDATA[Makaleler Hakkında 3 Bölümden oluşacak makale dizisinde, Object Oriented (Nesne Yönelimli) PHP&#8217;nin temellerini; kodunuzu yönetmeyi, bileşenleri birbirinden ayrı tutmayı ve gerektiğinde bunlara kolaylıkla erişebilmeyi konu alacağız. 3. makale ile birlikte; genel veritabanı işlemlerini gerçekleştirmek üzere basit bir MySQLi (MySQL Improved) sınıfı yazacağız. Bu Yazıda Nesneler(Objects) ve Sınıflar (Classes) nedir? İlk sınıfımızı yazalım. Sınıfların kullanımı. Sınıfların [...]]]></description>
			<content:encoded><![CDATA[<p><img class="alignnone size-full wp-image-179" title="oop-php-part1-banner" src="http://kurtmancelik.wordpress.com/files/2009/11/oop-php-part1-banner1.png" alt="oop-php-part1-banner" width="600" height="160" /></p>
<h2>Makaleler Hakkında</h2>
<p>3 Bölümden oluşacak makale dizisinde, Object Oriented (Nesne Yönelimli) PHP&#8217;nin temellerini; kodunuzu yönetmeyi, bileşenleri birbirinden ayrı tutmayı ve gerektiğinde bunlara kolaylıkla erişebilmeyi konu alacağız.<span id="more-3769"></span></p>
<p>3. makale ile birlikte; genel veritabanı işlemlerini gerçekleştirmek üzere basit bir MySQLi (MySQL Improved) sınıfı yazacağız.</p>
<h2>Bu Yazıda</h2>
<ol>
<li>Nesneler(Objects) ve Sınıflar (Classes) nedir?</li>
<li>İlk sınıfımızı yazalım.</li>
<li>Sınıfların kullanımı.</li>
<li>Sınıfların kişiselleştirilmesi (Dinamizm eklenmesi)</li>
</ol>
<h2>1. Nesneler ve Sınıflar</h2>
<p>Sınıflar, basitçte; fonksiyonlar deposu olarak tanımlanabilir. Başka türlü beznetmek gerekirse; Masaüstünüzdeki bir klasör sınıf ise o klasörün içindeki dosyalarda fonksiyonlardır.</p>
<p>Bir de klasik bir örnek üzerinden anlatalım:</p>
<p><img class="alignnone size-full wp-image-3771" title="oop-php-part1-dog-example" src="http://www.ceturk.com/images/oop-php-part1-dog-example.png" alt="oop-php-part1-dog-example" width="600" height="160" /></p>
<p>Resimde de gördüğünüz gibi köpek sınıfının, koşmak, yürümek, oyun oynamak, havlamak gibi fonksiyonları mevcut. Bu yapı bir sınıfın en genel tanımıdır.</p>
<p>Şimdi, sınıfın ne olduğunu az çok öğrendik. Peki bu sınıfı kodlarımızda nasıl kullanacağız. İşte bu noktada işin içine Nesneler giriyor. &#8220;Köpek&#8221; adındaki bir sınıfı kullanmak için bir bir değişken tanımlamamız gerekir.</p>
<p>Daha bağlantılı olması için sınıf yazımından itibaren kodumuza başlayalım:</p>
<h2>2. İlk sınıfımızı yazalım.</h2>
<p>İlk kodumuz olduğu için, olabildiğince basit ilerleyelim; Favori kod editörünüzü açın, myClass.php adına boş bir dosya oluşturun ve içine aşağıdaki kod bloğunu yazın:</p>
<pre class="brush:php">&lt;?php
class myClass
{
 function Merhaba()
 {
 echo "Merhaba!";
 }
}
?&gt;</pre>
<p>Eğer bu dosyayı sunucunuzda çalıştırmaya kalkarsanız, ekrana hiçbirşey yazmayacaktır. Çünkü yapmış oldumuz şey sadece bir sınıf tanımlamak, sınıfın içindekileri çalıştırmak adına şu an için birşey yapmadık.</p>
<p>Devamında yine boş bir dosya olışturup <em>myClass.php</em> ile aynı klasörün içine <em>index.php</em> adıyla  kaydedin.</p>
<h2>3. Sınıfların kullanımı.</h2>
<p><em>index.php</em> içinde, <em>myClass.php</em> içindeki sınıfımıza erişmek için, ilk önce sayfamıza <em>myClass.php</em>&#8216;nin referansını eklememiz gerek. Aşağıdaki kodda bunun nasıl yapıldığı gösterilmiştir:</p>
<pre class="brush:php">&lt;?php

 require_once('myClass.php');

 $myClass = new myClass();

 $myClass-&gt;Merhaba();

?&gt;</pre>
<p>Eğer bu sefer index.php&#8217;yi tarayıcınızda çalıştırırsanız ekranda &#8220;Merhaba dünya!&#8221; yazdığnı göreceksiniz. Şimdi yaptığımız çalışmanın üzerinden geçelim. Öncelikle  &#8220;<em>require_once(&#8216;myClass.php&#8217;)</em>&#8221; satırı ile <em>index.php</em> sayfamıza, içinde sınıfımızın bulunduğu <em>myClass.php</em> sayfamızı çağırdık. Bir sonraki satırda bu sınıfımızı bir değişken gibi kullanabilmemiz için gerekli olan <strong>nesne</strong> tanımlamasını yaptık, bu sayede <em>$myClass</em> nesnesi üzerinden sınıfımız içerisindeki &#8220;Merhaba()&#8221;  fonksiyonuna erişebiliyoruz. Son olarak tanımladığımız nesnenin <em>Merhaba()</em> fonksiyonunu çağırdık ve belirlediğimiz metin ekrana yazdırıldı.</p>
<h2>4. Sınıfların kişiselleştirilmesi</h2>
<p>Şimdi, elimizdeki hazır sınıfımızı kişiselleştirmek adına şöyle bir değişiklik yapalım: sitemize kullanıcı adı ve şifresiyle giriş yapmış birine adıyla hitap ederek merhaba diyelim. bunu yapmak için myClass.php&#8217;ye geri dönüp aşağıdaki değişiklikleri yapın:</p>
<pre class="brush:php">&lt;?php
class myClass
{
function Merhaba($kullanici)
{
echo "Hello " . $kullanici . "!";
}
}
?&gt;</pre>
<p>Bütün yaptığımız, ekrana  &#8220;Merhaba dünya&#8221; yazan fonksiyona bir parametre eklemekten ibaret. Bu sayede fonksiyonumuza <em>index.php</em>&#8216;den istediğimiz kullanıcı adını göndererek, o kişiye özel merhaba yazdırabiliriz.<em> index.php</em> sayfasına geri dönün ve aşağıdaki değişiklikleri uygulayın:</p>
<pre class="brush:php">&lt;?php

require_once('myClass.php');

$myClass = new myClass();

$myClass-&gt;Merhaba('Ali');

?&gt;</pre>
<p><em>index.php </em>sayfasını tarayıcınızda açtığınızda ekranda &#8220;Merhaba Ali!&#8221; yazdığını görürsünüz.</p>
<p>Bu çalışma ile de sınıflarımızı nasıl kişiselleştirip, dinamizm katabileceğimizi gördük.</p>
<p>Kurtman Çelik<br />
<a href="http://kurtmancelik.wordpress.com/" target="_blank">kurtmancelik.wordpress.com</a><br />
<strong>Kaynak: <a href="http://buildinternet.com/2009/07/an-introduction-to-object-oriented-php-part-1/" target="_blank">http://buildinternet.com/2009/07/an-introduction-to-object-oriented-php-part-1/</a></strong></p>
]]></content:encoded>
			<wfw:commentRss>http://www.ceturk.com/nesne-yonelimli-php-bolum-1/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
	<enclosure url="http://www.ceturk.com/images/oop-php-part1-banner.png" length="37386" type="image/jpg" />	</item>
	</channel>
</rss>

