<?php /** * Файл для внедрения зависимостей * @author Алексей Арх */ # Подключение DIC $DI = new arh\di\DI(include ROOT_DIR . '/config/di/inject.php'); # Подключение базы данных try { $config = (include ROOT_DIR . '/config/db/localhost.php'); $DB = new PDO($config['type'] . ":dbname=" . $config['dbname'] . ";host=" . $config['host'], $config['user'], $config['password'], []); $DI->set('DB', function () use($DB, $config) { $DB->setAttribute(\PDO::MYSQL_ATTR_INIT_COMMAND, 'SET NAMES ' . $config['charset']); $DB->setAttribute(\PDO::ATTR_ERRMODE, \PDO::ERRMODE_EXCEPTION); $DB->setAttribute(\PDO::ATTR_DEFAULT_FETCH_MODE, \PDO::FETCH_ASSOC); return $DB; }); } catch (PDOException $e) { $DI->get('Tpl')->display(ROOT_DIR . '/template/error/index.tpl', ['title' => $DI->get('Translate')->get('Невозможно подключиться к базе данных', ROOT_DIR . '/language/error/' . LANGUAGE . '.ini'), 'message' => $DI->get('Translate')->get('Проверьте настройки подлючения - ' . $e->getMessage(), ROOT_DIR . '/language/error/' . LANGUAGE . '.ini')]); exit; }
<?php #Подключение DIC $DI = new arh\di\DI(include ROOT_DIR . '/config/di/config.php'); #Внедрение зависимости - замена файлового кэша на кэш оперативной памяти if (MEMCACHE) { $Memcache = new \Memcache(); $Memcache->connect('127.0.0.1', 11211); $DI->set('arh\\Cache', function () use($Memcache) { return $Memcache; }); } #Подключение базы данных $config = (include ROOT_DIR . '/config/db/localhost.php'); $DB = new PDO($config['type'] . ":dbname=" . $config['dbname'] . ";host=" . $config['host'], $config['user'], $config['password'], []); $DI->set('DB', function () use($DB, $config) { $DB->setAttribute(\PDO::MYSQL_ATTR_INIT_COMMAND, 'SET NAMES ' . $config['charset']); $DB->setAttribute(\PDO::ATTR_ERRMODE, \PDO::ERRMODE_EXCEPTION); $DB->setAttribute(\PDO::ATTR_DEFAULT_FETCH_MODE, \PDO::FETCH_ASSOC); return $DB; });
<?php /** * Инструкция * $Registry->set('breadcrumbs', [ * 'Тест' => '/', * 'Хорошая погода' => '/' * ]); * * @var $Tpl arh\tpl\Tpl * @var $Cache arh\cache\Cache */ # Подключение DIC $DI = new arh\di\DI(include ROOT_DIR . '/module/breadcrumbs/config/di.php'); $Tpl = $DI->get('Tpl'); $Crumbs = $DI->get('Crumbs'); //$add = ['Главная' => '/admin/']; $add = []; if (isset($_GET['mod'])) { $Module = $DI->get('Module'); $mod = $Module->get($_GET['mod']); $add = $add + [$mod['title'] => HOME . '/admin/' . $mod['name'] . '/']; } $Tpl->display(ROOT_DIR . '/module/breadcrumbs/template/admin.tpl', ['data' => $Crumbs->get($add)]);