Здравствуйте!
Пишу API, по которому будет работать клиентское десктопное приложение. Но вопрос общий, по ООП.
Использую фреймворк Fat-Free.
В index.php он подключается так:
$f3 = require('lib/base.php');
А подключается к БД примерно так:
$db = new DB\Mongo($f3->get('dbhost'),$f3->get('dbname'));
Чтобы не писать весь API в одном файле, хочу сделать несколько модулей, для каждого модуля свой класс. Ведь в API вся работа завязана на БД.
Возникает вопрос: как осуществить передачу объекта $f3 и $db в каждый модуль, и использовать их в объектах классов?
Передавать постоянно таким образом:
class MyClass {
public $f3;
function __construct($f3) {
$this->f3=$f3;
}
function MyFunc() {
$this->f3->somebody();
}
}
$obj= new MyClass ($f3);
На мой взгляд, не очень рационально. Хотелось бы создавать эти объекты один раз, и не передавать их в объекты других классов, но использовать внутри этих объектов. Возможно ли это?
Как такое реализовано в различных движках, CMS? Как пишете вы?