In Teil 4 – Model sind die darzustellenden Daten und die Geschäftslogik enthalten.

1. Datenstruktur anpassen

app/
   etc/
      modules/
        - Mxperts_All.xml (Oder Ihre Firmenname IhreFirme_All.xml)
   code/
      local/
         Mxperts/ (Oder Ihre Firmenname IhreFirme_All.xml)
            Tutorial/ (Bezeichnung Ihrer Erweiterung)
               Block/
                 - Index.php
               controllers/
                 - AdminController.php
                 - IndexController.php
               etc/
                 - config.xml
               Helper/
                 - Data.php
               Model/
                 - Tutorial.php
                 Mysql4/
                   - Tutorial.php
                   Tutorial/
                     - Collection.php
               sql/
                 tutorial_setup/
                    - mysql4-install-0.2.0.php
                    - mysql4-upgrade-0.1.0-0.2.0.php

Erklärung:
Model/Tutorial.php beinhaltet die Geschäftslogik.
Model/Mysql4/Tutorial.php ist die Datenimplementierung mit der Vwerbindung zur Datenbank und dem Primary Key.
Model/MySql4/Tutorial/Collection.php stellt die Daten wie in einem Recordset bereit.

2. Anpassungen der config.xml

<?xml version="1.0"?>
<config>

    <modules>
        <Mxperts_Tutorial>
            <version>0.2.0</version>
        </Mxperts_Tutorial>
    </modules>

    <global>

        <models>
            <tutorial>
                <class>Mxperts_Tutorial_Model</class>
                <resourceModel>tutorial_mysql4</resourceModel>
            </tutorial>
            <tutorial_mysql4>
                <class>Mxperts_Tutorial_Model_Mysql4</class>
                <entities>
                    <tutorial>
                        <table>tutorial</table>
                    </tutorial>
                </entities>
            </tutorial_mysql4>
        </models>

         <helpers>
            <tutorial><class>Mxperts_Tutorial_Helper</class></tutorial>
        </helpers>
        <blocks>
            <tutorial>
                <class>Mxperts_Tutorial_Block</class>
            </tutorial>
        </blocks>
        <resources>
            <tutorial_setup>
                <setup>
                    <module>Mxperts_tutorial</module>
                </setup>
                <connection>
                    <use>core_setup</use>
                </connection>
            </tutorial_setup>
            <tutorial_write>
                <connection>
                    <use>core_write</use>
                </connection>
            </tutorial_write>
            <tutorial_read>
                <connection>
                    <use>core_read</use>
                </connection>
            </tutorial_read>
        </resources>

    </global>

    <adminhtml>
        <menu>
            <tutorial translate="title" module="tutorial">
                <title>Tutorial</title>
                <sort_order>100</sort_order>
                <action>tutorial/admin</action>
            </tutorial>
        </menu>
    </adminhtml>

    <frontend>
        <routers>
            <Mxperts_Tutorial>
                <use>standard</use>
                <args>
                    <module>Mxperts_Tutorial</module>
                    <frontName>tutorial</frontName>
                </args>
            </Mxperts_Tutorial>
        </routers>
    </frontend>

</config>

Erklärung:
global > models definiert unter anderem unsere Datenbank-Tabelle. Diese werden wir im nächsten Tutorial verwenden.

3. Model/Tutorial.php

<?php
class Mxperts_Tutorial_Model_Tutorial extends Mage_Core_Model_Abstract
{
     protected function _construct()
    {
        $this->_init('tutorial/tutorial');
    }
}

Erklärung:
Der Code bindet das Model an den Namespace tutorial unter dem Model tutorial.

4. Model/Mysql4/Tutorial.php

<?php
class Mxperts_Tutorial_Model_Mysql4_Tutorial extends Mage_Core_Model_Mysql4_Abstract
{
    protected function _construct()
    {
        $this->_init('tutorial/tutorial/', 'tutorial_id');
    }
}

Erklärung:
Der Code bindet das Model an die zugrunde liegende Mysql4 Tabelle.

3. Zum Schluß noch die Model/MySql4/Tutorial/Collection.php

<?php
class Mxperts_Tutorial_Model_Mysql4_Tutorial_Collection extends Varien_Data_Collection_Db
{
    protected $_tutorialTable;

    public function __construct()
    {
        $resources = Mage::getSingleton('core/resource');
        parent::__construct($resources->getConnection('tutorial_read'));
        $this->_tutorialTable = $resources->getTableName('tutorial/tutorial');
        $this->_select->from(
        		array('tutorial'=>$this->_tutorialTable),
 		       	array('*')
        		);
        $this->setItemObjectClass(Mage::getConfig()->getModelClassName('tutorial/tutorial'));
    }
}

Das Modell (model) ist nun fertig und im nächsten Tutorial werden wir mit dem Backend-Interface in Form eines Grids beginnen.

Extensions Tutorial: Teil 3 – Datenbank

Extensions Tutorial: Teil 5 – Admininterface und CRUD (Read)