Удобное использование сторонних библиотек в bitrix

И вот у нас есть нужная нам библиотека, но инклудить ее во все места использования не удобно, да и постоянно в голове держать ее место нахождение как то согласитесь некайф. На выручку нам придет php autoloader и файл битрикса init.php он всегда подключен, поэтому наш автозагрузчик и расположим в нем. И чтобы не изобретать заново велосипед воспользуемся Symfony ClassLoader Component он очень гибкий и поддерживает PSR-0 и PSR-4.

В битриксе с относительно недавних пор сделали удобную папочку local в которую можно вынести свои компоненты, init.php и шаблоны. Создадим в ней папку library и там будем хранить наши библиотеки.

Скачиваем Symfony ClassLoader Component, кладем в library/Symphony/Component/ClassLoader и в init.php добавляем например

require_once __DIR__ . '/../library/vendor/Symfony/Component/ClassLoader/ClassLoader.php';

use Symfony\Component\ClassLoader\ClassLoader;

$loader = new ClassLoader();

$loader->setUseIncludePath(true);

$loader->addPrefixes(array(
   'Project\\Library\\' => __DIR__ . '/../library/'
));

$loader->register();

На этом все, теперь вы можете вызывать свои классы в любом месте вашего приложения