Клас для автоматичного підключення класів php
Як завжди лазячи в інтернеті, у пошуках цікавих рішень натрапив на такий клас автоматичного підключення класів, зроблений мовою php. Довго розписувати не стану, просто поділюся знахідкою з читачами блогу, хто програмує, зрозуміє.
Вся робота зі створення та підключення класу складається з кількох етапів:
- Створюємо 2 файлу index.php та autoload.php.
- У файл autoload.php необхідно вставити наш клас.
- У файл index.php будемо підключати та пробувати роботу класу.
- Поруч із файлами index.php та autoload.php необхідно створити папки
- контролер
- модель
- переглянути
Код класу для файлу autoload.php
<?php class autoloader { публічна статична $loader; публічна статична функція init() { if(Самостійної::$завантажувач == NULL) { Самостійної::$loader = new self(); } return self::$loader; } public function __construct() { spl_autoload_register(array($this, 'controller')); spl_autoload_register(array($this, 'model')); spl_autoload_register(array($this, 'view')); } public function library($class){ set_include_path(ROOT_DIR . '/lib'); spl_autoload_extensions('.php'); spl_autoload($class); } public function controller($class){ set_include_path(ROOT_DIR . '/controller'); spl_autoload_extensions('.php'); spl_autoload($class); } public function helper($class){ set_include_path(ROOT_DIR .'/helper'); spl_autoload_extensions('.php'); spl_autoload($class); } public function view($class){ set_include_path(ROOT_DIR .'/view'); spl_autoload_extensions('.php'); spl_autoload($class); } public function model($class){ set_include_path(ROOT_DIR .'model'); spl_autoload_extensions('.php'); spl_autoload($class); } }
Далі створюємо константу ROOT_DIR і підключаємо до файлу index.php створений клас, за допомогою require_once.
define("ROOT_DIR",dirname(__ФАЙЛ__).'/');
require_once "autoload.php";
$autoloader = new autoloader();Ось у принципі і все, тепер залишилося лише створити додатковий клас та підключити його. Наприклад, я створив клас конфігурації cconfig.php для сайту і поклав його до папки модель.
<?php class cconfig { private $params; функція отримати($парам1, $парам2) { повернути $this->Параметри[$парам1][$парам2]; } function __construct() { $це->params = масив ( 'база даних' => array ( 'сервер' => 'localhost', 'Логін' => 'Мілогін', "пароль" => 'Pass', 'dbname' => 'БД', 'charset' => 'UTF8' ), 'extra' => array ( 'адреса' => 'siteadress', 'adminemail' => 'info@wp-admin.com.ua' ), 'фото' => array ( 'small_w' => '120', 'small_h' => '120', 'small_path' => 'фотографії/малі/', 'big_w' => '250', 'big_h' => '335', 'big_path' => 'Фото / Великий / ', 'max_pics' => '6', 'objpicbig_w' => '541', 'objpicbig_h' => '335', 'objpicbig_path' => 'pics/objbig/', 'objpicmini_w' => '51', 'objpicmini_h' => '46', 'objpicmini_path' => 'Pics/objmini/' ), 'інше' => array ( 'groupid' => '15', 'groupid' => '4', 'groupid' => '3' ), ); } функція __destruct() { } } ?>
Доопрацюємо код у файлі index.php.
define("ROOT_DIR",dirname(__ФАЙЛ__).'/');
require_once "autoload.php";
$autoloader = new autoloader();
$cConfig = новий CConfig;
відлуння $cConfig->отримати('База даних', 'Вхід');Як видно з коду вище для підключення нового класу, нам не знадобилася конструкція require_once, оскільки створений вище клас autoloader підключив клас CConfig.
Дана конструкція при розробці робиться один раз і її можна використовувати, так що для економії вашого часу я акуратно все запакував в архів і викладаю на своєму блозі:
Якщо комусь цей код був корисний, пишіть у коментарях, буду радий хорошим відгукам про виконану роботу.
/*

- Базовий курс з веб-дизайну;
- Верстка сайтів;
- Загальний курс CMS WordPress та продовження курсу з розробки шаблонів;
- Розробка сайтів на PHP.




