Я использую платформу CodeIgniter, однако после изучения Java и замечательных функций, таких как интерфейсы, абстрактные классы, пакеты, и того, что PHP 5 также поддерживает большинство из этих функций, я готов закончить и построить реальная OO-инфраструктура в PHP, которая использует все эти функции (включая пространства имен), поэтому я могу создавать гораздо более элегантные проекты.
Я имею в виду, что вместо того, чтобы все в системе разделяло один $this->
объект, как это сделано в CodeIgniter, например:
$this->load->model('box');
$this->box->something();
Чтобы загрузить модель Box
и вызвать ее метод something()
, нужно сделать следующее.
$box = new Framework\Models\Box();
$box->something();
или следующее
abstract class BaseController
{
public function getModel($name)
{
$model = new Framework\Models\$model(); //Is this valid code?
return $model;
}
}
class MyController extends BaseController
{
public function index()
{
$box = $this->getModel('box');
$box->something();
}
}
Существуют ли какие-либо предложения / указатели для создания этого, например, какие минимальные системные классы мне понадобятся для фреймворка, какие пространства имен я должен иметь или какие-либо другие функции?