<?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>Gökalp Kuşçu &#187; PHP OOP</title>
	<atom:link href="http://www.gokalpkuscu.com/tag/php-oop/feed" rel="self" type="application/rss+xml" />
	<link>http://www.gokalpkuscu.com</link>
	<description>Aquila Non Captat Muscas</description>
	<lastBuildDate>Wed, 18 Jan 2012 21:05:49 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>PHP Nesneye dayalı programlama private deyimi</title>
		<link>http://www.gokalpkuscu.com/php-nesneye-dayali-programlama-private-deyimi</link>
		<comments>http://www.gokalpkuscu.com/php-nesneye-dayali-programlama-private-deyimi#comments</comments>
		<pubDate>Wed, 28 Apr 2010 11:19:11 +0000</pubDate>
		<dc:creator>Gökalp Kuşçu</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[class private]]></category>
		<category><![CDATA[php class private deyimi]]></category>
		<category><![CDATA[php nesneye dayalı programlama]]></category>
		<category><![CDATA[PHP OOP]]></category>
		<category><![CDATA[php private deyimi]]></category>

		<guid isPermaLink="false">http://www.gokalpkuscu.com/?p=514</guid>
		<description><![CDATA[PHP için nesneye dayalı  programlama deyimlerinden “private” deyimini açıklamaya çalışacağım. Private : Sadece class içersinde kullanmaya yetkili sabit bir değişken  veya methot yapmak istediğimizde,  ilgili kelimelerin başına “private” deyimini ekleyerek bu işlemi gerçekleştiriyoruz. Bu deyim ile oluşturulan sözcükler dışarıdan veya başka bir class içerisinden erişilemezler. Eğer bu sözcüklere dışarıdan erişmeye çalışırsanız, Fatal Error verecektir. Bir [...]]]></description>
			<content:encoded><![CDATA[<p>PHP için nesneye dayalı  programlama deyimlerinden “private” deyimini açıklamaya çalışacağım.</p>
<p><strong>Private :</strong></p>
<ul> Sadece class içersinde kullanmaya yetkili sabit bir değişken  veya methot yapmak istediğimizde,  ilgili kelimelerin başına “private” deyimini ekleyerek bu işlemi gerçekleştiriyoruz. Bu deyim ile oluşturulan sözcükler dışarıdan veya başka bir class içerisinden erişilemezler.</ul>
<ul>
<li>Eğer bu sözcüklere dışarıdan erişmeye çalışırsanız, Fatal Error verecektir. Bir önceki konuda geçen örnek yapısı üstünden gidecek olursak.</li>
</ul>
<p><span id="more-514"></span></p>
<pre class="brush: php; title: ; notranslate">
&lt;?php
class oop_bir {

    private $name;
    public function getName(){
     return $this-&gt;name.self::getLength();
   }

    public function setName($name){
      $this-&gt;name = $name;
   }
   //Dışarıdan erişilemez methot
   private function getLength(){
    return strlen($this-&gt;name);
   }
}

   $obj = new oop_bir();
    $obj-&gt;setName(&quot;Gokalp&quot;);

   //OUT: Gokalp6
   echo $obj-&gt;getName();

   //OUT: Fatal Error :  Call to private method oop_bir::getLength()
   echo $obj-&gt;getLength();  // Error!
?&gt;
</pre>
<p>Gördüğünüz gibi sınıfımız(class) içerisinde 3 adet methoda sahibiz, bunlardan ikisi public her yerden ulaşılabilir, diğeri ise private sadece kendi classı içerisinden ulaşılabilir,  değişkenimiz yani <strong>&#8220;private $name&#8221; </strong>yine sadece sınıfımız içerisinden ulaşılabilir.</p>
<p>Oluşturduğumuz &#8220;$obj&#8221; nesnesi, bize sınıfımız içindeki methodları kullanmamızı sağlayacak, tabi ki public olanları, ilk olarak içerideki private değişkenime &#8220;setName()&#8221; ile Gokalp değerini atıyorum, daha sonra &#8220;getName()&#8221; methodu içinden private methodumu çağrıyorum ve bana gereken işlem sonucu return ediyor. Böylece hem ismimi hemde bunun uzunluğunu hesaba katıp bana gerekli işlemi dönderiyor ve bunu echo ile ekrana basıyorum.</p>
<blockquote><h2>Tips:</h2>
<p>Eğer private methoda veya değişkene ulaşmaya çalışırsam,</p>
<p>echo $obj-&gt;getLength();  // Error! gibi</p>
<p>Fatal error: Call to private method oop_bir::getLength() from context &#8221; in C:\**\index.php on line 26</p>
<p>Oluşan hata bu şekilde gösterilecektir, private bir tanımlamayı çağırdınız!</p></blockquote>
<blockquote><h2>Tips-2:</h2>
<p>Class içerisinde yazdığınız methodlara ulaşmak için &#8220;self&#8221; deyimini kullanabilirsiniz.</p>
<p>self::getLength(); gibi&#8230;</p></blockquote>
<blockquote><h2>Tips-3:</h2>
<p>PHP5 ile geliştirilen <strong>parent</strong> deyimi extend edilen class içindeki, methodları çağırmak için kullanılmaktadır, aynı şekilde PHP5 ile geliştirilen <strong>self </strong> deyimi aynı class içindeki methodları çağırmak için kullanılmaktadır, bu işlemler PHP4 ile <strong>$this</strong> deyimi ile gerçekleştirilmektedir.</p></blockquote>
<p>İlgili dosyayı buradan indirebilirsiniz&#8230;.<br />
Note: There is a file embedded within this post, please visit this post to download the file.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.gokalpkuscu.com/php-nesneye-dayali-programlama-private-deyimi/feed</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>PHP Nesneye dayalı programlama public deyimi</title>
		<link>http://www.gokalpkuscu.com/php-nesneye-dayali-programlama-public-deyimi</link>
		<comments>http://www.gokalpkuscu.com/php-nesneye-dayali-programlama-public-deyimi#comments</comments>
		<pubDate>Fri, 05 Feb 2010 23:38:01 +0000</pubDate>
		<dc:creator>Gökalp Kuşçu</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[class public]]></category>
		<category><![CDATA[php class public deyimi]]></category>
		<category><![CDATA[php nesneye dayalı programlama]]></category>
		<category><![CDATA[PHP OOP]]></category>
		<category><![CDATA[php public deyimi]]></category>

		<guid isPermaLink="false">http://www.gokalpkuscu.com/?p=386</guid>
		<description><![CDATA[PHP 4 çekirdeğinde bu işi tamamiyle var anahtar kelimesi ile yapılıyordu. Hatta coder kişiler kendi yazılımlarını kodlar iken var deyimi ile belirttikleri değişkenlerin üst kısımlarına comment belirterek bunların public mi ? private mi? yoksa protected mı ? olduğunu belirterek yazılım sürecinde kolaylık sağlıyorlardı. Fakat PHP 5 ile gelen yeniliklerle artık gizlilik anlamında yeni deyimler eklendi. [...]]]></description>
			<content:encoded><![CDATA[<p>PHP 4 çekirdeğinde bu işi tamamiyle <strong>var</strong> anahtar kelimesi ile yapılıyordu. Hatta coder kişiler kendi yazılımlarını kodlar iken var deyimi ile belirttikleri değişkenlerin üst kısımlarına comment belirterek bunların public mi ? private mi? yoksa protected mı ? olduğunu belirterek yazılım sürecinde kolaylık sağlıyorlardı. Fakat PHP 5 ile gelen yeniliklerle artık gizlilik anlamında yeni deyimler eklendi. Bunlardan bir tanesi de <strong>public</strong> deyimidir. Bu yazıda bu deyimden bahsedeceğim.</p>
<p><span id="more-386"></span></p>
<p><strong>Public deyimi ile tüm sabit değişken ve metotlara, her ortamdan erişilebilmeye olanak sağlanır.</strong> Hatta güzel bir editör kullanıyorsanız bunların kullanıp, kullanılamayacağını daha kolay görebilirsiniz. <img src='http://www.gokalpkuscu.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>İşlemleri kod üstünden anlatacağım için kodları ilk olarak paylaşıyorum. </p>
<blockquote>
<p><strong>Tips:</strong></p>
<p>Burada belirtmek isterim ki, bir class nasıl yazılır veya class içinde bir methot nasıl oluşturulur gibi kavramlar bahsetmeyeceğim, bu konuyu anlamak için tabi ki ilk olarak bunlara aşina olmanız gereklidir.</p>
</blockquote>
<pre class="brush: php; title: ; notranslate">

 &lt; ?php

class oop {

   public $value;

   public function getName(){
       return $this-&gt;value;
   }

   public function setName($name){
       $this-&gt;value = $name;
   }

}

 #######################
  $object  =  new oop();
 #######################

   $object-&gt;setName(&quot;Gokalp Kuscu\n&quot;);

   $object-&gt;value = &quot;Onur Aktas&quot;;

   echo $object-&gt;getName();

   //OUT : Onur Aktas

?&gt;
</pre>
<p>Yukarıda public deyiminin nelere olanak sağladığını anlatmıştık. Şimdi burada gördüğünüz gibi iki adet metot, bir adet public değişken bulunmaktadır.</p>
<p>Biraz bu methotlardan bahsedelim :</p>
<p><strong>public getName() : </strong>  return ifadesinden de anlayacağınız üzere çalıştırıldığı an public değişken değerini size geri dönderiyor.</p>
<p><strong>public setName($name): </strong> Burada metotu çalıştırmamız için ilk olarak ona bir parametre göndermeliyiz, gönderilen parametre public değişkene atanıyor.</p>
<p><strong><em>Biz ne yaptık ?</em></strong></p>
<p>Şuan biz object isminde bir class nesnesi oluşturduk ve bu nesne class içindeki metotları ve değişkenleri kullanmamızı sağlayan bir aracı oldu. Bu nesne için bellekte bir yer açıldı. Teorik olarak bahsetmeyeceğim için bu bellek organizasyonunu geçiyorum. </p>
<p>Bu nesne ile ilk olarak; </p>
<p>   <strong>$object->setName(&#8220;Gokalp Kuscu\n&#8221;);</strong> ile class içindeki public değişkene &#8220;Gokalp Kuscu&#8221; ismini atadık. Daha sonra <strong>$object->value = &#8220;Onur Aktas&#8221;;</strong> ile public değişkene doğrudan bir değer atadık ve son olarak <strong>echo $object->getName();</strong> ile atanmış değeri ekrana bastık.</p>
<p>Şimdi burada ki public deyimi yanlış kullanılmıştır neden ? ( Kod çalışmaktadır ama programlama mantığı açısından)</p>
<blockquote><p>
<strong>Tips:</strong></p>
<p>  Yazdığınız class içerisinde sabite değer atayan bir method var ise; bu değişkenin doğrudan dışarıdan kullanılması pek mantıklı değildir. İşte burada <strong>public $value;</strong> yerel ve her yerde kullanılan bir değişken olarak kullanmak yerine <strong>private </strong> tanımlanması mantıklıdır. </p>
</blockquote>
<p>yazar:</p>
<p><strong>a.  gökalp kuşçu</strong></p>
]]></content:encoded>
			<wfw:commentRss>http://www.gokalpkuscu.com/php-nesneye-dayali-programlama-public-deyimi/feed</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>PHP Nesneye Dayalı Veri Tabanı Bağlantı Modeli</title>
		<link>http://www.gokalpkuscu.com/php-nesneye-dayali-veri-tabani-baglanti-modeli</link>
		<comments>http://www.gokalpkuscu.com/php-nesneye-dayali-veri-tabani-baglanti-modeli#comments</comments>
		<pubDate>Fri, 26 Jun 2009 22:11:32 +0000</pubDate>
		<dc:creator>Gökalp Kuşçu</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[php nesneye dayalı programlama]]></category>
		<category><![CDATA[PHP OOP]]></category>
		<category><![CDATA[php veri tabanı]]></category>
		<category><![CDATA[php veri tabanı bağlantısı]]></category>

		<guid isPermaLink="false">http://www.gokalpkuscu.com/?p=82</guid>
		<description><![CDATA[Php üstünde uzunca bir süre olmasada yaklaşık 1 yıldır, Object Oriented olarak yazılım geliştiriyorum. Bu yazımla bloğuma bu konu hakkında daha çok bilgi eklemeye çalışacağım. Şimdi bazı kodları vereceğim ve bazı noktalarına değineceğim. Bundan önce şöyle bir bilgi vermek istiyorum, php işe yaramaz diyenlere PHP, özellikle mysql veritabanıyla birlikte ve Linux işletim sistemi altında iyi [...]]]></description>
			<content:encoded><![CDATA[<p>Php üstünde uzunca bir süre olmasada yaklaşık 1 yıldır, Object Oriented olarak yazılım geliştiriyorum. Bu yazımla bloğuma bu konu hakkında daha çok bilgi eklemeye çalışacağım. Şimdi bazı kodları vereceğim ve bazı noktalarına değineceğim.</p>
<p><span id="more-82"></span></p>
<p>Bundan önce şöyle bir bilgi vermek istiyorum, php işe yaramaz diyenlere <img src='http://www.gokalpkuscu.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<blockquote><p>PHP, özellikle mysql veritabanıyla birlikte ve Linux işletim sistemi altında iyi bir performans sergilmektedir. C/C++ diline olan benzerliği nedeniyle bu dili önceden bilenlerin PHP öğrenmesi oldukça kolaydır. Kolay öğrenilmesi ve hızlı performansı nedeniyle Facebook, YouTube, Yahoo, Wikipedia ve OGame gibi dünyaca ünlü sitelerin yazımında kullanılmasına rağmen, kodların kolay anlaşılabilmesi açısından ve birden fazla programcı tarafından sürekli geliştirilmesi gerekli büyük projelerde Java nın kullanılması daha uygun görülmektedir. Ancak sadece web tabanlı yazılımın geliştirilmesi söz konusu olduğunda Java ya göre öğrenilmesinin daha kolay olması nedeniyle genellikle PHP tercih edilmektedir. PHP, web tasarımında önemli kolaylıklar sağlasa da 2005 te Google in AJAX kullanmaya başlamasından sonra tek başına öğrenilmesi yeterli olmamakta AJAX&#8217;ı öğrenmek için gerekli JavaScript, [[XML], HTML, (ve CSS) ile birlikte bir bütün oluşturabilmektedir.</p></blockquote>
<p>Şimdi gelelim şu kodlarımıza:</p>
<pre class="brush:php">

< ?php

//VERI TABANI BILGILERI ALINIYOR
require "database_config.php";

//VERI TABANINA BAGLANTI CLASSI
class database
{
    private $host;
    private $user;
    private $pass;
    private $db;
    public $connection;

	 public function __construct($host, $user, $pass, $db)
    {
        $this->host = $host;
        $this->user = $user;
        $this->pass = $pass;
        $this->db = $db;
    }

    public function connect()
    {
        try
        {
            $this->connection = @mysql_connect($this->host, $this->user, $this->pass, $this->db);
            if (!$this->connection)
                throw new Exception("Database bağlantısı gerçekleştirilemiyor. ( Host , User , Pass , Db");
        }
        catch (exception $e)
        {
            die("{$e->getMessage()}");
        }

    }

    public function select()
    {
        try
        {
            if (!@mysql_select_db($this->db, $this->connection))
                throw new Exception("Veritabanı Seçilmemiş");
				mysql_query("SET NAMES 'utf8'");

        }
        catch (exception $e)
        {
            die("{$e->getMessage()}");
        }
    }

}
    //VERI TABANI ICIN TANIMLADIGIM DEGISKENLERI CLASSA GONDERIYORUM
	$DATABASE_OBJECT = new database($host, $user, $pass, $db);
	//CLASS FUNCTION CONNECT CALISTIRILDI
	$DATABASE_OBJECT->connect();
	//CLASS FUNCTION SELECT VERI TABANI SECILDI...
	$DATABASE_OBJECT->select();

?>
</pre>
<p> <strong>__construct :</strong> yapısı kurucu manasına gelir, bunu bu şekilde yazmak zorunda değilsiniz, class isimide function olarak belirtildiğinde contructer yanı yapıcı fonksiyon olucaktır. Yapıcı methodtan kastım nedir. Oluşturduğunuz nesne için function çağırmaz iseniz bile bu function çalışacaktır manasına gelir.</p>
<p><strong>Public :</strong> her yerden ulaşılabilir class dışındaki alanlardan.</p>
<p><strong>Private :</strong> her yerden ulaşılamaz ben her ne kadar bunu teorik anlatsamda, nasıl oluyo denebilir bence kod yazarak bu anlamak daha mantıklı deneyin <img src='http://www.gokalpkuscu.com/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
]]></content:encoded>
			<wfw:commentRss>http://www.gokalpkuscu.com/php-nesneye-dayali-veri-tabani-baglanti-modeli/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
	</channel>
</rss>

