Я работаю с собственным проектом, используя структуру MVC и класс автозагрузки, используя PSR-4, используя composer.Я выбираю библиотеку Php Fastroute для своего маршрутизатора.
Моя структура:

index.php
define('DS', DIRECTORY_SEPARATOR, true);
define('BASE_PATH', dirname(__DIR__) . DS, TRUE);
ini_set('display_errors', 1);
ini_set('display_startup_errors', 1);
error_reporting(E_ALL);
require '../vendor/autoload.php';
require '../application/core/Core.php';
// Our framework is now handling itself the request
$app = new Framework\Core();
$response = $app->handle();
Контроллер:
namespace App\Core;
class Controller
{
public $templates;
public function __construct()
{
// My Question
$this->config = new \App\Core\Setting();
$this->Language = new Language('en');
$this->Url = new \App\Core\Url(Config::get('URL'),Config::get('URL'));
$this->templates = new \League\PlatesEngine(Config::get('PATH_VIEW'));
$this->Document = new \App\Core\Document();
}
public function loadModel($name, $path = null) {
$path = ($path === null) ? 'Catalog' : $path;
$path = '\App\\'.$path.'\Model\\'.$name;
$this->model = new $path;
return $this->model;
}
public function loadController($name) {
$path = '\App\Catalog\Controller\\'.$name;
$this->controller = new $path;
return $this->controller;
}
}
IndexController:
namespace App\Catalog\Controller\Home;
class IndexController extends \App\Core\Controller
{
public function index()
{
$add['power'] = $this->config->get('on');
$data['title'] = $this->Language->get('text_title');
$this->templates->addData($data, 'common/header');
//.... More Code
}
}
В действие я помещаю новый экземпляр класса (библиотека и базовый класс, например: Config или Ducoment или Templates или многие другие, если это необходимо)...) в __construct()
Моста Controller
и продолжается IndexController
.эта модель работает для меня, но я не знаю, этот метод является истинным или ложным ?!На самом деле мне нужно загрузить Object (новый экземпляр) из базового класса в мой IndexController
Но я не знаю, где он будет размещен (лучше и лучше) ?!(в Base Controller
- в IndexController
- в Core.php and require
- в Index.php
) ??