PayPal - Online ödeme yapmanın daha güvenli ve kolay yolu!
Yeni Cevap 
 
Konuyu Değerlendir
  • 3 Oy - 4.33 Ortalama
  • 1
  • 2
  • 3
  • 4
  • 5
OpenCart Registry
Yazar Mesaj
duzgun Çevrimdışı
Hizmetinizde
*******

Mesajlar: 2,323
Katılım: Jul 2008
Rep Puanı: 17
Mesaj: #1
OpenCart Registry
Opencart gibi php sınıf(class) tabanlı e-ticaret sistemlerini geliştirmek için php nin sınıf kavramını ve değişkenlere erişim ve değer atama yöntemlerini iyi bilmek gerekmektedir.

İlk olarak OpenCart Registry Sınıfının amacını görelim.

index.php de bulunan Registry(Kayıt Defteri) sınıfı aşağıdaki gibidir.
PHP Kod:
// Registry
$registry = new Registry(); 

Registry sınıfı arandığında opencart/system/engine/registry.php dosyasına bulunduğu görülmektedir.

Register sınıfı "final class Registry" şeklinde yazılmıştır.

php de sınıflar extends sözcüğü ile başka sınıfları genişleterek tanımlanabilir.
http://www.php.net/manual/tr/keyword.extends.php

Eğer bir sınıf kendini final sözcüğüyle tanımlamışsa o sınıf genişletilemez. Final kelimesi ile sınıf son ilan edilmektedir.

Aşağıdaki örnekte, BaseClass ve son olarak bildirilmiş ve bu nedenle BaseClass dan hiç bir class türetilemez.

Örnek #1 Final class örneği
PHP Kod:
<?php
//BaseClass dan sonra sonra başka bir sınıf BaseClass'a extends edilemez.
final class BaseClass {
  public function 
test() {
       echo 
"BaseClass::test() çağrıldı.\n";
   }
}
class 
ChildClass extends BaseClass {
}
//Fatal error: Class ChildClass may not inherit from final class (BaseClass)
?>

Aşağıdaki 2. örneğimizde ise BaseClass sınıfından türeyen bir class da hiç bir şekilde test() metodu bulunamaz çünkü test() fonksiyonu BaseClass sınıfının final metodur ve geçersiz kılınamaz (override).

Örnek #2 Final metod örneği

PHP Kod:
<?php
class BaseClass {
   final public function 
test() {
       echo 
"BaseClass::test() çağrıldı.\n";
   }
}
class 
ChildClass extends BaseClass {
   public function 
test() {
       echo 
"ChildClass::moreTesting() çağrıldı\n";
   }
}
//Fatal error: Cannot override final method BaseClass::test()
?>


opencart/system/engine/registry.php
PHP Kod:
<?php
final class Registry {
    private 
$data = array();

    public function 
get($key) {
        return (isset(
$this->data[$key]) ? $this->data[$key] : NULL);
    }

    public function 
set($key$value) {
        
$this->data[$key] = $value;
    }

    public function 
has($key) {
        return isset(
$this->data[$key]);
      }
}
?>

Sınıfı incelendiğinde Associative array olarak tanımlanan $data değişkenine $key parametresi ile gelen anahtarına $value değeri atandığı görülmektedir. $value değeri herhangi bir tipte bir değer olabilir. örnek : resource, class, array, string, int vs olabilir.

opencart değişken,değer şeklinde her defasında tekrar değişken tanımlamaları yerine Registry(Kayıt Defteri) sınıfı ile anahtar, değer yöntemi ile değerleri tutmaktadır.

©duzgun.com Harici yayınlanması yasaktır.
25-02-2011 00:07
Bu kullanıcının gönderdiği tüm mesajları bul Bu mesajı alıntı yap
ismedya Çevrimdışı
Member
***

Mesajlar: 10
Katılım: Jan 2012
Rep Puanı: 0
Mesaj: #2
RE: OpenCart Registry
teşekkürler .
22-03-2012 14:24
Bu kullanıcının gönderdiği tüm mesajları bul Bu mesajı alıntı yap
uveybaba Çevrimdışı
Junior Member
**

Mesajlar: 7
Katılım: Aug 2014
Rep Puanı: 0
Mesaj: #3
RE: OpenCart Registry
teşekkürler.
04-08-2014 17:18
Bu kullanıcının gönderdiği tüm mesajları bul Bu mesajı alıntı yap
Yeni Cevap 


Benzer Konular...
Konu: Yazar Cevaplar: Gösterim: Son Mesaj
  Opencart Ücretli Destek ve Özel Tema Tasarımı oscommerce2626 0 1,444 17-03-2016 01:53
Son Mesaj: oscommerce2626
  Opencart 2.0 Gün yüzüne Çıktı gulendam 5 4,519 28-12-2014 22:22
Son Mesaj: gulendam
  OpenCart Action Temel Sınıfı(Base Class) duzgun 4 4,625 27-08-2014 17:52
Son Mesaj: Düzgün Reyiz Üşüyoruz
  Opencart 1.5 Attribute & Options Table DB Diagram duzgun 6 6,291 04-08-2014 17:17
Son Mesaj: uveybaba
  Opencart Ön Kontrol(Front Controller) duzgun 1 3,032 02-06-2014 14:13
Son Mesaj: rezaradmehr
  opencart 1.5.1.3.1 Çıkmış yunusdogan 2 3,146 02-06-2014 14:12
Son Mesaj: rezaradmehr

Foruma Git:


Bu konuyu görüntüleyen kullanıcı(lar): 1 Ziyaretçi