Всем здрасть, начал писать мвс (ненавижу его).
[code]
-application
--components
---controller.php
<?php
/**
*
*
*/
class controller {
public $model, $mysqli;
function __construct($model) {
$this->model = $model;
$this->mysqliConnection();
}
function mysqliConnection() {
$mysqli = new mysqli('localhost', 'root', '', 'test');
}
}
---model.php
<?php
class model {
}
---view.php
<?php
class view {
public $model;
function __construct($model) {
$this->model = $model;
}
public function output($data = null) {
}
}
--controllers
--models
--views
index.php
<?php
include 'application/components/controller.php';
include 'application/components/model.php';
include 'application/components/view.php';
$req = split('/', parse_url($_SERVER['REQUEST_URI'], PHP_URL_PATH));
$req[1] = $req[1] ? $req[1] : 'home';
$req[2] = $req[2] ? $req[2] :'index';
if (!file_exists('application/controllers/' . $req[1] . '.php')) {
exit;
}
if (!file_exists('application/models/' . $req[1] . '.php')) {
exit;
}
include 'application/models/' . $req[1] . '.php';
$model_name = 'model_' . $req[1];
$model = new $model_name();
include 'application/controllers/' . $req[1] . '.php';
$controller_name = 'controller_' . $req[1];
$controller = new $controller_name($model);
if (!method_exists($controller, 'action_' . $req[2])) {
exit;
}
$action_name = 'action_' . $req[2];
$controller->$action_name();
$view = new view($model);
$view->output();
[/code]
з.ы недавно начал писать, т.к пока пусто, но нужно ваше мнение.
function __construct($model) {
$this->model = $model;
Это лишнее же
Добавлено 25.09.14 в 21:00:44:
Загрузи на dumpz.org
или ты предлогаешь new model();?
Z[Э]rtroiL, я ничего не предлагаю, но это безумство модель отправлять в конструктор класса который будет наследоваться, проще как по мне не марасить, а сделать отдельный метод model() в этом же классе, что бы в дочерних просто вызывать как $this->model('user'); и всего то
Добавлено 25.09.14 в 21:11:42:
А вот подключение к бд стоило бы сделать в конструкторе
[code]
public function modelload($name) {
include 'application/models/' . $name . '.php';
return new $name();
}
[/code]
ну дык не все же мне в моделях писать, например юзера в контроллер... всмысле, можно сразу втыкать в контроллер.
Я тебе про Ивана, ты мне про Болвана. Делай как душе угодно, я дал лишь совет, а прислушиваться к нему или нет, решать тебе. Всё я чай пить пошел
да это ясно, в новой версии мвс этот метод есть, но я чет подумал его не использовать..