저는 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