1С Битрикс Управления сайтом довольно мощная и гибкая CMS позволяющая решать множество задач веб-разработки. В ней так же предусмотрены механизмы расширения базовых возможностей системы по средством собвтенных компонентов, модулей и классов. Давайте рассмотрим последние и разберёмся как же загружать их в систему.

1С Битрикс Управления сайтом довольно мощная и гибкая CMS позволяющая решать множество задач веб-разработки. В ней так же предусмотрены механизмы расширения базовых возможностей системы по средством собвтенных компонентов, модулей и классов. Давайте рассмотрим последние и разберёмся как же загружать их в систему.


Существует 2 основных варианта подключения своего класса (сейчас я не рассматриваю модули и компоненты, в них так же можно создавать классы и подключаь методами CModule::IncludeModue(‘module_name’) или же через компоненты $APPLICATION->IncludeComponent()):

  1. Через автозагрузчик классов битрикс
  2. По средствам composer

Автозагрузка классов 1С Битрикс

Первым делом необходимо расположить класс в удобном для этого месте, где его не затрут обновления системы и с ним будет удобно работать. Обычно я размещаю классы в папке /local/php_interface/lib/#папка_с_типом_класса#/ — здесь #папка_с_типом_класса# это директория собирающая однотипные классы в одном месте, например для работы с собственными пользовательскими свойствами или информационными блоками, для простоты пока опустим эту папку и поместим прямо в корень /lib/. Назовём его someclass.php:


<?php

namespace lib;


class SomeClass
{
    public static function someMethod()
    {

    }
}

Теперь в папке /local/php_interface/ создадим файл autoload.php где вызовем метод Bitrix\Main\Loader::registerAutoLoadClasses() вот с такими настройками:

<?

Bitrix\Main\Loader::registerAutoLoadClasses(null, [
    'lib\SomeClass' => '/local/php_interface/lib/SomeClass.php'
]);

Сам файл естественно необходимо подключить в /local/php_interface/init.php в самом начале:

<?

require_once( $_SERVER['DOCUMENT_ROOT'] . '/local/php_interface/autoload.php');

Таким образом, как только нам потребуется воспользоваться нашим классом, 1С Битрикс, автоматически его подгрузит.

Загрузка классов через Composer

Так же для автозагрузки классов битрикс можно использовать популярный менеджер зависимостей composer. Он сам создаст файл autoload.php который будет отвечать за автозагрузку наших классов. Чтобы использовать composer вам необходимо в папке  /local/php_interface/ создать файл composer.json со следующим содержимым:


{
  "autoload": {
    "psr-4": {
      "lib\\": "lib/"
    }
  }
}

здесь первый «lib\\» (ключ) — это пространство имён наших классов, а «lib/» это папка (относительно директории где создан conposer.json) где будут лежать наши классы.  Затем открываем консоль, переходим в папку /local/php_interface/ и запускаем команду composer install. Если всё сделано правильно и у вас или на сервере установлен composer вы увидите следующее сообщение:

Loading composer repositories with package information
Updating dependencies (including require-dev)
Nothing to install or update
Generating autoload files


При этом composer создаст новую папку /vendor/ и файл autoload.php, который нам осталось загрузить в init.php как мы делали в первом методе:

<? 
require_once ( $_SERVER['DOCUMENT_ROOT'] . '/local/php_interface/vendor/autoload.php' );


Лично мне, второй вариант нравится больше, т.к. я часто использую в своих проектах сторонние библиотеки, которые как раз устанавливаю при помощи composer и т.к. у меня всё равно подключен /vendor/autoload.php, не вижу смысла подключать собственные классы через автозагрузчик битрикса. Но это дело вкуса.

Используйте современные инструменты и пусть ваш код работает быстро и правильно!

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

Исключения в PHP, что это и как ими пользоваться

Исключения в PHP, что это и как ими пользоваться

В этой статье вы узнаете что такое исключения в PHP и как их использовать для обработки ошибок. Начиная с PHP версии 5.0 стала доступна новая модель обработки ошибок, так называемые исключения. Она позволяет более гибко и информативно для пользователя обрабатывать не стандартные ситуации в работе вашего приложения. 

Загрузка файлов на сервер средствами PHP

Загрузка файлов на сервер средствами PHP

На данный момент загрузка файлов является одной из необходимых функций любого сайта, будь то загрузка изображения в профиль пользователя, отправка документов при регистрации, размещение прайс листов, создание галереи и т.д. В статье пойдёт речь о реализации загрузки различных файлов на сервер средствами PHP.

Современные способы заработка на сайтах

Современные способы заработка на сайтах

Не для кого не секрет, что в современном мире вы можете зарабатывать определённые деньги на своём сайте ничего не продавая. Говоря «ничего не продавая», я имею ввиду классическую схему, когда вы продаёте свои услуги, перепродаёте товар (предварительно закупая или используя схемы прямой поставки «дроп-шиппинга») или что-то производите. В статье рассмотрим методы, которые не требуют от вас подобных действий. И так, рассмотрим основные методы в порядке возрастания их сложности и времени которое требуется от владельца сайта.


Комментарии
Защита от автоматических сообщений
CAPTCHA
Введите слово на картинке
04.10.2020 | Дмитрий

Спасибо за статью. Помогла. Не знал, что после добавления классов в psr-4 нужно делать в composer install.

Комментировать | 0  
Защита от автоматических сообщений
CAPTCHA
Введите слово на картинке
Закрыть

Самые читаемые

Тонкая настройка SEO для результатов фильтрации каталога битрикс

Тонкая настройка SEO для результатов фильтрации каталога битрикс

Одним из преимуществ интернет-магазинов на 1С Битрикс на мой взгляд является наличие не так давно до...

Основы SEO оптимизации сайта

Основы SEO оптимизации сайта

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

Собственный тип пользовательских полей в 1С Битрикс

Собственный тип пользовательских полей в 1С Битрикс

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