Смотри 1. Namespace Он позволяет нам сказать php машине, что этот класс является частью пространства. И указываем его. Далее нам нужен авто подгруз классов. Autolader. Можешь написать сам, а можешь воспользоваться compozer он лучше, ещё он позволяет подкачивать всякие "финтиплюшки" к нашему проекту после чего мы можем их использовать просто обращаться к ним. Вот тебе картинка.
@askanim то есть сам файл конфига сделать отдельным классом? а не класс читающий файл конфига? С композером не умею Автолоад писал сам
@vital8111 Эврика. --- Добавлено --- @vital8111 Там не сложно! --- Добавлено --- Качаешь композер в корень своего проекта, потом в ед точки входа пишешь так PHP: define('ROOT', dirname(__FILE__)); require_once ROOT.'/vendor/autoload.php';
Спасибо вроде понял. Как и неймспейсы)(который оказалось не понял) Буду пробовать. Результат напишу. Про композер почитаю
@vital8111 Вот например мой index.php PHP: define('ROOT', dirname(__FILE__)); require_once ROOT.'/vendor/autoload.php'; //Вызов первоначальных настроек $config = new System\Config\Config(); $config->er_report(); //Вызов Router $router = new System\Http\Route; $router->rout(); Всё остальное у меня разбросано по классам и подключается уже внутри моего роутера. --- Добавлено --- @vital8111 Ща я тебе ссылочки дам!
Не путай методы и классы! Это класс, а не метод. В данном случае, методом будет Код (Text): $config->er_report(); Смотри. PHP: <?php namespace System\Config; class Config { public function __construct() { $constants = file_get_contents(ROOT.'/config.list'); $constants = explode(';',$constants); foreach($constants As $key => $value) { $con = explode('=', trim($value)); define($con[0], $con[1]); } } public function er_report () { ini_set('display_errors', 1); error_reporting(E_ALL); } public static function unique_multidim_array($array, $key) { $temp_array = array(); $i = 0; $key_array = array(); foreach($array as $val) { if (!in_array($val[$key], $key_array)) { $key_array[$i] = $val[$key]; $temp_array[$i] = $val; } $i++; } return $temp_array; } } --- Добавлено --- @Ganzal а ты уже видел.
Я разбирал автозагрузку здесь. http://www.php-fig.org/psr/psr-4/examples/ А установку композера на оф доке. https://getcomposer.org/download/
@askanim спасибо. про класс я понял) --- Добавлено --- @askanim все таки file_get_contents? читает настройки из файла? и кладет в константы?
@vital8111 смотри что у меня там. Код (Text): DATEBASE=YCar; URL=http://y-car.ru/; USER=sosed; Там просто текстовый файл, ну мне так удобно.
@askanim задача то изначально такая и была. просто не хотелось парсить файл а хотелось инклудом приклеить. из этого и вышла такая тема --- Добавлено --- @Ganzal а можно поподробнее как массив возвратить? или так же надо читать файл просто в массив?
@Ganzal на скорость особо не влияет, у меня нет задачи, держать там множества говна, в этом файлике будет находиться максимум 10 строчек. И это тупо для констант, а их не так много. Так что накой мне массив? Тут будут находится настройки для движка.
@vital8111 не слушай его. Он сам еще мало что понимает. Можешь сделать смешной трюк. Сделай простой класс class Config { static $cfg; static function init () { static::$cfg = require ROOT . '/config.php'; }} а в конфиге пиши <?php return array(тут массив пар ключ-значение); И всё. Опкод кэшится. Класс доступен из любой точки. Статическое свойство не требует создания экземпляра класса.
@vital8111 PHP: Class rArray { public function __construct() { return [ 'in' => 'Ты вернул значение in' ]; } }
понимать как использовать и убегать это вроде как не одно и то же) задам вопрос по другому тогда почему в данном случае следует убегать от статики?
@askanim не забыл. Ох поверь мне не забыл... Можешь посмотреть историю моих сообщений года от 2007. Одно важное отличие от тебя - я не выпендривался. Да, тупил. У всех бывает. Но не выпендривался. И слушал. И менялся. И учился. А у тебя только ЧСВ-то и есть. Грамотность на родном языке - стремится к нулю. Грамотность в программировании - хромает. Грамотность в стеке профильных технологий - тоже. Но ЧСВ позволяет тебе этого не замечать. Да, ЧСВ и наглость.