際際滷

際際滷Share a Scribd company logo
丐仍亳从舒 于亞亠仆亳亶
         Magento Developer
         Professional Services Team

         evgeniy.tulika@magento.com




丿舒弍仍仂仆 从仂仗仂舒亳于仆
 仗亳仍仂亢亠仆亳亶 于 Magento
丿舒弍仍仂仆. 仂亠仄 仂 仆亳 亞仂于仂?


                                            Craig
    丿舒弍仍仂仆 仆亠 仂亟亠亢舒    B                Larman
             仆仂于 亳亟亠亶


                                    C
         丿舒弍仍仂仆 亳仄亠ム 亳仄亠仆舒



                丿舒弍仍仂仆 仂弍仍亠亞舒ム       D
                         仂弍亠仆亳亠
     Transaction Script
   Identity Map                           Domain Model
   Lazy Load



                                                         Data Mapper
                             Domain Logic                Table Data
                                                          Gateway
         Object-Relational                               Active Record
             Behavior




                                                 Data Source
                                                 Architecture
亠亟舒于仍亠仆亳亠 弍亳亰仆亠-仍仂亞亳从亳
仂仂亶 仗: 亟亠从仂仄仗仂亰亳亳 仗仂 亟亠亶于亳礆
                           AccountActions
                      + Login
                      + Register
                      + Logout
                      + ShowAccount



                           CheckoutActions
                      + addToCart
                      + showCheckout
                      + submitCheckout
Transaction Script
舒亢亟舒 仂仗亠舒亳 亠舒仍亳亰仂于舒仆舒 于仂亳仄
  仄亠仂亟仂仄
   public function addToCart()
   {
     //retrieve user data from session
     //retrieve product from database
     //add product information to quote
     //
     //
     //save quote data to database
   }
Domain Model
弍亠从舒仄亳 仗亠亟舒于仍亠仆 亠舒仍仆亠
 仆仂亳


                            Business Logic Layer

      Category    Product     Order

       Quote      Payment      Cart

       Customer_Address     Customer
舒仍仂亠仆亳亠.  从舒从 于 Magento?

Sales                 Service Layer
|--Block
|--controllers           Domain Models
|--etc
|--Helper                     Data Mappers
|--Model
| |--Mysql4           Data Access Objects
| |-- Billing
| |-- Entity
| |-- Payment
| |-- Order.php
| |-- Quote.php
Mapping Objects to Data Source
Data Mapper
/*亠于仍磳 仗亠亠亟舒 亟舒仆仆 仄亠亢亟 仂弍亠从舒仄亳 亳 弍舒亰仂亶
亟舒仆仆, 仂舒仆 亳 仆亠亰舒于亳亳仄仄亳 亟亞 仂 亟亞舒 亳 仂 舒仄仂亞仂
仄舒仗仗亠舒*/
Zend Way
<?php
class App_Model_UserDataMapper
{
   public function save(App_Model_User $user)
   {                                            Matthew
     $dao = $this->getDao();                    Weier
     $id = $user->getId();                      OPhinney
     if (!$id) {
        $id = $dao->insert($user->toArray());
     } else {
         $dao->update($user->toArray(),
            array(id=?, $id));
     }
     $record = $dao->find($id)->current();
     $user->setOptions($record->toArray());
     return $user;
   }
亠仆亠仄 从 Magento
                               亠-仄仂亟亠仍亳
Sales
|--Block
|--controllers      <global>
                      <models>
|--etc                  <sales>
|--Helper                      <class>Mage_Sales_Model</class>
                               <resourceModel>sales_mysql4</resourceModel>
|--Model                   </sales>
| |--Mysql4                <sales_mysql4>
                                <class>Mage_Sales_Model_Mysql4</class>
| | |--Order.php           <sales_mysql4>
| | |--Quote.php        <sales>
                      <models>
| |-- Billing         <!-- ... -->
| |-- Entity        </global>

| |-- Payment
| |-- Order.php
| |-- Quote.php     Mage::getResourceModel('sales/order');
                        ->load($order, $id, $field);
public function load(Mage_Core_Model_Abstract $object, $value, $field=null)
{
  if (is_null($field)) {
     $field = $this->getIdFieldName();        Mage_Core_Model_Mysql4_Abstract
  }

    $read = $this->_getReadAdapter();
    if ($read && !is_null($value)) {
       $select = $this->_getLoadSelect($field, $value, $object);
       $data = $read->fetchRow($select);
        if ($data) {
           $object->setData($data);
       }
    }
    $this->_afterLoad($object);

    return $this;
}
弌从舒 亠-仄仂亟亠仍亳




                          Mage_Core_Model_Resource_Abstract
                          #_getWriteAdapter()
                          #_getWriteAdapter()
                          #_getReadAdapter()
                          #_getReadAdapter()
                          + beginTrasnsaction()
                          + beginTrasnsaction()
                           Mage_Core_Model_Mysql4_Abstract
                           Mage_Core_Model_Mysql4_Abstract
                          + getMainTable()
                          + getMainTable()
                          + load()
                          + save()
                          + save()
                          + delete()
                          + delete()
                          #_prepareDataForTable()
                          #_prepareDataForTable()
仍亳亳 仂 从仍舒亳从亳
仂仄亠仆仆亠 仄仂亟亠仍亳 亰仆舒ム 仂 于仂亳 亠-
 仄仂亟亠仍
                                                   Mage_Sales_Model_Order
public function getProductIds()
{
  $ids = $this->getData('product_ids');
  if (is_null($ids)) {
     $ids = $this->_getResource()->getProductIds($this);
     $this->setProductIds($ids);
  }
  return $ids;
}
Lazy and Eager Loading




 亠 亟舒仆仆亠 亠 仗仂亟 从仂亶
                               仂亢亠 亰舒亞亰亳
 仂亢亠 仗仂亠弍仂于舒         亳亰仍亳仆亠 仄仆仂亞仂 亟舒仆仆
仍亳从仂仄 仄仆仂亞仂 仂弍舒亠仆亳亶
从 弍舒亰亠                         亠 亟舒仆仆亠 亠 仗仂亟
                              从仂亶
Lazy Loading in Magento

public function getAddressesCollection()        Mage_Sales_Model_Order
{
  if (is_null($this->_addresses)) {
     $this->_addresses = Mage::getResourceModel('sales/order_address_collection')

         ->setOrderFilter($this);
      if ($this->getId()) {
         foreach ($this->_addresses as $address) {
            $address->setOrder($this);
         }
      }
    }
    return $this->_addresses;
}
仍亠仆舒亳于. Table Data Gateway
        Name        City       Telephone Age         Insurance
        Eugene      Kyiv       +3804456   21         32453453
        Igor        New York   +45066 Model_DbTable 23452345
                                        _Person

                                   +find()
                                   +findWithName()
     Model_Person                  +update()
                                   +insert()
+getName()                         +delete()
+getAddress()
+sendEmail()
+addFriend()
+getFRiendSuggestions()
仍亠仆舒亳于. Active Record
 Name     City       Telephone Age          Insurance
 Eugene   Kyiv       +3804456    21         32453453
 Igor     New York   +45066     Model_Person 23452345

                         +getName()
                         +getAddress()
                         +sendEmail()
                         +addFriend()
                         +getFriendSuggestions()

                         +find()
                         +findWithName()
                         +update()
                         +insert()
                         +delete()
仂仍仍亠从亳亳. Identity Map

getElement(green)   Identity Map
                                   find()
                       empty
                                   load()
                                            Identity Map



