我是PHP新手,嘗試使用抽象和非抽象方法混合創建抽象類,然後擴展該類以實現抽象方法。以下是我的兩個類文件部分:在PHP中使用抽象類
<?php
require_once 'Zend/Db/Table/Abstract.php';
abstract class ATableModel extends Zend_Db_Table_Abstract {
abstract static function mapValues($post);
abstract static function getTableName();
public static function newEntry($post) {
$db = Zend_Db_Table_Abstract::getDefaultAdapter();
$data = mapValues($post, true);
$db->insert(getTableName(), $data);
$id = $db->lastInsertId();
return $id;
}
public static function getEntry($id){
$db = Zend_Db_Table_Abstract::getDefaultAdapter();
$db->setFetchMode(Zend_Db::FETCH_OBJ);
return $db->fetchRow("
SELECT *
FROM ".getTableName()."
WHERE ID = '".(int)$id."'
"
);
}
public static function editEntry($id,$post) {
$db = Zend_Db_Table_Abstract::getDefaultAdapter();
$data = mapValues($post);
$db->update(getTableName(), $data, " ID = '".(int)$id."' ");
}
public static function deleteEntry($id) {
$db = Zend_Db_Table_Abstract::getDefaultAdapter();
$db->delete(getTableName()," ID = '".(int)$id."' ");
}
}
?>
的子類如下所示:
<?php
require_once 'Zend/Db/Table/Abstract.php';
class Testing extends ATableModel {
public static function getTableName()
{
return 'TESTING';
}
public static function mapValues($post)
{
$data = array (
'test_description' => htmlentities($post['testDescription'])
);
return $data;
}
}
?>
這兩個文件都位於相對於彼此在同一目錄下。然而,當我嘗試運行我的申請,我得到以下錯誤:
Fatal error: Class 'ATableModel' not found in /var/www/testApp/application/models/testing.php on line 20
我的猜測是,有一些錯誤,要麼我加載的文件,或與這些文件所在的順序,相對於彼此。但是,我不知道如何從這裏開始。建議?
謝謝,我知道這對於那些比我在這方面有更多經驗的人來說會是簡單的! – Elie 2009-12-14 04:15:47