Extensions Tutorial: Teil 4 – Model
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)
So, dass war es erst einmal für Heute. Da die kommenden Themen (CRUD) wohl zusammen hängend sind werde ich mir diese auch am Stück rein ziehen.
Ich finde das echt super das es von der Verzeichnishierarchie und den Dateien her alles aufeinander aufbaut – glaube nur so versteht man das als Einsteiger.
Besonders ist mir hier auch aufgefallen das du zu gegebener Zeit auch kleine Exkurse zu vorangehenden Themen machst, das hilft ungemein. DANKE!
War diese Antwort hilfreich?
LikeDislikeHallo
Zuerst mal danke für das tolle Tutorial.
Habe glaube ich jedoch noch einen kleinen Fehler entdeckt.
Auf Zeile 38 im config.xml müsste es heissen:
Mxperts_Tutorial
Es steht jedoch:
Mxperts_tutorial
Gruss
redX
War diese Antwort hilfreich?
LikeDislikeHmpf… hat die XML Tags rausgeschnitten. Noch ein Versuch…
Auf Zeile 38 im config.xml müsste es heissen:
Mxperts_Tutorial
Es steht jedoch:
Mxperts_tutorial
War diese Antwort hilfreich?
LikeDislikeOk. Ich gebs auf. Die Idee sollte jedoch klar sein. Auf Zeile 38 ist Tutorial klein geschrieben statt gross *lach*
War diese Antwort hilfreich?
LikeDislikeJa, durch diesen Fehler ging bei mir gar nix mehr, nur eine leere Seite. Danke für den Hinweis
War diese Antwort hilfreich?
LikeDislikehttp://www.mxperts.de/blog/extensions-tutorial-teil-5-admininterface-und-crud-read/
War diese Antwort hilfreich?
LikeDislike