    return(   )
Magento Collections
                                 亠-从仂仍仍亠从亳亳
Sales
|--Model
| |--Mysql4
| | |-- Collection
| | | | -- Abstract.php
                            Mage::getResourceModel('sales/order_collection')
| | | -- Report
                                ->addFieldToSelect(*)
| | | | -- Collection.php       ->setOrder(created_at, desc');
| | |--Order.php
| | |--Quote.php
| |-- Billing
| |-- Entity                $children = $this->getResourceCollection()
| |-- Payment                 ->setOrderFilter($orderFilter)
| |-- Order.php               ->addPaymentIdFilter($paymentId)
| |-- Quote.php               ->addParentIdFilter($this->getId());
弌从舒 从仂仍仍亠从亳亳

     Varien_Data_Collection                Countable

+getItemsByColumnValue()
+addItem()                              IteratorAggregate
+walk()


                                   Mage_Core_Model_Mysql4
    Varien_Data_Collection_Db        _Collection_Abstract

+isLoaded()                     +addFiedToSelect()
+load()                         +setModel()
#_loadCache()                   +setResourceModel()
#_saveCache()                   +save()
evgeniy.tulika@magento.com

More Related Content

What's hot (19)

Python dict: 仗仂仍仂亠, 仆舒仂亠亠, 弍亟亠亠
Python dict: 仗仂仍仂亠, 仆舒仂亠亠, 弍亟亠亠Python dict: 仗仂仍仂亠, 仆舒仂亠亠, 弍亟亠亠
Python dict: 仗仂仍仂亠, 仆舒仂亠亠, 弍亟亠亠
delimitry
舒亰舒弍仂从舒 舒亳磳仄 仗亳仍仂亢亠仆亳亶 仆舒 Django
舒亰舒弍仂从舒 舒亳磳仄 仗亳仍仂亢亠仆亳亶 仆舒 Django舒亰舒弍仂从舒 舒亳磳仄 仗亳仍仂亢亠仆亳亶 仆舒 Django
舒亰舒弍仂从舒 舒亳磳仄 仗亳仍仂亢亠仆亳亶 仆舒 Django
MoscowDjango
Web 于亠仆舒 2013 仍亠从亳 4
Web 于亠仆舒 2013 仍亠从亳 4Web 于亠仆舒 2013 仍亠从亳 4
Web 于亠仆舒 2013 仍亠从亳 4
Technopark
仂亟仂弍仆舒 仗亠亰亠仆舒亳 JavaScript 6 于 1
仂亟仂弍仆舒 仗亠亰亠仆舒亳 JavaScript 6 于 1仂亟仂弍仆舒 仗亠亰亠仆舒亳 JavaScript 6 于 1
仂亟仂弍仆舒 仗亠亰亠仆舒亳 JavaScript 6 于 1
Vasya Petrov
仍亠从亠亶 亠亠亢仆仂亶 束jQuery損
仍亠从亠亶 亠亠亢仆仂亶  束jQuery損仍亠从亠亶 亠亠亢仆仂亶  束jQuery損
仍亠从亠亶 亠亠亢仆仂亶 束jQuery損
Yandex
亳仄亠 亠亠仆亳 亳仗亳仆 亰舒亟舒 亰舒 舒仄从舒仄亳 磲舒 Yii2
亳仄亠 亠亠仆亳 亳仗亳仆 亰舒亟舒 亰舒 舒仄从舒仄亳 磲舒 Yii2亳仄亠 亠亠仆亳 亳仗亳仆 亰舒亟舒 亰舒 舒仄从舒仄亳 磲舒 Yii2
亳仄亠 亠亠仆亳 亳仗亳仆 亰舒亟舒 亰舒 舒仄从舒仄亳 磲舒 Yii2
Paul Klimov
个仆从亳仂仆舒仍仆仂亠 仗仂亞舒仄仄亳仂于舒仆亳亠 - 仍亠从舒仆亟 仍亠从亠亠于
个仆从亳仂仆舒仍仆仂亠 仗仂亞舒仄仄亳仂于舒仆亳亠 - 仍亠从舒仆亟 仍亠从亠亠于个仆从亳仂仆舒仍仆仂亠 仗仂亞舒仄仄亳仂于舒仆亳亠 - 仍亠从舒仆亟 仍亠从亠亠于
个仆从亳仂仆舒仍仆仂亠 仗仂亞舒仄仄亳仂于舒仆亳亠 - 仍亠从舒仆亟 仍亠从亠亠于
Aleksander Alekseev
舒弍仂舒 于 Drupal 7
舒弍仂舒   于 Drupal 7舒弍仂舒   于 Drupal 7
舒弍仂舒 于 Drupal 7
Eugene Fidelin
Caching on highload Drupal site - Alexander Shumenko
Caching on highload Drupal site - Alexander ShumenkoCaching on highload Drupal site - Alexander Shumenko
Caching on highload Drupal site - Alexander Shumenko
DrupalCampDN
Yii2
Yii2Yii2
Yii2
Noveo
Jquery
JqueryJquery
Jquery
Sergey Pashkov
Javascript
JavascriptJavascript
Javascript
Vasya Petrov
YiiConf: 亳亞舒亳亳 亳 亳仆舒仍仍亳亳
YiiConf: 亳亞舒亳亳 亳 亳仆舒仍仍亳亳YiiConf: 亳亞舒亳亳 亳 亳仆舒仍仍亳亳
YiiConf: 亳亞舒亳亳 亳 亳仆舒仍仍亳亳
Paul Klimov
Tequila - 磶从 亟仍 仗仂亟于亳仆仂亶 亞亠仆亠舒亳亳 JSON
Tequila - 磶从 亟仍 仗仂亟于亳仆仂亶 亞亠仆亠舒亳亳 JSONTequila - 磶从 亟仍 仗仂亟于亳仆仂亶 亞亠仆亠舒亳亳 JSON
Tequila - 磶从 亟仍 仗仂亟于亳仆仂亶 亞亠仆亠舒亳亳 JSON
Ivan Nemytchenko
CodeFest 2012. 从仂于 . 仂亠仄 仗亠亠亟 仆舒仗亳舒仆亳亠仄 从亠舒 于舒仄 仂亳 仗仂亞仂于仂亳 ...
CodeFest 2012. 从仂于 .  仂亠仄 仗亠亠亟 仆舒仗亳舒仆亳亠仄 从亠舒 于舒仄 仂亳 仗仂亞仂于仂亳 ...CodeFest 2012. 从仂于 .  仂亠仄 仗亠亠亟 仆舒仗亳舒仆亳亠仄 从亠舒 于舒仄 仂亳 仗仂亞仂于仂亳 ...
CodeFest 2012. 从仂于 . 仂亠仄 仗亠亠亟 仆舒仗亳舒仆亳亠仄 从亠舒 于舒仄 仂亳 仗仂亞仂于仂亳 ...
CodeFest
弍舒 舒亳亠从舒 Yii2
弍舒 舒亳亠从舒 Yii2弍舒 舒亳亠从舒 Yii2
弍舒 舒亳亠从舒 Yii2
Paul Klimov
DevHub 3 - Pricing
DevHub 3 - PricingDevHub 3 - Pricing
DevHub 3 - Pricing
Magento Dev
仂亟于亳仆仂亠 亳仗仂仍亰仂于舒仆亳亠 ActiveRecord 于 Yii2
仂亟于亳仆仂亠 亳仗仂仍亰仂于舒仆亳亠 ActiveRecord 于 Yii2仂亟于亳仆仂亠 亳仗仂仍亰仂于舒仆亳亠 ActiveRecord 于 Yii2
仂亟于亳仆仂亠 亳仗仂仍亰仂于舒仆亳亠 ActiveRecord 于 Yii2
Paul Klimov
Python dict: 仗仂仍仂亠, 仆舒仂亠亠, 弍亟亠亠
Python dict: 仗仂仍仂亠, 仆舒仂亠亠, 弍亟亠亠Python dict: 仗仂仍仂亠, 仆舒仂亠亠, 弍亟亠亠
Python dict: 仗仂仍仂亠, 仆舒仂亠亠, 弍亟亠亠
delimitry
舒亰舒弍仂从舒 舒亳磳仄 仗亳仍仂亢亠仆亳亶 仆舒 Django
舒亰舒弍仂从舒 舒亳磳仄 仗亳仍仂亢亠仆亳亶 仆舒 Django舒亰舒弍仂从舒 舒亳磳仄 仗亳仍仂亢亠仆亳亶 仆舒 Django
舒亰舒弍仂从舒 舒亳磳仄 仗亳仍仂亢亠仆亳亶 仆舒 Django
MoscowDjango
Web 于亠仆舒 2013 仍亠从亳 4
Web 于亠仆舒 2013 仍亠从亳 4Web 于亠仆舒 2013 仍亠从亳 4
Web 于亠仆舒 2013 仍亠从亳 4
Technopark
仂亟仂弍仆舒 仗亠亰亠仆舒亳 JavaScript 6 于 1
仂亟仂弍仆舒 仗亠亰亠仆舒亳 JavaScript 6 于 1仂亟仂弍仆舒 仗亠亰亠仆舒亳 JavaScript 6 于 1
仂亟仂弍仆舒 仗亠亰亠仆舒亳 JavaScript 6 于 1
Vasya Petrov
仍亠从亠亶 亠亠亢仆仂亶 束jQuery損
仍亠从亠亶 亠亠亢仆仂亶  束jQuery損仍亠从亠亶 亠亠亢仆仂亶  束jQuery損
仍亠从亠亶 亠亠亢仆仂亶 束jQuery損
Yandex
亳仄亠 亠亠仆亳 亳仗亳仆 亰舒亟舒 亰舒 舒仄从舒仄亳 磲舒 Yii2
亳仄亠 亠亠仆亳 亳仗亳仆 亰舒亟舒 亰舒 舒仄从舒仄亳 磲舒 Yii2亳仄亠 亠亠仆亳 亳仗亳仆 亰舒亟舒 亰舒 舒仄从舒仄亳 磲舒 Yii2
亳仄亠 亠亠仆亳 亳仗亳仆 亰舒亟舒 亰舒 舒仄从舒仄亳 磲舒 Yii2
Paul Klimov
个仆从亳仂仆舒仍仆仂亠 仗仂亞舒仄仄亳仂于舒仆亳亠 - 仍亠从舒仆亟 仍亠从亠亠于
个仆从亳仂仆舒仍仆仂亠 仗仂亞舒仄仄亳仂于舒仆亳亠 - 仍亠从舒仆亟 仍亠从亠亠于个仆从亳仂仆舒仍仆仂亠 仗仂亞舒仄仄亳仂于舒仆亳亠 - 仍亠从舒仆亟 仍亠从亠亠于
个仆从亳仂仆舒仍仆仂亠 仗仂亞舒仄仄亳仂于舒仆亳亠 - 仍亠从舒仆亟 仍亠从亠亠于
Aleksander Alekseev
舒弍仂舒 于 Drupal 7
舒弍仂舒   于 Drupal 7舒弍仂舒   于 Drupal 7
舒弍仂舒 于 Drupal 7
Eugene Fidelin
Caching on highload Drupal site - Alexander Shumenko
Caching on highload Drupal site - Alexander ShumenkoCaching on highload Drupal site - Alexander Shumenko
Caching on highload Drupal site - Alexander Shumenko
DrupalCampDN
Yii2
Yii2Yii2
Yii2
Noveo
YiiConf: 亳亞舒亳亳 亳 亳仆舒仍仍亳亳
YiiConf: 亳亞舒亳亳 亳 亳仆舒仍仍亳亳YiiConf: 亳亞舒亳亳 亳 亳仆舒仍仍亳亳
YiiConf: 亳亞舒亳亳 亳 亳仆舒仍仍亳亳
Paul Klimov
Tequila - 磶从 亟仍 仗仂亟于亳仆仂亶 亞亠仆亠舒亳亳 JSON
Tequila - 磶从 亟仍 仗仂亟于亳仆仂亶 亞亠仆亠舒亳亳 JSONTequila - 磶从 亟仍 仗仂亟于亳仆仂亶 亞亠仆亠舒亳亳 JSON
Tequila - 磶从 亟仍 仗仂亟于亳仆仂亶 亞亠仆亠舒亳亳 JSON
Ivan Nemytchenko
CodeFest 2012. 从仂于 . 仂亠仄 仗亠亠亟 仆舒仗亳舒仆亳亠仄 从亠舒 于舒仄 仂亳 仗仂亞仂于仂亳 ...
CodeFest 2012. 从仂于 .  仂亠仄 仗亠亠亟 仆舒仗亳舒仆亳亠仄 从亠舒 于舒仄 仂亳 仗仂亞仂于仂亳 ...CodeFest 2012. 从仂于 .  仂亠仄 仗亠亠亟 仆舒仗亳舒仆亳亠仄 从亠舒 于舒仄 仂亳 仗仂亞仂于仂亳 ...
CodeFest 2012. 从仂于 . 仂亠仄 仗亠亠亟 仆舒仗亳舒仆亳亠仄 从亠舒 于舒仄 仂亳 仗仂亞仂于仂亳 ...
CodeFest
弍舒 舒亳亠从舒 Yii2
弍舒 舒亳亠从舒 Yii2弍舒 舒亳亠从舒 Yii2
弍舒 舒亳亠从舒 Yii2
Paul Klimov
DevHub 3 - Pricing
DevHub 3 - PricingDevHub 3 - Pricing
DevHub 3 - Pricing
Magento Dev
仂亟于亳仆仂亠 亳仗仂仍亰仂于舒仆亳亠 ActiveRecord 于 Yii2
仂亟于亳仆仂亠 亳仗仂仍亰仂于舒仆亳亠 ActiveRecord 于 Yii2仂亟于亳仆仂亠 亳仗仂仍亰仂于舒仆亳亠 ActiveRecord 于 Yii2
仂亟于亳仆仂亠 亳仗仂仍亰仂于舒仆亳亠 ActiveRecord 于 Yii2
Paul Klimov

Viewers also liked (6)

Magento Live Australia 2016: Request Flow
Magento Live Australia 2016: Request FlowMagento Live Australia 2016: Request Flow
Magento Live Australia 2016: Request Flow
Vrann Tulika
Mage Titans USA 2016 - Igor Melnykov - Staging and Preview
Mage Titans USA 2016 - Igor Melnykov - Staging and Preview Mage Titans USA 2016 - Igor Melnykov - Staging and Preview
Mage Titans USA 2016 - Igor Melnykov - Staging and Preview
Stacey Whitney
Magento Live Australia 2016 Facebook Chatbot for Magento
Magento Live Australia 2016 Facebook Chatbot for MagentoMagento Live Australia 2016 Facebook Chatbot for Magento
Magento Live Australia 2016 Facebook Chatbot for Magento
Vrann Tulika
Mage Titans USA 2016 Magento/Facebook/RabbitMQ
Mage Titans USA 2016 Magento/Facebook/RabbitMQMage Titans USA 2016 Magento/Facebook/RabbitMQ
Mage Titans USA 2016 Magento/Facebook/RabbitMQ
Vrann Tulika
Mage Titans USA 2016 M2 deployment
Mage Titans USA 2016  M2 deploymentMage Titans USA 2016  M2 deployment
Mage Titans USA 2016 M2 deployment
Olga Kopylova
Mage Titans USA 2016 - Miguel Balparda - Magento 2: Premium Performance with ...
Mage Titans USA 2016 - Miguel Balparda - Magento 2: Premium Performance with ...Mage Titans USA 2016 - Miguel Balparda - Magento 2: Premium Performance with ...
Mage Titans USA 2016 - Miguel Balparda - Magento 2: Premium Performance with ...
Stacey Whitney
Magento Live Australia 2016: Request Flow
Magento Live Australia 2016: Request FlowMagento Live Australia 2016: Request Flow
Magento Live Australia 2016: Request Flow
Vrann Tulika
Mage Titans USA 2016 - Igor Melnykov - Staging and Preview
Mage Titans USA 2016 - Igor Melnykov - Staging and Preview Mage Titans USA 2016 - Igor Melnykov - Staging and Preview
Mage Titans USA 2016 - Igor Melnykov - Staging and Preview
Stacey Whitney
Magento Live Australia 2016 Facebook Chatbot for Magento
Magento Live Australia 2016 Facebook Chatbot for MagentoMagento Live Australia 2016 Facebook Chatbot for Magento
Magento Live Australia 2016 Facebook Chatbot for Magento
Vrann Tulika
Mage Titans USA 2016 Magento/Facebook/RabbitMQ
Mage Titans USA 2016 Magento/Facebook/RabbitMQMage Titans USA 2016 Magento/Facebook/RabbitMQ
Mage Titans USA 2016 Magento/Facebook/RabbitMQ
Vrann Tulika
Mage Titans USA 2016 M2 deployment
Mage Titans USA 2016  M2 deploymentMage Titans USA 2016  M2 deployment
Mage Titans USA 2016 M2 deployment
Olga Kopylova
Mage Titans USA 2016 - Miguel Balparda - Magento 2: Premium Performance with ...
Mage Titans USA 2016 - Miguel Balparda - Magento 2: Premium Performance with ...Mage Titans USA 2016 - Miguel Balparda - Magento 2: Premium Performance with ...
Mage Titans USA 2016 - Miguel Balparda - Magento 2: Premium Performance with ...
Stacey Whitney

Similar to Enterprise Patterns in Magento (20)

Magento code debugging
Magento code debuggingMagento code debugging
Magento code debugging
aheadWorks
仄仗仂 亟舒仆仆 亠亶仄于仂从仂仄 Migrate. 仍舒亟亳仍舒于 仂亞舒亠于.
仄仗仂 亟舒仆仆  亠亶仄于仂从仂仄 Migrate. 仍舒亟亳仍舒于 仂亞舒亠于.仄仗仂 亟舒仆仆  亠亶仄于仂从仂仄 Migrate. 仍舒亟亳仍舒于 仂亞舒亠于.
仄仗仂 亟舒仆仆 亠亶仄于仂从仂仄 Migrate. 仍舒亟亳仍舒于 仂亞舒亠于.
DrupalCampDN
UWDC 2013, Yii2
UWDC 2013, Yii2UWDC 2013, Yii2
UWDC 2013, Yii2
Alexander Makarov
仂亳亰于仂亟亳亠仍仆仂 于 Django
仂亳亰于仂亟亳亠仍仆仂 于 Django仂亳亰于仂亟亳亠仍仆仂 于 Django
仂亳亰于仂亟亳亠仍仆仂 于 Django
MoscowDjango
MODX 3: 丼仂 仆仂于仂亞仂?
MODX 3: 丼仂 仆仂于仂亞仂?MODX 3: 丼仂 仆仂于仂亞仂?
MODX 3: 丼仂 仆仂于仂亞仂?
Ivan Klimchuk
DevConf 2012 - Yii, 亠亞仂 舒亰舒弍仂从舒 亳 Yii2
DevConf 2012 - Yii, 亠亞仂 舒亰舒弍仂从舒 亳 Yii2DevConf 2012 - Yii, 亠亞仂 舒亰舒弍仂从舒 亳 Yii2
DevConf 2012 - Yii, 亠亞仂 舒亰舒弍仂从舒 亳 Yii2
Alexander Makarov
ZFConf 2010: Zend Framework & MVC, Model Implementation (Part 1)
ZFConf 2010: Zend Framework & MVC, Model Implementation (Part 1)ZFConf 2010: Zend Framework & MVC, Model Implementation (Part 1)
ZFConf 2010: Zend Framework & MVC, Model Implementation (Part 1)
ZFConf Conference
仍舒亳仍亳仆仂于亶 从仂亟: 从舒从 仗亠亠舒 从仂亟亳 亳 仆舒舒 亢亳
仍舒亳仍亳仆仂于亶 从仂亟: 从舒从 仗亠亠舒 从仂亟亳 亳 仆舒舒 亢亳仍舒亳仍亳仆仂于亶 从仂亟: 从舒从 仗亠亠舒 从仂亟亳 亳 仆舒舒 亢亳
仍舒亳仍亳仆仂于亶 从仂亟: 从舒从 仗亠亠舒 从仂亟亳 亳 仆舒舒 亢亳
Moscow.pm
亳亠从舒 从仂仗仂舒亳于仆 亳亠仄
亳亠从舒 从仂仗仂舒亳于仆 亳亠仄亳亠从舒 从仂仗仂舒亳于仆 亳亠仄
亳亠从舒 从仂仗仂舒亳于仆 亳亠仄
Constantin Kichinsky
仂于舒 eCommerce 仗仍舒仂仄舒 D7: 亰舒从舒亰, 仂仍亟亳仆亞, 仗亠仂仆舒仍仆亶 舒亰亟亠仍
仂于舒 eCommerce 仗仍舒仂仄舒 D7:  亰舒从舒亰, 仂仍亟亳仆亞, 仗亠仂仆舒仍仆亶 舒亰亟亠仍仂于舒 eCommerce 仗仍舒仂仄舒 D7:  亰舒从舒亰, 仂仍亟亳仆亞, 仗亠仂仆舒仍仆亶 舒亰亟亠仍
仂于舒 eCommerce 仗仍舒仂仄舒 D7: 亰舒从舒亰, 仂仍亟亳仆亞, 仗亠仂仆舒仍仆亶 舒亰亟亠仍
1弌-亳亳从
Web 仂亠仆 2012 仍亠从亳 4
Web 仂亠仆 2012 仍亠从亳 4Web 仂亠仆 2012 仍亠从亳 4
Web 仂亠仆 2012 仍亠从亳 4
Technopark
WebCamp: Developer Day: Parse'亳仄 弍从亠仆亟 - 从亳仄 丱舒仍亳仍仂于
WebCamp: Developer Day: Parse'亳仄 弍从亠仆亟 - 从亳仄 丱舒仍亳仍仂于WebCamp: Developer Day: Parse'亳仄 弍从亠仆亟 - 从亳仄 丱舒仍亳仍仂于
WebCamp: Developer Day: Parse'亳仄 弍从亠仆亟 - 从亳仄 丱舒仍亳仍仂于
GeeksLab Odessa
仆亠亞舒亳 亊仆亟亠从 弌亠于亠
仆亠亞舒亳 亊仆亟亠从 弌亠于亠仆亠亞舒亳 亊仆亟亠从 弌亠于亠
仆亠亞舒亳 亊仆亟亠从 弌亠于亠
PVasili
MyBatis 仆舒 仗舒从亳从亠
MyBatis 仆舒 仗舒从亳从亠MyBatis 仆舒 仗舒从亳从亠
MyBatis 仆舒 仗舒从亳从亠
Vitebsk Miniq
Yii: 仄亳亞舒亳亳 亳 亳仆舒仍仍亳亳
Yii: 仄亳亞舒亳亳 亳 亳仆舒仍仍亳亳Yii: 仄亳亞舒亳亳 亳 亳仆舒仍仍亳亳
Yii: 仄亳亞舒亳亳 亳 亳仆舒仍仍亳亳
Paul Klimov
My batis
My batisMy batis
My batis
Vitali Kviatkouski
Survive with OOP
Survive with OOPSurvive with OOP
Survive with OOP
Maksym Hopei
DSLs 于 Perl
DSLs 于 PerlDSLs 于 Perl
DSLs 于 Perl
Ruslan Zakirov
Easy authcache 2 从亠亳仂于舒仆亳亠 亟仍 pro 仂亟亳仂仆仂于 亳亞仂
Easy authcache 2   从亠亳仂于舒仆亳亠 亟仍 pro 仂亟亳仂仆仂于 亳亞仂Easy authcache 2   从亠亳仂于舒仆亳亠 亟仍 pro 仂亟亳仂仆仂于 亳亞仂
Easy authcache 2 从亠亳仂于舒仆亳亠 亟仍 pro 仂亟亳仂仆仂于 亳亞仂
drupalconf
Magento code debugging
Magento code debuggingMagento code debugging
Magento code debugging
aheadWorks
仄仗仂 亟舒仆仆 亠亶仄于仂从仂仄 Migrate. 仍舒亟亳仍舒于 仂亞舒亠于.
仄仗仂 亟舒仆仆  亠亶仄于仂从仂仄 Migrate. 仍舒亟亳仍舒于 仂亞舒亠于.仄仗仂 亟舒仆仆  亠亶仄于仂从仂仄 Migrate. 仍舒亟亳仍舒于 仂亞舒亠于.
仄仗仂 亟舒仆仆 亠亶仄于仂从仂仄 Migrate. 仍舒亟亳仍舒于 仂亞舒亠于.
DrupalCampDN
仂亳亰于仂亟亳亠仍仆仂 于 Django
仂亳亰于仂亟亳亠仍仆仂 于 Django仂亳亰于仂亟亳亠仍仆仂 于 Django
仂亳亰于仂亟亳亠仍仆仂 于 Django
MoscowDjango
MODX 3: 丼仂 仆仂于仂亞仂?
MODX 3: 丼仂 仆仂于仂亞仂?MODX 3: 丼仂 仆仂于仂亞仂?
MODX 3: 丼仂 仆仂于仂亞仂?
Ivan Klimchuk
DevConf 2012 - Yii, 亠亞仂 舒亰舒弍仂从舒 亳 Yii2
DevConf 2012 - Yii, 亠亞仂 舒亰舒弍仂从舒 亳 Yii2DevConf 2012 - Yii, 亠亞仂 舒亰舒弍仂从舒 亳 Yii2
DevConf 2012 - Yii, 亠亞仂 舒亰舒弍仂从舒 亳 Yii2
Alexander Makarov
ZFConf 2010: Zend Framework & MVC, Model Implementation (Part 1)
ZFConf 2010: Zend Framework & MVC, Model Implementation (Part 1)ZFConf 2010: Zend Framework & MVC, Model Implementation (Part 1)
ZFConf 2010: Zend Framework & MVC, Model Implementation (Part 1)
ZFConf Conference
仍舒亳仍亳仆仂于亶 从仂亟: 从舒从 仗亠亠舒 从仂亟亳 亳 仆舒舒 亢亳
仍舒亳仍亳仆仂于亶 从仂亟: 从舒从 仗亠亠舒 从仂亟亳 亳 仆舒舒 亢亳仍舒亳仍亳仆仂于亶 从仂亟: 从舒从 仗亠亠舒 从仂亟亳 亳 仆舒舒 亢亳
仍舒亳仍亳仆仂于亶 从仂亟: 从舒从 仗亠亠舒 从仂亟亳 亳 仆舒舒 亢亳
Moscow.pm
亳亠从舒 从仂仗仂舒亳于仆 亳亠仄
亳亠从舒 从仂仗仂舒亳于仆 亳亠仄亳亠从舒 从仂仗仂舒亳于仆 亳亠仄
亳亠从舒 从仂仗仂舒亳于仆 亳亠仄
Constantin Kichinsky
仂于舒 eCommerce 仗仍舒仂仄舒 D7: 亰舒从舒亰, 仂仍亟亳仆亞, 仗亠仂仆舒仍仆亶 舒亰亟亠仍
仂于舒 eCommerce 仗仍舒仂仄舒 D7:  亰舒从舒亰, 仂仍亟亳仆亞, 仗亠仂仆舒仍仆亶 舒亰亟亠仍仂于舒 eCommerce 仗仍舒仂仄舒 D7:  亰舒从舒亰, 仂仍亟亳仆亞, 仗亠仂仆舒仍仆亶 舒亰亟亠仍
仂于舒 eCommerce 仗仍舒仂仄舒 D7: 亰舒从舒亰, 仂仍亟亳仆亞, 仗亠仂仆舒仍仆亶 舒亰亟亠仍
1弌-亳亳从
Web 仂亠仆 2012 仍亠从亳 4
Web 仂亠仆 2012 仍亠从亳 4Web 仂亠仆 2012 仍亠从亳 4
Web 仂亠仆 2012 仍亠从亳 4
Technopark
WebCamp: Developer Day: Parse'亳仄 弍从亠仆亟 - 从亳仄 丱舒仍亳仍仂于
WebCamp: Developer Day: Parse'亳仄 弍从亠仆亟 - 从亳仄 丱舒仍亳仍仂于WebCamp: Developer Day: Parse'亳仄 弍从亠仆亟 - 从亳仄 丱舒仍亳仍仂于
WebCamp: Developer Day: Parse'亳仄 弍从亠仆亟 - 从亳仄 丱舒仍亳仍仂于
GeeksLab Odessa
仆亠亞舒亳 亊仆亟亠从 弌亠于亠
仆亠亞舒亳 亊仆亟亠从 弌亠于亠仆亠亞舒亳 亊仆亟亠从 弌亠于亠
仆亠亞舒亳 亊仆亟亠从 弌亠于亠
PVasili
MyBatis 仆舒 仗舒从亳从亠
MyBatis 仆舒 仗舒从亳从亠MyBatis 仆舒 仗舒从亳从亠
MyBatis 仆舒 仗舒从亳从亠
Vitebsk Miniq
Yii: 仄亳亞舒亳亳 亳 亳仆舒仍仍亳亳
Yii: 仄亳亞舒亳亳 亳 亳仆舒仍仍亳亳Yii: 仄亳亞舒亳亳 亳 亳仆舒仍仍亳亳
Yii: 仄亳亞舒亳亳 亳 亳仆舒仍仍亳亳
Paul Klimov
Survive with OOP
Survive with OOPSurvive with OOP
Survive with OOP
Maksym Hopei
Easy authcache 2 从亠亳仂于舒仆亳亠 亟仍 pro 仂亟亳仂仆仂于 亳亞仂
Easy authcache 2   从亠亳仂于舒仆亳亠 亟仍 pro 仂亟亳仂仆仂于 亳亞仂Easy authcache 2   从亠亳仂于舒仆亳亠 亟仍 pro 仂亟亳仂仆仂于 亳亞仂
Easy authcache 2 从亠亳仂于舒仆亳亠 亟仍 pro 仂亟亳仂仆仂于 亳亞仂
drupalconf

Enterprise Patterns in Magento

  • 1. 丐仍亳从舒 于亞亠仆亳亶 Magento Developer Professional Services Team evgeniy.tulika@magento.com 丿舒弍仍仂仆 从仂仗仂舒亳于仆 仗亳仍仂亢亠仆亳亶 于 Magento
  • 2. 丿舒弍仍仂仆. 仂亠仄 仂 仆亳 亞仂于仂? Craig 丿舒弍仍仂仆 仆亠 仂亟亠亢舒 B Larman 仆仂于 亳亟亠亶 C 丿舒弍仍仂仆 亳仄亠ム 亳仄亠仆舒 丿舒弍仍仂仆 仂弍仍亠亞舒ム D 仂弍亠仆亳亠
  • 3. Transaction Script Identity Map Domain Model Lazy Load Data Mapper Domain Logic Table Data Gateway Object-Relational Active Record Behavior Data Source Architecture
  • 4. 亠亟舒于仍亠仆亳亠 弍亳亰仆亠-仍仂亞亳从亳 仂仂亶 仗: 亟亠从仂仄仗仂亰亳亳 仗仂 亟亠亶于亳礆 AccountActions + Login + Register + Logout + ShowAccount CheckoutActions + addToCart + showCheckout + submitCheckout
  • 5. Transaction Script 舒亢亟舒 仂仗亠舒亳 亠舒仍亳亰仂于舒仆舒 于仂亳仄 仄亠仂亟仂仄 public function addToCart() { //retrieve user data from session //retrieve product from database //add product information to quote // // //save quote data to database }
  • 6. Domain Model 弍亠从舒仄亳 仗亠亟舒于仍亠仆 亠舒仍仆亠 仆仂亳 Business Logic Layer Category Product Order Quote Payment Cart Customer_Address Customer
  • 7. 舒仍仂亠仆亳亠. 从舒从 于 Magento? Sales Service Layer |--Block |--controllers Domain Models |--etc |--Helper Data Mappers |--Model | |--Mysql4 Data Access Objects | |-- Billing | |-- Entity | |-- Payment | |-- Order.php | |-- Quote.php
  • 8. Mapping Objects to Data Source
  • 9. Data Mapper /*亠于仍磳 仗亠亠亟舒 亟舒仆仆 仄亠亢亟 仂弍亠从舒仄亳 亳 弍舒亰仂亶 亟舒仆仆, 仂舒仆 亳 仆亠亰舒于亳亳仄仄亳 亟亞 仂 亟亞舒 亳 仂 舒仄仂亞仂 仄舒仗仗亠舒*/
  • 10. Zend Way <?php class App_Model_UserDataMapper { public function save(App_Model_User $user) { Matthew $dao = $this->getDao(); Weier $id = $user->getId(); OPhinney if (!$id) { $id = $dao->insert($user->toArray()); } else { $dao->update($user->toArray(), array(id=?, $id)); } $record = $dao->find($id)->current(); $user->setOptions($record->toArray()); return $user; }
  • 11. 亠仆亠仄 从 Magento 亠-仄仂亟亠仍亳 Sales |--Block |--controllers <global> <models> |--etc <sales> |--Helper <class>Mage_Sales_Model</class> <resourceModel>sales_mysql4</resourceModel> |--Model </sales> | |--Mysql4 <sales_mysql4> <class>Mage_Sales_Model_Mysql4</class> | | |--Order.php <sales_mysql4> | | |--Quote.php <sales> <models> | |-- Billing <!-- ... --> | |-- Entity </global> | |-- Payment | |-- Order.php | |-- Quote.php Mage::getResourceModel('sales/order'); ->load($order, $id, $field);
  • 12. public function load(Mage_Core_Model_Abstract $object, $value, $field=null) { if (is_null($field)) { $field = $this->getIdFieldName(); Mage_Core_Model_Mysql4_Abstract } $read = $this->_getReadAdapter(); if ($read && !is_null($value)) { $select = $this->_getLoadSelect($field, $value, $object); $data = $read->fetchRow($select); if ($data) { $object->setData($data); } } $this->_afterLoad($object); return $this; }
  • 13. 弌从舒 亠-仄仂亟亠仍亳 Mage_Core_Model_Resource_Abstract #_getWriteAdapter() #_getWriteAdapter() #_getReadAdapter() #_getReadAdapter() + beginTrasnsaction() + beginTrasnsaction() Mage_Core_Model_Mysql4_Abstract Mage_Core_Model_Mysql4_Abstract + getMainTable() + getMainTable() + load() + save() + save() + delete() + delete() #_prepareDataForTable() #_prepareDataForTable()
  • 14. 仍亳亳 仂 从仍舒亳从亳 仂仄亠仆仆亠 仄仂亟亠仍亳 亰仆舒ム 仂 于仂亳 亠- 仄仂亟亠仍 Mage_Sales_Model_Order public function getProductIds() { $ids = $this->getData('product_ids'); if (is_null($ids)) { $ids = $this->_getResource()->getProductIds($this); $this->setProductIds($ids); } return $ids; }
  • 15. Lazy and Eager Loading 亠 亟舒仆仆亠 亠 仗仂亟 从仂亶 仂亢亠 亰舒亞亰亳 仂亢亠 仗仂亠弍仂于舒 亳亰仍亳仆亠 仄仆仂亞仂 亟舒仆仆 仍亳从仂仄 仄仆仂亞仂 仂弍舒亠仆亳亶 从 弍舒亰亠 亠 亟舒仆仆亠 亠 仗仂亟 从仂亶
  • 16. Lazy Loading in Magento public function getAddressesCollection() Mage_Sales_Model_Order { if (is_null($this->_addresses)) { $this->_addresses = Mage::getResourceModel('sales/order_address_collection') ->setOrderFilter($this); if ($this->getId()) { foreach ($this->_addresses as $address) { $address->setOrder($this); } } } return $this->_addresses; }
  • 17. 仍亠仆舒亳于. Table Data Gateway Name City Telephone Age Insurance Eugene Kyiv +3804456 21 32453453 Igor New York +45066 Model_DbTable 23452345 _Person +find() +findWithName() Model_Person +update() +insert() +getName() +delete() +getAddress() +sendEmail() +addFriend() +getFRiendSuggestions()
  • 18. 仍亠仆舒亳于. Active Record Name City Telephone Age Insurance Eugene Kyiv +3804456 21 32453453 Igor New York +45066 Model_Person 23452345 +getName() +getAddress() +sendEmail() +addFriend() +getFriendSuggestions() +find() +findWithName() +update() +insert() +delete()
  • 19. 仂仍仍亠从亳亳. Identity Map getElement(green) Identity Map find() empty load() Identity Map return( )
  • 20. Magento Collections 亠-从仂仍仍亠从亳亳 Sales |--Model | |--Mysql4 | | |-- Collection | | | | -- Abstract.php Mage::getResourceModel('sales/order_collection') | | | -- Report ->addFieldToSelect(*) | | | | -- Collection.php ->setOrder(created_at, desc'); | | |--Order.php | | |--Quote.php | |-- Billing | |-- Entity $children = $this->getResourceCollection() | |-- Payment ->setOrderFilter($orderFilter) | |-- Order.php ->addPaymentIdFilter($paymentId) | |-- Quote.php ->addParentIdFilter($this->getId());
  • 21. 弌从舒 从仂仍仍亠从亳亳 Varien_Data_Collection Countable +getItemsByColumnValue() +addItem() IteratorAggregate +walk() Mage_Core_Model_Mysql4 Varien_Data_Collection_Db _Collection_Abstract +isLoaded() +addFiedToSelect() +load() +setModel() #_loadCache() +setResourceModel() #_saveCache() +save()

Editor's Notes

  • #2: 仂从仂仗. 仂 亰仆舒从仂仄 个舒仍亠仂仄 亰仆舒亠 仗仂 Magento 丱仂 舒从舒亰舒 仗仂 Magento 仂亠仄 仆舒舒仍 舒弍仍仂仆仂于? 仂亠 仆舒舒 舒仆仂于从亳 亳 仗亳仄亠仂于?
  • #3: 舒亠仆 于仆仂 于 舒从舒亰 仂 舒亳亠从亠 从 仂亰于仂仍ム 于亳亟亠 从舒亳仆 于 亠仍仂仄 亠亞 舒仄舒仆 仂仄仍亳仂于舒仍 舒亠仆 从仂仆亠仆亳仂于舒仆仆亶 仂仗 仄亠仆舒 仂弍 弍亠亠 仂弍舒 亠亞亠 仂弍舒 仗仂仂仄 仂 仂弍舒 亠仄亳仆仂仍仂亞亳 仂亞亟舒 于亳亟仆仂 仂弍亠亠 仍亠亞亠 仆舒亶亳 仂仍亳亳 仂亶 亟仂从仍舒亟 于于仂亟 于 亠仄亳仆仂仍仂亞亳 Magento
  • #4: 舒亠仆仂于 仂从仂仍仂 50 弍舒仍 于磶 弍舒亰仂亶 亟舒仆仆 舒仆 仍仂亞亳从亳 仗亠亟仄亠仆仂亶 仂弍仍舒亳 舒亠仄 亳亠从舒 亳仂仆亳从舒 亟舒仆仆 舒亠仄 仂弍亠从仆仂-亠仍亳仂仆仆仂亠 仗仂于亠亟亠仆亳亠
  • #5: 舒从舒亰 仂 于磶亳 亠亳仍 仆舒舒 仂亞仂 仂从亟舒 弍亠 仂弍亠从 仆舒弍仂 亠弍仂于舒仆亳亶 亳 亟亠仍舒亠仄 亟亠从仂仄仗仂亰亳亳 C 舒仄亶 仗仂仂亶 仗仂仂弍 舒亰弍亳 仗仂 亟亠亶于亳礆 亳亠仄 仂仆 舒仄亶 仂亠于亳亟仆亶
  • #6: 弌亠仆舒亳亶 舒仆亰舒从亳亳 仗仂亠亟舒 舒仆仆亠 仗亳仆亳仄舒亠 仂 仗亠亟舒于仍亠仆亳 舒仆仆亠 仂弍舒弍舒于舒亠, 仂舒仆磳, 仗仂于亠磳, 舒从亳于亳亰亳亠 亟亞亳亠 亳亠仄 舒亢亟仂亠 亟亠亶于亳亠 亠舒仍亳亰仂于舒仆仂 亠仆舒亳亠仄 仂亰于舒舒亠 亟舒仆仆亠 仍仂 仗亠亟舒于仍亠仆亳 亠从仂仍从仂 亠仆舒亳亠于 于 从仍舒 仗舒亠仆 Command 亟亳仆 亠仆舒亳亶 仗亠亟舒于仍亠仆 从仍舒仂仄 仂仂亳仆于仂 仗仂仂舒. 亠亞从仂 于仂仗亳仆亳仄舒亠 仆仂于仆舒 仗仂弍仍亠仄舒 亟弍仍亳仂于舒仆亳亠 舒亞仄亠仆仂于 从仂亟舒 仂仂亶 仗 亟仍 仍仂亢仆仂亶 仍仂亞亳从亳 亳仍仂亢亠仆亳亠 舒亠 亠仆舒亳亳 仗仂 仆舒 亠舒从仂亳仆亞 亠亰仍舒亠 亠舒从仂亳仆亞舒 仗亳仂亟亳仄 从 Domain Model
  • #7: 弌亠 于亰舒亳仄仂于磶舒仆仆 仂弍亠从仂于 从舒亢亟亶 仗亠亟舒于仍磳 仆仂 亟仆亳 亳仄亳亳ム 亟舒仆仆亠 仂弍仍舒亳, 亟亞亳亠 仂仄舒仍亳亰亳ム 仗舒于亳仍舒. 舒仗亳仄亠 舒 仂亟亠舒 亠舒仍亳亰舒亳 仗仂仗仂仍仆亠仆亳亠 仗亳仍仂亢亠仆亳 仍仂亠仄 仂弍亠从仂于 个仆从亳亳 亠仆仂 仂亳舒ム 亟舒仆仆仄亳 仆舒 从仂仂 仂仆亳 仂仗亠亳ム 仂舒 仄仂亟亠仍 于仂 仄仆仂亞仂仄 仗仂仂亟亳 仆舒 亠仄 弍舒亰 亟舒仆仆 弌仍仂亢仆舒 亰仆舒亳亠仍仆仂 仂仍亳舒亠 亳 仂亟亠亢亳 亳亠舒亳亳 仆舒仍亠亟仂于舒仆亳, 亠 仍仂亢仆 于亰舒亳仄仂于磶舒仆仆 仂弍亠从仂于.
  • #8: 亳 亳仗仂仍亰仂于舒仆亳亳 domain model 弍亳亰仆亠-仍仂亞亳从舒 从仂仆亠仆亳亠 于 仂亟仆仂仄 从仂仗亠 从仍舒仂于 舒亟亢亠仆仂 仄仂亟仍仆舒 从舒亢亟亶 仄仂亟仍 亳仄亠亠 仍仂亶 亟仂仄亠仆仆 仂弍亠从仂于 仄仂亟亠仍亳 舒亰仆 仄仂亟仍亠亶 仄仂亞 于磶于舒 仄亢亟 仂弍仂亶 Service Layer 于亠从舒 于磻仂亞仂 仗亳仍仂亢亠仆亳, 仆亠仗仂亠亟于亠仆仆仂亠 亠亞仂 API 舒仍亠亠 仗仂亟仂弍仆亠亠 舒从舒亢 仂 仍仂亠 于磶亳 亟舒仆仆仄亳
  • #9: 弍亠从 亟仂仄亠仆仆仂亶 仍仂亞亳从亳 亳仄亠ム 于仂亠 仂仂礌亳亠 舒仆仂 亳仍亳 仗仂亰亟仆仂 亟舒仆仆亠 仆亢仆仂 亰舒亞亰亳 亳仍亳 于亞亰亳 亳亰 仂仗亠舒亳于仆仂亶 仗舒仄亳 弌亠亟于舒 仂弍亠仗亠亳于舒ム亳亠 Persistence 亠 于亠仄 仗仂舒仍亳于亳仍仂 舒弍仂舒 仂弍亠从仆仂-仂亳亠仆亳仂于舒仆仆仄亳 弍舒亰舒仄亳 亟舒仆仆 亠仂亟仆仂亰仆舒仆仂亠 仂仂于亠于亳亠 仄亠亢亟 从仂亶 仂弍亠从舒 亳 从仂亶 弍舒亰 亟舒仆仆 仂弍仍亠仄舒 仂仂弍舒亢亠仆亳 仂弍亠从舒 于 仗仍仂从 舒弍仍亳仆 从 仂仄 仆舒亰仆舒亳 仂于亠于亠仆仆仂 亰舒 仗亳于磶从 亟舒仆仆 仂弍亠从舒 从 亟舒仆仆仄 舒弍仍亳 弌丕 亠 仄仂亢亠仄 亟亠仍舒 仂亞仂 于 亟仂仄亠仆仆仂亶 仄仂亟亠仍亳 亟亳仆 于舒亳舒仆 于仆亠亳 仗亳于磶从 于 仂亟亠仍仆亠 从仍舒
  • #10: = 舒舒 舒仗仗亠 仂弍亠从 于亰于舒亠仄亶 从仍亳亠仆仂仄 = 亠亠 亟舒仆仆亠 亳亰 弍舒亰 亳 仗仂仄亠舒亠 于 仂弍亠从 = 仍亳 仂弍亠从 亰仆舒亠 仂 从亠 弍舒亰 仂 亳亰仄亠仆亠仆亳亠 于 仂亟仆仂仄 仗亳于仂亟亳 从 仆亠仂弍仂亟亳仄仂亳 于 亳亰仄亠仆亠仆亳亳 于 亟亞仂仄 = 舒舒 舒仗仗亠 仍仂亶 仂亟亠仍ム亳亶 仂弍亠从 仂 弍舒亰 亟舒仆仆 = 丐亠仗亠 仂弍亠从 仄仂亞 仆亠 仗仂亟仂亰亠于舒 仂 亠于仂于舒仆亳亳 弍舒亰 亟舒仆仆 = 亠仂弍舒亰仂于舒亠仍 仗仂仍仆仂 从 仂 仂于仆 亟仂仄亠仆舒
  • #11: = 亳仄亠 = 亳 仆亠仂弍仂亟亳仄仂亳 于亠 仍仂亶 亟舒舒 仄舒仗仗亠仂于 仄仂亢亠 弍 亰舒仄亠仆亠仆 = 亠仂弍舒亰仂于舒亠仍亳 亟仂仍亢仆 仗舒于仍 从舒从 仗仂仄亳 亰舒亟舒舒仄亳 仗仂仍亠-亠亶从舒, 舒从 亳 仂 仍仂亢仆仄亳 仆舒仍亠亟仂于舒仆亳亠仄, 于亰舒亳仄仂亟亠亶于亳亠仄 舒亰仆 仂弍亠从仂于 = 舒仗仗亠 仄仂亢亠 仆舒 仂亟亳仆 亰舒仗仂 从 弍舒亰亠 亟舒仆仆 亰舒仗仂仍仆亳 仆亠从仂仍从仂 仂弍亠从仂于 亟舒仆仆仄亳 = 弍仆仂 仂亟亳仆 仄舒仗仗亠 亟仍 从舒亢亟仂亶 亟仂仄亠仆仆仂亶 仄仂亟亠仍亳 = 亳 亳仗仂仍亰仂于舒仆亳亳 Metadata Mapping 仄仂亢亠 弍 仂亟亳仆 从仍舒 = 舒仗仗亠 亟仂仍亢亠仆 亳仄亠 亟仂仗 从 仗仂仍礆 仂弍亠从舒
  • #12: - 丕 Magento - 亠-仄仂亟亠仍亳 - 舒亢亟亶 仄仂亟仍 亳仄亠亠 于仂亶 仆舒弍仂 亠 仄仂亟亠仍亠亶 - 仂 仂仂亠仄 从舒亢亟仂亶 仄仂亟亠仍亳 亠 于仂 亠 仄仂亟亠仍 - 亠亞亳亳亠 于 从仂仆亳亞舒 - 丼仂弍 于亰于舒 仆亢仆仂 于仂仗仂仍亰仂于舒 舒亳亠从亳仄 仄亠仂亟仂仄 从仍舒舒 Mage
  • #13: - 舒亢亟亶 亠 亠从亠仆亟亳 仂 舒弍舒从仆仂亶 仄仂亟亠仍亳 - 舒从 于亳亟亳仄 仄亠仂亟 仍仂舒亟 仗亳仆亳仄舒亠 仆舒 于仂亟 仂弍亠从, 从仂仂亶 仂仆 弍亟亠 亰舒仗仂仍仆 亟舒仆仆仄亳 - Select 仂仄亳亠 舒仆亠亠 - Read Adapter - 仂 舒亟舒仗亠 弍舒亰 亟舒仆仆, 于 仆舒亠仄 仍舒亠 亳亞舒亠 仂仍 Data Access Object - a - 仆亳亠亞仂 仆亠 仄亠舒亠 仆舒仗亳舒 仗仂仍仆仂 于仂亶 从仍舒 亠-仂弍亠从舒 弍亠亰 舒弍舒从舒
  • #14: - C 从舒 舒仆亟舒仆仂亶 MySQL 亠-仄仂亟亠仍亳 - O 弍仆仂 亠-仄仂亟亠仍亳 亠从亠仆亟 仂 舒弍舒从仆仂亶 - 舒亠仆 - 亠亠 弍仂仍亠亠 舒弍舒从仆亠 仂仗亠舒亳亳 仗仂 仄舒仆亳仗仍亳仂于舒仆亳 舒仆亰舒从亳礆亳 亳 亟仂仗舒 从 舒亟舒仗亠
  • #15: - 仆仂于仆仂亠 仂仍亳亳亠 仂 从仍舒亳亠从仂亞仂 舒弍仍仂仆舒 亟舒舒 仄舒仗仗亠 - 仂 仂 亟仂仄亠仆仆舒 仄仂亟亠仍 亰仆舒亠 仂 于仂亠亶 亠 仄仂亟亠仍亳 - 丕 舒弍舒从仆仂亶 亟仂仄亠仆仆仂亶 仄仂亟亠仍亳 亠 仄亠仂亟 getResource - 丼仂弍 仂弍仆亳 亰舒亠仄 仂 亟亠仍舒仆仂 仗亠于舒 舒仄仂亳仄 仍亠亟ム亳亶 仗舒亠仆
  • #16: - 亳 亳仗仂仍亰仂于舒仆亳亳 亟仂仄亠仆仆仂亶 仄仂亟亠仍亳 仆亠 仂亟仆仂亰仆舒仆仂亞仂 仂仂于亠于亳 仄亠亢亟 舒弍仍亳亠亶 亳 仂弍亠从仂仄 - 亠 于亠 仗仂仍 仄仂亞 弍 亰舒仗仂仍仆亠仆 仂亟仆亳仄 亰舒仗仂仂仄 - 弍亠从 亳仄亠亠 仄仆仂亢亠于仂 仍仂从 仆舒于磶舒仆仆亠 仂弍亠从 - 亳 舒弍仂亠 仂弍亠从仂仄 仂亢亳亟舒亠仄 仂 仂仆 亢亠 亰舒仗仂仍仆亠仆 亟舒仆仆仄亳 亳 于磶舒仆仆亠 仂弍亠从 仂亢亠 - 舒亰仆亠 仗亳 从舒从 亰舒亞亢舒 亟仂仗仂仍仆亳亠仍仆亠 亟舒仆仆亠. - 弌舒仄亶 仂亠于亳亟仆亶 - 于亠 亟舒仆仆亠 仗舒 亰舒亞亰亳 仗亳 亰舒亞亰从亠 仂弍亠从舒 - 亅仆亠亞亳仆舒 亰舒亞亰从舒 - 仄仂亟亠仍亳 仗仂磦仍ム 亳仆亳亳舒亳于 - 亠亟仂舒从亳 - 亟舒仆仆 仄仂亢亠 弍 亰舒亞亢亠仆仂 仍亳从仂仄 仄仆仂亞仂 - 亞仂亶 于舒亳舒仆 - 仗亳 亰舒亞亰从亠 亠从亠亞仂 仂弍亠从舒 仂于亠仄 仆亠 亟仂舒于舒 于磶舒仆仆亠 - 亠仂弍仂亟亳仄亠 亟舒仆仆亠 亰舒亞亢舒ム 于 仄仂仄亠仆 仗亠于仂亞仂 亟仂仗舒 从 仆亳仄 - 亠仆亳于舒 - 仗仂从舒 仆亠 仗仆亠 仆亠 仗仂仍亠亳
  • #17: - 亠 仄仂亟亠仍 从舒从 仗舒于亳仍仂 仆亠 亰舒亞亢舒亠 仆亳从舒从亳 亟舒仆仆 从仂仄亠 亠 从舒从亳亠 亰舒仗仂亳仍亳 于 select-e 仗亳 亳仆亳亳舒仍亳亰舒亳亳 - 仍亳 亠弍亠 亰舒亞亰亳 于磶舒仆仆亠 亟舒仆仆亠 - 于亰于舒ム 仄亠仂亟 亠-仄仂亟亠仍亳 - 亠-仄仂亟亠仍 仗仂-仗亠亢仆亠仄 仗亠亠亟舒亠 从亰亠仄仗仍 仂弍亠从舒
  • #18: = Table_Data_Gateway 舒弍仍仂仆 亟仍 仆亠仄仆仂亞仂 弍仂仍亠亠 仗仂 亳舒亳亶 仆亠亢亠仍亳 舒舒 舒仗仗亠. = 仍亠仆舒亳于舒 - 仗仂仂仄 仂 仂 于亰舒亳仄仂亳从仍ム舒ム亳亠 舒弍仍仂仆. = Magento 仆亠 亳仗仂仍亰亠 = 仆 从舒从 亳 舒舒 舒仗仗亠 于仆亠仆亳亠 从仍舒 仗仂 仂仆仂亠仆亳 从 亟仂仄亠仆仆仂亶 仄仂亟亠仍亳. = 仆仂于仆舒 舒亰仆亳舒 于 仂仄, 仂 仂仆 仆亳亠亞仂 仆亠 亰仆舒亠 仗仂 仄仂亟亠仍 亠亞仂 亳仗仂仍亰ム = 仂亟亠仍 舒仄舒 仂弍舒舒亠 从 仍ミ継 亳 仗仂亳 亟仂舒 亟舒仆仆亠 亳亰 舒弍仍亳 = 丿仍ミ 从舒从 仗舒于亳仍仂 仆亠 亳仄亠亠 仂仂礌亳亶 仗仂从仂仍从 仍亳 仗亠亠亟舒亠 亟舒仆仆亠 亳亰 舒弍仍亳 于 仄仂亟亠仍 = 舒从 仗舒于亳仍仂 仂亟亳仆 仍ミ 舒弍仂舒亠 仂亟仆仂亶 舒弍仍亳亠亶 亳仍亳 亞仍舒于仆仂亶 舒弍仍亳亠亶 亳 仆亠从仂仍从亳仄亳 于磶舒仆仆仄亳. 仍 从舒亢亟仂亶 舒弍仍亳 仂亰亟舒亠 于仂亶 仍ミ = 从仍ム舒亠 仄亠仂亟 仗仂亳从舒, 仂弍仆仂于仍亠仆亳 亳 于舒于从亳 亟舒仆仆 亳 仗仂仂 于亰于舒亠 仂仂于亠于ム亳亠 从仂仄仄舒仆亟 SQL 亠舒仍亳亰亠 舒从 亠弍亠 于亳舒仍仆 舒弍仍亳 = Zend_Db_Table
  • #19: = 弍仂仍仂从舒 亟仍 仂从亳 舒弍仍亳. = 仂弍舒于仍磳 从 亟舒仆仆仄 仍仂亞亳从 亟仂仄亠仆舒 = 弍亠从 仂于舒于舒亠 亳 亟舒仆仆亠 亳 亳 仗仂于亠亟亠仆亳亠 = 仂仆仂于亠 仍亠亢亳 舒弍仍仂仆 Domain Model , = 仍舒 从仂仂仂亞仂 仗仂于仂ム 从 亰舒仗亳亠亶 亳仗仂仍亰亠仄仂亶 舒亰 亟舒仆仆. = 弌从舒 亟舒仆仆 亟仂仍亢仆舒 仂仆仂 仂仂于亠于仂于舒 仂亶 仂 于 舒弍仍亳亠 = 丐亠仆舒 亰舒于亳亳仄仂 仂 从 弍舒亰 亟舒仆仆 仂 仍仂亢仆磳 亳亰仄亠仆亠仆亳亠 仂亶 从 = Joomla
  • #20: = 舒舒仆亳亠 仂 从舒亢亟亶 仂弍亠从 弍亟亠 亰舒亞亢亠仆 亳亰 弍舒亰 亟舒仆仆 仂仍从仂 仂亟亳仆 舒亰 = 丱舒仆亳 亟舒仆仆亠 仂弍仂 于亠 仂弍亠从舒 亰舒亞亢亠仆仆 亳亰 于 仗亠亟亠仍舒 舒仆亰舒从亳亳 = 舒从 仂仍从仂 于仂亰仆亳从舒亠 仆亠仂弍仂亟亳仄仂 于 亟舒仆仆 仍亠亟亠 仗亠于舒 仂弍舒亳 从 从仂仍仍亠从亳亳 仂弍 弍亠亟亳 仂 亳 舒仄 亠亠 仆亠 = 仍舒亠 仗仂仂亶 亠仄 亟仍 从舒亢亟仂亶 舒弍仍亳 于仂 从仂仍仍亠从亳 = 仂仍亳亠于仂 从仂仍仍亠从亳亶 亠从仂仄亠仆亟亠 仗亳于磶舒 从 仂弍亠从舒仄 舒 仆亠 从 舒弍仍亳舒仄 - 仂亞亟舒 仂弍亠从 仆亠 亰仆舒ム 亟亠舒仍亠亶 仂仂弍舒亢亠仆亳 仆舒 弍舒亰 = 亠仍仂亢仆仂 亳 亟仂弍仆仂 仗亳于磶舒 从仂仍仍亠从亳亳 从 Data Mapper = 仂仍仍亠从亳 仄仂亢亠 亳仗仂仍亰仂于舒 于 从舒亠于亠 从舒 亰舒仗亳亠亶 亳于舒亠仄 亳亰 弍舒亰 亟舒仆仆
  • #21: - Magento 从仂仍仍亠从亳亳 磲仂仄 亠 仄仂亟亠仍礆亳 - 弌 仂从亳 亰亠仆亳 仂仆亳 仆亳亠仄 仆亠 仂仍亳舒ム - 亠亢舒 于 亟亳亠从仂亳亳 磲仂仄 亠-仄仂亟亠仍礆亳, 仆仂 仆舒亰于舒ム 从仂仍仍亠从亳礆亳 - 仂仍仍亠从亳 仗亠亟仂舒于仍磳 亳仆亠亠亶 亟仍 从仂仆仂仍亠仄 亰舒亞亰从亳, 舒 舒从 亢亠 仄舒仆亳仗仍亳仂于舒仆亳 亢亠 亰舒亞亢亠仆仆仄亳 亟舒仆仆仄亳.
  • #22: 仆亠亠亶 Countsble 亳 Iterator 弌舒仄舒 舒弍舒从仆舒 仄仂亟亠仍 - 仗亠亟仂舒于仍磳 弍舒亰仂于 仆从亳仂仆舒仍仆仂 仂舒 仍亠仄亠仆, 亟仂弍舒于亳, 仗仂亶亳 仗仂 于亠仄 仍亠仄亠仆舒仄 DB-从仂仍仍亠从亳 - 仗仂亰于仂仍磳 仗仂于亠亳 亰舒亞亢亠仆舒 仍亳 仂仆舒, 仗仂于亠亳 亰舒亞亰从 丐舒从 亢亠 从仂仍仍亠从亳亳 仗亠亟仂舒于仍ム 亠亟于舒 从亠亳仂于舒仆亳 - 亟舒仆仆亠 亠亳舒仍亳亰ム 亳 亰舒仗亳于舒ム 于 舒亶仍仂于亶 从亠 仂仍仍亠从亳 仂 从仂仂仂亶 仆舒仍亠亟ム 仂舒仍仆亠 从仂仍仍亠从亳亳 仆亠亠亶 亟仍 亟仂弍舒于仍亠仆亳 仄仂亟亠仍亳 亳 亠-仄仂亟亠仍亳, 仂舒仆亠仆亳亠, 仄舒仆亳仗仍亳仂于舒仆亳亠 仂弍亠从仂仄 select