Yeni Cevap 
 
Konuyu Değerlendir
  • 2 Oy - 5 Ortalama
  • 1
  • 2
  • 3
  • 4
  • 5
OpenCart MVC(Model-View-Controller) mimarisi
Yazar Mesaj
duzgun Çevrimdışı
Hizmetinizde
*******

Mesajlar: 2,322
Katılım: Jul 2008
Rep Puanı: 17
Mesaj: #1
OpenCart MVC(Model-View-Controller) mimarisi
OpenCart da programlama modeli olarak MVC(Model-View-Controller) + L(Language) kullanılır.

[Resim: opencart_mvc.gif]

Model - Veri işlem katmanı
View(kullanıcı arayüzü) - Şablon ekran
Controller(Denetleyici) - Ana katman
Language(Dil) - Yerelleştirme

Catalog sayfasında bunların karşılıkları şu şekildedir.

Kod:
M: /catalog/model/catalog/product.php
V: /catalog/view/template/product/product.tpl
C: /catalog/controller/product/product.php
L: /catalog/language/turkish/product/product.php

Admin bölümünde ise aşağıdaki düzen esas alınmıştır.

Kod:
M: /admin/model/catalog/product.php
V: /admin/view/template/catalog/product.tpl
C: /admin/controller/catalog/product.php
L: /admin/language/turkish/catalog/product.php



/system/engine/model.php ve /system/engine/controller.php sistem class ları başlarına eklenen abstract kelimesi ile Base Class oldukları belirtilmektedir.
bu class lar kendi başlarına instance edilemezler. Genişletilerek kullanılırlar. Diğer sistem class ları ise final kelimesi ile başlayan genişletilemez classlardır.
OpenCart da oluşturulan tüm Model sınıfları /system/engine/model.php çekirdek sınıfının genişletilmiş hali olmaktadır. php Sınıfı isimleri de dizin yolu ve dosya adının sıralı biçimde yazılmasıyla adlandırılmaktadır.
Aynı şekilde oluşturulan tüm Controller sınıfları da /system/engine/controller.php temel çekirdek sınıfının genişletilmiş hali olmaktadır. Yazılmış olan Controller(Denetleyici) sınıfları bu çekirdek Controller sınıfın soyundan gelmektedir.


Model :
Model, İş Mantığını ve veri işleme süreçlerini yürütür. Controller tarafından gönderilen emirlere göre hareket eder. Bilgi işleme sürecinden sonra veriyi Controller'e, diğer modellere veya doğrudan View'e gönderir.

PHP Kod:
<?php
class Modelpricelistprice extends Model 
public function 
get_subcategories($category_id){}
public function 
get_products($category_id){}

?>

View :
View son kullanıcıya gösterilecek olan verinin sunumu ile ilgilenir. View, bu bilgiyi Controller veya Model'den alır, aynı zamanda son kullanıcıdan gelen talepleri Controller'e iletir.
Temalar(Şablonlar) bu dizinde yer alır. View dizini images, javascript, template, css(stylesheet) gibi görüntüyle alakalı tüm dosyaları içerir.

catalog/view/theme/default/template/pricelist/price.tpl

Şeklinde oluşturulan örnek bir şablonda sayfanın html kodu tanımlanır.
Şablonlarda aşağıdaki değişkenler kullanılır.

OpenCart Çekirdek değişkenler: $header, $column_left, $column_right, $footer
Controller Değişkenler: $heading_title, $main_title, $category, $product


Controller:
Controller ise sistemin ana kısmıdır. Gelen talepleri kontrol eder ve sistemin diğer elemanlarının (Model,View) bilgiyi uygun şekilde alıp, göndermelerini sağlar.
Controller model ve view arasındaki çalışma ilişkisini içermektedir.

Controller(Denetleyici) sınıfındaki tanımlar aşağıdaki gibidir.

$id : Controller nesnesinin adıdır. Örneğin ControllerCommonColumnLeft nesnesinin $id si ColumnLeft dir. Adresi de catalog/controller/common/column_left.php dir.
Şablonda kullanılna isimler eşleşmelidir.

$template : Controller çıktısının yapılacağı template dosyasını tanımlar. Controller $data dizisindeki değişkenlerle template doldurulur.
$children : üst seviye Controller den oluşan dizidir. Üst düzey Controller in parçasıdır.
Örnek olarak ControllerCommonHome Controller i sırayla ControllerCommonHeader, ControllerCommonFooter, ControllerCommonLeft, ControllerCommonRight Controller leri içermektedir.
$data : $template i doldurmak için saklanan veriler $data dizisinde bulunmaktadır. php extract fonksiyonu kullanılarak $data değişkeninden local değişkenler oluşturulur. ve bu local değikenlerin karşılıklarıyla $template doldurulur.
$output : $output değişkeninde saklanan $template html çıktılarıdır.

Kullanım örnekleri ve açıklaması aşağıda yazmaktadır.

PHP Kod:
//Model içindeki fonksiyolarla iletişime geçmek için kullanılacak modelin yüklenmesi
$this->load->model('pricelist/price');

//Model deki metot ların yani fonksiyonların çağrılma biçimi
$tmp_categories $this->model_pricelist_price->get_subcategories($category_id);

//Dosya iletişim dil dosyasını yüklemek
$this->language->load('pricelist/price'); 

Model içinde

$this->data['category']

tanımlanan bir değişken başka bir model içinde load edilirse.

$this->category;

Biçiminde ulaşılmaktadır. template dosyasında ise $category şekilinde ulaşılır.

Başka bir

