PHP

PHP ile Trait'ler (traits)

Tamer tarafından, 05 01 2013 02:21:00 tarihinde yayınlandı.

Uzun bir aradan sonra yeniden merhaba, Bu paylaşımında sizlere PHP 5.4.0 versiyonu ile birlikten gelen "traits" özelliğinden bahsedeceğim.

Trait ?

"trait" bir sınıf gibi oluşturuluyor fakat bir sınıf gibi kullanamıyorsunuz. Kullanım yeri için kafamızda birşeylerin belirmesi için bir örnek verecek olsaydım; ortak fonksiyon toplama alanı diyebilirdim. Tabiki bu basit bir anlatış olacak.Tabi örnek kullanım şeklini görmeden anlaşılması biraz karışık olabilir.


NORMAL KULLANIM ŞEKLİ


trait tavuklar {
        public function kirmizi() {
	        echo "kirmizi tavuk!";
	    }
	}
	 
	trait horozlar {
	    public function siyah() {
	        echo "siyah horoz!";
	    }
	}
	 
	class kumes {
	    use tavuklar, horozlar;
	}
	 
	$ornek = new kumes;
	$ornek->kirmizi(); // kirmizi tavuk!
	$ornek->siyah(); // siyah horoz!


ELEMELİ KULLANIM ŞEKLİ

 
trait tavuklar { 
	    
  public function kirmizi() { 	        
    echo "kirmizi tavuk!"; 	    
  } 
            
  public function siyah(){                
    echo "siyah tavuk!";             
  } 	
}
 	  	
trait horozlar {  
           
  public function kirmizi() {
    echo "kirmizi horoz!";
  } 	  
  
  public function siyah() {
    echo "siyah horoz!";
  } 	
} 	
  	
class kumes { 	    
  use tavuklar, horozlar{             
    horozlar::kirmizi insteadof tavuklar;             
    horozlar::siyah insteadof tavuklar;             
    tavuklar::kirmizi as kirmizitavuk;            
  } 	
} 	  	

$ornek = new kumes; 	

$ornek->kirmizi();  // kirmizi horoz! 	
$ornek->siyah();    // siyah horoz!         
$ornek->kirmizitavuk(); // kirmizi tavuk! 
 

Yukardaki örnekte mukerrer fonksiyon isimlerinin kullanılabilir haklarını "use" kısmında belirtiyoruz. ulaşamadımız tavuklar trait'inin kirmizi tavuklarına ulaşmak içinde "tavuklar::kirmizi as kirmizitavuk" örnekteki kombinasyonu sağlıyoruz.

STATIC KULLANIM ŞEKLİ


trait statikOrnek {
    public static function foo() {
        return 'Merhaba Dünya!';
    }
}

class ornek {
    use statikOrnek;
}

ornek::foo(); // Merhaba Dünya

Etiketler : Yazılım, PHP, Genel

MAMP ile MongoDB Başlarken

Tamer tarafından, 02 13 2013 07:03:00 tarihinde yayınlandı.

Başlarken diyorum çünkü MAC'inize MongoDB kurmak çok  kolay,

Öncelikle Terminal'i açıp HOMEBREW(Paket yöneticisi) kuruyoruz.

ruby -e "$(curl -fsSL https://raw.github.com/mxcl/homebrew/go)"

HOMEBREW kurulduktan sonra

brew update

bunu yenile gibi düşünebilirsiniz.

brew install mongo

Kuruyorsunuz...

brew update

Güncelliyorsunuz ayrıca;

brew list

derseniz kurulduğunu görebilirsiniz. bu kadar şimdi test ediyoruz

mongod

ekran çıktısı olarak aşağıdaki yazı gelecektir. log dosyasını konsol ile bakabilirsiniz.
all output going to: /usr/local/var/log/mongodb/mongo.log

Terminal'de test etmek veya kullanmak için

mongo

yazmanız yeterli..

Geriye  PHP'ye entegre etmek kaldı.

Aşağıdaki adresten php sürümünüze uygun eklentiyi indirin.

https://github.com/mongodb/mongo-php-driver/downloads

inen ".so" uzantılı dosyayı

MAMP Uygulama klasörünün içinde bulunan ( genelde /Applications/MAMP/ )

/bin/php/(kullandığınız PHP sürümü)/lib/php/extensions/no-debug-non-zts... klasörünün içine taşıyoruz.

sonra /bin/php/(kullandığınız PHP sürümü)/conf/php.ini dosyasını herhangi bir yazı editör ile açıp

extension=mongo.so

satırını ekliyoruz, son olarak MAMP'ı yeniden çalıştırıyoruz.

<?php phpinfo(); ?>
phpinfo'ya bakıp kontrol ediyoruz.




Etiketler : Veritabanı, Yazılım, PHP, Genel

Yii Framework'den jQuery Cookie(Çerez) Eklentisi'ne Erişim

Tamer tarafından, 12 27 2012 22:29:00 tarihinde yayınlandı.

Yii Framework'ün, JQuery Cookie eklentisine erişimi gayet basittir. Önemli olan script dosyanın referans bilgileri yanlış girilmemiş olmasıdır.
 Örnek olarak;

$script = Yii::app()->clientScript;
$script->registerCoreScript('jquery');
$script->registerCoreScript('cookie');
$script->registerScriptFile(CController::createUrl('/js/main.js'), 
CClientScript::POS_HEAD);

Burayı ayarladıktan sonra,  JavaScript'de çerezleri ayarlayabilirsiniz:

$.cookie("Title", "Value", {path: "/", expires: "3"});

Burada "path" erişim sağlayacağınız çerezlerin konumunu yazılıyor. "expires" ise kaç gün kalacağını belirtiyor. ve nihayet çerezi oluşturabilirsiniz.

Aşağıdaki gibi de çerezinizi çağırabilirsiniz.

$.cookie("Title");

Yii Framework - Modeli Parçalar Halinde İşlemek

Tamer tarafından, 12 18 2012 01:29:00 tarihinde yayınlandı.

Geçenlerde bir hesaplama işlemi için tüm kayıtları işleme koymam gerekiyordu. Ancak 2000 nci kayıttan sonra PHP bellek hatası verdi.

Açıkcası tek seferde Tüm verileri gözden geçirmek iyi bir fikir değildi. Bu yüzden belirli periyotlarla geçirmek daha sağlıklı olurdu bu işin tek püf noktası ise  her periyot bitiminde unset kullanmak olduğunu gördüm.

geriye MYSQL'de nasıl uyguyacağım kalmıştı ki çözüm oldukça basitmiş.

$loopLimit = 1000;      

for ($i = 0; $i <= $total; $i=$i+$loopLimit) {

                $criteria=new CDbCriteria;                       

                $criteria->offset=$i;
                $criteria->limit=$loopLimit;            

                $items = Uyeler::model()->findAll($criteria); 

                foreach ($items as $item) {
                /** İşlem YAPTIR **/
                }

                unset ($items);
                unset ($item);
}

Yii Framework – Controller Sonlandırma (END ACTION)

Tamer tarafından, 12 18 2012 01:19:00 tarihinde yayınlandı.

Kimi zaman projelerde işlemi durdurmak yani iptal etmek isteyebilirsiniz. Örneğin geçersiz giriş, eksik parametre vb.. 

İşte bu gibi durumlarda aşağıdaki verdiğim örnekte olduğu gibi Yii Controller'a end() function'nu ekleyip  durdurabilirsiniz.

if (empty($_GET))
Yii::app()->end();
Etiketler : Yii Framework, Yazılım, PHP, Genel
1 | 2 | 3 | 4