Fünfter Schritt - Die Basisdateien
Als nächster Schritt werden die Basisdateien des Moduls erzeugt.
Zunächst benötigt werden:
Namensschema: <MyApp>_RsModule_<MyModule>_Controller_Controller
Namensschema: <MyApp>_RsModule_<MyModule>_Model_<Modelname>
Namensschema: <MyApp>_RsModule_<MyModule>_Model_Dataobject_<Modelname>
Namensschema: <MyApp>_RsModule_<MyModule>_Model_Db_<Modelname>
Zunächst benötigt werden:
- Controller
- Model
- DatabaseModel
- Dataobject
<MyApp>/RsModule/<MyModule>/Controller/Controller.php
Als erstes wird der zentrale Modulcontroller erzeugt. Die Benennung folgt dem ZEND Schema: Ordnerstruktur getrennt mit Unterstrichen. Die Datei benötigt zumindest den folgenden Rumpf:Namensschema: <MyApp>_RsModule_<MyModule>_Controller_Controller
<?php
class
RedSparkKickstart_RsModule_Faq_Controller_Controller
extends
Redspark_RsModule_Abstract_Controller
{
/* Implement here */
}
?>
<MyApp>/RsModule/<MyModule>/Model/Faq.php
Namensschema: <MyApp>_RsModule_<MyModule>_Model_<Modelname>
<?php
class
RedSparkKickstart_RsModule_Faq_Model_Faq
extends
RedSparkCore_RsModule_Abstract_Model_Database
implements
Redspark_RsModule_Abstract_Model_Atomic_Interface,
Redspark_RsModule_Abstract_Model_Database_Interface
{
/**
* wird immer vom construktor aufgerufen. Das überschreiben des Konstruktors ist nicht erlaubt!
*/
protected function init() {
# Füllt den storage mit dem ZendDB Object. Storage wird nur für ZendDB benutzt.
$this->_storage = new RedSparkCore_RsModule_Faq_Model_Db_Faq();
# Füllt das XML Object
$this->_xmlObject = $this->getXMLObject('Faq');
}
# Definiert den Tabellennamen der verwaltet wird.
# muss bei implementierung von Redspark_Model_Database_Interface immer angegeben werden
public static function getMainTable() {
return config_faq_table;
}
}
?>
<MyApp>/RsModule/<MyModule>/Model/Dataobject/Faq.php
Namensschema: <MyApp>_RsModule_<MyModule>_Model_Dataobject_<Modelname>
<?php
class
RedSparkKickstart_RsModule_Faq_Model_Dataobject_Faq
extends
Redspark_RsModule_Abstract_Model_Dataobject_Abstract
{
# properties der Tabelle
# optional angeben
public $id;
public $enabled = 'N';
public $fk_account;
public $insertDate;
public $changeDate;
public $question;
public $answer;
public $tags;
public $viewcnt;
}
?>
<MyApp>/RsModule/<MyModule>/Model/Db/Faq.php
Namensschema: <MyApp>_RsModule_<MyModule>_Model_Db_<Modelname>
<?php
class
RedSparkKickstart_RsModule_Faq_Model_Db_Faq
extends
Redspark_Db_Table_Abstract
{
protected $_name = config_faq_table;
protected $_primary = "id";
}
?>