Задавайте вопросы по курсам WordPress

Класс для автоматического подключения классов php

Как всегда лазя в интернете, в поисках интересных решений наткнулся на вот такой класс автоматического подключения классов, сделанный на языке php. Долго расписывать не стану, просто поделюсь находкой с читателями блога, кто программирует, поймет.

 

Вся работа по созданию и подключению класса состоит из нескольких этапов:

  1. Создаем 2 файла index.php и autoload.php.
  2. В файл autoload.php необходимо вставить наш класс.
  3. В файл index.php будем подключать и пробовать работу класса.
  4. Рядом с файлами index.php и autoload.php необходимо создать папки
    1. controller
    2. model
    3. view

Код класса для файла autoload.php

<?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);
    }
}

Далее создаем константу ROOT_DIR и подключаем в файл index.php созданный класс, при помощи require_once.

define("ROOT_DIR",dirname(__FILE__).'/');
require_once "autoload.php";
$autoloader    = new autoloader();

Вот в принципе и все, теперь осталось только создать дополнительный класс и подключить его. Для примера я создал класс конфигурации cconfig.php для сайта и положил его в папку model.

<?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() {
	
	}
}
?>

Доработаем код в файле index.php.

define("ROOT_DIR",dirname(__FILE__).'/');
require_once "autoload.php";
$autoloader    = new autoloader(); 
$cConfig       = new CConfig;
echo $cConfig->get('database', 'login');

Как видно из кода выше для подключения нового класса нам не понадобилась конструкция require_once, так как созданный выше класс autoloader подключил класс CConfig.

Данная конструкция при разработке делается один раз и ее можно использовать, так что для экономии вашего времени я аккуратно все упаковал в архив и выкладываю на своем блоге:

Скачать архив с примером

Если кому данный код был полезен, пишите в комментариях, буду рад хорошим отзывам о проделанной работе.


Купить хостинг WordPress
/* Репетитор по wordpress
Услуги репетитора онлайн. Список курсов которые я веду
  • Базовый курс по веб-дизайну;
  • Верстка сайтов;
  • Общий курс по CMS WordPress и продолжение курса по разработке шаблонов;
  • Разработка сайтов на PHP.
Подробнее читайте на странице репетитор по WordPress
*/

Николаенко Максим

Директор веб-студии ProGrafika. Занимаюсь разработкой, дизайном и продвижением веб-сайтов. Всегда рад новым читателям блога и хорошим клиентам.


Вам может также понравиться...

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Этот сайт использует Akismet для борьбы со спамом. Узнайте, как обрабатываются ваши данные комментариев.

Шаблоны для WordPress
Самый лучший хостинг в Украине
Стабильный хостинг для Drupal