Класс для автоматического подключения классов php
Как всегда лазя в интернете, в поисках интересных решений наткнулся на вот такой класс автоматического подключения классов, сделанный на языке php. Долго расписывать не стану, просто поделюсь находкой с читателями блога, кто программирует, поймет.
Вся работа по созданию и подключению класса состоит из нескольких этапов:
- Создаем 2 файла index.php и autoload.php.
- В файл autoload.php необходимо вставить наш класс.
- В файл index.php будем подключать и пробовать работу класса.
- Рядом с файлами index.php и autoload.php необходимо создать папки
- controller
- model
- view
Код класса для файла autoload.php
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 |
<?php class autoloader { public static $loader; public static function init() { if(self::$loader == NULL) { self::$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); } } |
1 2 3 |
define("ROOT_DIR",dirname(__FILE__).'/'); require_once "autoload.php"; $autoloader = new autoloader(); |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 |
<?php class cconfig { private $params; function get($param1, $param2) { return $this->params[$param1][$param2]; } function __construct() { $this->params = array ( 'database' => array ( 'server' => 'localhost', 'login' => 'mylogin', 'password' => 'pass', 'dbname' => 'db', 'charset' => 'utf8' ), 'extra' => array ( 'adress' => 'siteadress', 'adminemail' => 'info@wp-admin.com.ua' ), 'pics' => array ( 'small_w' => '120', 'small_h' => '120', 'small_path' => 'pics/small/', 'big_w' => '250', 'big_h' => '335', 'big_path' => 'pics/big/', 'max_pics' => '6', 'objpicbig_w' => '541', 'objpicbig_h' => '335', 'objpicbig_path' => 'pics/objbig/', 'objpicmini_w' => '51', 'objpicmini_h' => '46', 'objpicmini_path' => 'pics/objmini/' ), 'other' => array ( 'groupid' => '15', 'groupid' => '4', 'groupid' => '3' ), ); } function __destruct() { } } ?> |
1 2 3 4 5 |
define("ROOT_DIR",dirname(__FILE__).'/'); require_once "autoload.php"; $autoloader = new autoloader(); $cConfig = new CConfig; echo $cConfig->get('database', 'login'); |
Данная конструкция при разработке делается один раз и ее можно использовать, так что для экономии вашего времени я аккуратно все упаковал в архив и выкладываю на своем блоге:
Если кому данный код был полезен, пишите в комментариях, буду рад хорошим отзывам о проделанной работе.

/*

- Базовый курс по веб-дизайну;
- Верстка сайтов;
- Общий курс по CMS WordPress и продолжение курса по разработке шаблонов;
- Разработка сайтов на PHP.