showcase.tpl şeklinde oluşturulan bir tema dosyasını home.tpl içine eklemek için <?php echo $showcase; ?> şeklinde yazılır.

PHP Kod:
<?php 
class ControllerCommonShowcase extends Controller 
protected function 
index() { 
$this->id 'showcase'
if (
file_exists(DIR_TEMPLATE $this->config->get('config_template') . '/ template/common/showcase.tpl')) { 
$this->template $this->config->get('config_template') . '/template/common/showcase.tpl'
} else { 
$this->template 'default/template/common/showcase.tpl'

$this->render(); 
}
?>

home.php Controller dosyasındaki $children Controller ine showcase eklenmelidir.

PHP Kod:
<?php
$this
->children = array( 
'common/column_right'
'common/column_left'
'common/footer'
'common/header'
'common/showcase' 
); 

Opencart, MVC mimarisi ve Nesne Yönelimli Programlama(Object-oriented Programming) temellidir.
http://tr.wikipedia.org/wiki/Model-view-controller
http://www.php.net/manual/tr/language.oop5.php

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

Mesajlar: 16
Katılım: Aug 2008
Rep Puanı: 0
Mesaj: #2
RE: OpenCart MVC(Model-View-Controller) mimarisi
teşekkürler mimarisini merak ediyordum.open cart la ilgili verdiğiniz bilgiler çok güzel...devamını bekliyoruz.
02-03-2011 00:15
Bu kullanıcının gönderdiği tüm mesajları bul Bu mesajı alıntı yap
mdogan35 Çevrimdışı
Junior Member
**

Mesajlar: 3
Katılım: Jul 2011
Rep Puanı: 0
Mesaj: #3
RE: OpenCart MVC(Model-View-Controller) mimarisi
Bu anlattığınız olay CodeIgniter framework ile yapılmış bir sistemmi? ve şöyle birşey sormak istiyorum bu scriptin tpl dosyaları içerisinde değişken tanımlamak mümkünmüdür? php dosyasından controllerden yaılabiliyor merakımdan soruyorum tpl dosyalarında php kodları kullanılıyor değişken tanımlamak ta mümkün müdür?
08-08-2011 18:26
Bu kullanıcının gönderdiği tüm mesajları bul Bu mesajı alıntı yap
hbnet Çevrimdışı
Member
***

Mesajlar: 15
Katılım: May 2011
Rep Puanı: 0
Mesaj: #4
RE: OpenCart MVC(Model-View-Controller) mimarisi
(08-08-2011 18:26)mdogan35 demiş ki:  Bu anlattığınız olay CodeIgniter framework ile yapılmış bir sistemmi? ve şöyle birşey sormak istiyorum bu scriptin tpl dosyaları içerisinde değişken tanımlamak mümkünmüdür? php dosyasından controllerden yaılabiliyor merakımdan soruyorum tpl dosyalarında php kodları kullanılıyor değişken tanımlamak ta mümkün müdür?

.tpl dosyalarının içerisinde her türlü php kodlamasını yapabiliyorsun.
Örnek: /catalog/view/theme/default/template/common/home.tpl içerisinde <?php echo $header; ?> satırı php ile $header değişkenini yazdırıyor. Aynı şekilde bu dosyanın içerisinde de $degisken tanımlayıp dilediğin işlemi yapabilirsin.
09-10-2011 18:56
Bu kullanıcının gönderdiği tüm mesajları bul Bu mesajı alıntı yap
sidelord Çevrimdışı
Junior Member
**

Mesajlar: 2
Katılım: Sep 2011
Rep Puanı: 0
Mesaj: #5
RE: OpenCart MVC(Model-View-Controller) mimarisi
(08-08-2011 18:26)mdogan35 demiş ki:  Bu anlattığınız olay CodeIgniter framework ile yapılmış bir sistemmi? ve şöyle birşey sormak istiyorum bu scriptin tpl dosyaları içerisinde değişken tanımlamak mümkünmüdür? php dosyasından controllerden yaılabiliyor merakımdan soruyorum tpl dosyalarında php kodları kullanılıyor değişken tanımlamak ta mümkün müdür?

OpenCart CodeIgniter framework'ünü kullanmıyor. Tpl dosyasına tabikide değişken tanımlayarak bunu controller üzerinden tanımladığınız değişkene değer verebilirsiniz.
22-11-2011 15:02
Bu kullanıcının gönderdiği tüm mesajları bul Bu mesajı alıntı yap
esedun Çevrimdışı
Junior Member
**

Mesajlar: 6
Katılım: Aug 2011
Rep Puanı: 0
Mesaj: #6
RE: OpenCart MVC(Model-View-Controller) mimarisi
Çok faydalı bilgi teşekkürler.
16-09-2013 01:31
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 1 2,628 02-06-2017 18:03
Son Mesaj: wax123
  Opencart 2.0 Gün yüzüne Çıktı gulendam 5 5,063 28-12-2014 22:22
Son Mesaj: gulendam
  OpenCart Action Temel Sınıfı(Base Class) duzgun 4 5,248 27-08-2014 17:52
Son Mesaj: Düzgün Reyiz Üşüyoruz
  OpenCart Registry duzgun 2 4,467 04-08-2014 17:18
Son Mesaj: uveybaba
  Opencart 1.5 Attribute & Options Table DB Diagram duzgun 6 6,948 04-08-2014 17:17
Son Mesaj: uveybaba
  Opencart Ön Kontrol(Front Controller) duzgun 1 3,738 02-06-2014 14:13
Son Mesaj: rezaradmehr

Foruma Git:


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