Я использовал Codeigniter для создания внешнего интерфейса приложения среднего размера и столкнулся с проблемой - как мне кажется, наследования в PHP.Вот что я пытаюсь сделать:
Следуя архитектуре MVC, я обнаружил, что дублировал много кода между моделями, и решил создать общую модель, от которой могли бы наследовать другие модели.Достаточно просто.Однако теперь у меня возникают проблемы с некоторыми функциями, которые определены в общем классе Model.
Вот эскиз того, что я делаю:
<?php
/**
* Common Model
*
*/
class DeviceModel extends Model {
function DeviceModel() {
parent::Model();
}
public function getDeviceId($d) { // this is just example code. }
public function getDeviceInfo($id) {
$selectStmt = "SELECT BLAH, BLAH2 FROM YADDAYADDA...";
$query = $this->db->query($selectStmt, array($id));
if ($query->num_rows() > 0) {
return $query->result();
}
}
}
?>
Вот подкласс:
<?php
require_once('devicemodel.php');
class ManageModel extends DeviceModel {
function ManageModel() {
parent::DeviceModel();
}
function getDropDownList($parkId,$tableName,$userclass) {
$arrCmds = array();
$arrHtml = array();
$deviceInfo = parent::getDeviceInfo($parkId);
$did = parent::getDeviceId($deviceInfo);
foreach ($deviceInfo as $device) {
$cmds = $this->getDeviceCommands($device->dtype,$tableName,$userclass);
array_push($arrCmds,$cmds);
}
//
// **After the refactor, I am receiving Undefined Offsets for this loop.**
//
for ($i=0; $i<sizeof($arrCmds); $i++) {
$html = $this->generateHtml($arrCmds[$i],$did[$i]);
array_push($arrHtml,$html);
}
return $arrHtml;
}
Существует ли проблема с использованием множественного наследования в codeigniter?Я довольно новичок в PHP и codeigniter.
Спасибо за поиск.