Отправляет email-рассылки с помощью сервиса Sendsay

Блог о популярных CMS

  Все выпуски  

Блог о популярных CMS Автозагрузка классов в PHP


Всем привет. Каждый разработчик веб-приложений со временем начинает писать свою CMS, для того чтобы на практике закрепить свои знания. Я - не исключение. Раньше я работал на различных CMS, создавал на них всякого рода проекты. Но сейчас я все больше и больше стал задумываться о своей собственной, качественной CMS. Популярные движки уже до того загружены различными кодами и классами, они стали более тяжелые, непродуктивными и "пожирают" много памяти. Перед стартом создания своей собственной CMS я изучил паттерны проектирования, ООП. И вот я стартанул. При разработке возникла такая ситуация - необходимо подключать множество классов и каждый класс по несколько раз на странице, что приводит к большему потреблению ресурсов. В этой статье я покажу, как, используя стандартную функция PHP, автоматически подключать класс, если он еще не подключен. Как правило, разработчики сохраняют все свои классы в одну папку, например, classes. Давайте от нее и будем отталкиваться. Функция, которую будем использовать:
spl_autoload_register()
принимает название функции, которая будет обрабатываться при каждом обращении к еще не инициализированному классу. Давайте напишем ее:
<?
function autoload($className) {
   include 'classes/'.$class.'_class.php';
}
//Вызываем функцию автозагрузки
spl_autoload_register('autoload')
В версиях PHP старше 5.3 реализована возможность работы с безымянными функциями:
<?

//Вызываем функцию автозагрузки
spl_autoload_register(function($className) {
   include 'classes/'.$class.'_class.php';
})
Теперь если мы будем пытаться использовать класс MyClass, а файл с этим классом еще не подключен к скрипту, функция будет искать его в папке classes/myclass_class.php

В избранное