Как не создавать хаос в init.php 1C-Битрикс

Внимание! Все сообщения на форуме проходят модерацию. Ваше сообщение появится после проверки.
Встречаются проекты, где init.php разрастается до 5000 строк и более.
Сам не любитель лишний раз "срать" в него, но вот небольшая рекомендация, чтобы избежать превращение init.php в не читабельную помойку.

Рядом с этим файлом создайте отдельные директории handlers, agents, functions и.т.д., и подключайте файлы из них. Пример:
Код
$arrInitFiles = [

    // АГЕНТЫ
    $_SERVER["DOCUMENT_ROOT"] . "/local/php_interface/agents/Говорящее_Название_Агента.php",
    $_SERVER["DOCUMENT_ROOT"] . "/local/php_interface/agents/Говорящее_Название_Агента2.php",

    // ОБРАБОТЧИКИ
    $_SERVER["DOCUMENT_ROOT"] . "/local/php_interface/handlers/Говорящее_Название_Обработчика.php",
    $_SERVER["DOCUMENT_ROOT"] . "/local/php_interface/handlers/Говорящее_Название_Обработчика2.php",

    // ФУНКЦИИ
    $_SERVER["DOCUMENT_ROOT"] . "/local/php_interface/functions/Говорящее_Название_Функции.php",
    $_SERVER["DOCUMENT_ROOT"] . "/local/php_interface/functions/Говорящее_Название_Функции2.php"

];

foreach ($arrInitFiles as $initFile) {
    if (file_exists($initFile)) {
        require_once($initFile);
    }
}

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

Вариант с glob - что бы вообще не контролировать массив с файлами. Пусть это делает php
Код
foreach (glob(__DIR__ . '/agents/*.php') as $file) {
    require_once $file;
}

foreach (glob(__DIR__ . '/handlers/*.php') as $file) {
    require_once $file;
}

foreach (glob(__DIR__ . '/functions/*.php') as $file) {
    require_once $file;
}
Само собой, можно и покороче
Код
$arrInitFiles = [

    // АГЕНТЫ
    __DIR__ . "/agents/Говорящее_Название_Агента.php",
    
   и т д

];

foreach ($arrInitFiles as $initFile) {
    if (file_exists($initFile)) {
        require_once($initFile);
    }
}


Или
Код
<?php

define('BX_PUBLIC_MODE', 1);

$sections = ['functions', 'handlers', 'agents'];

foreach ($sections as $section) {
    $files = glob(__DIR__ . "/{$section}/*.php") ?: [];
    sort($files);

    foreach ($files as $file) {
        require_once $file;
    }
}
Форма ответов
 
Текст сообщения*
Перетащите файлы
Ничего не найдено
Файл
 

Стоимость разработки на 1С-Битрикс:

Индивидуальная разработка магазина

от 350 000 руб. от 5-ти недель

Разработка магазина на 1С-Битрикс с нуля. Дизайн, сборка и оптимизация производительности под конкретный проект и требования. Реализация любого функционала без ограничений готовых решений.

Запуск сайта на готовом решении

от 150 000 руб. от 7-ми дней

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

Мобильное приложение

от 400 000 руб. от 5-ти недель

Разработка кроссплатформенного мобильного приложения, которое не уступает нативным решениям как в производительности, так и пользовательском опыте. Публикуется в AppStore, GooglePlay и RuStore

Сайт компании

от 300 000 руб. от 2-х недель

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

Инфоресурс

от 300 000 руб. от 4-х недель

Информационный ресурс любой сложности. Сайт для СМИ, городской портал или многопользовательская доска объявлений. Внутренние форумы, блоги- по необходимости.

3D‑моделирование, визуализация

от 25 000 руб. от 3-х дней

По вашим фото, чертежам или описанию создадим 3D‑модели и отрендерим набор изображений для каталога товаров: общий вид, крупные планы и технические ракурсы или 360°‑обзор товара.