Настройка CS-Cart

Файл с настройками для разработки

В CS-Cart можно создать файл local_conf.php и вносить изменения в него, а не в стандартный config.local.php.

Примечание

Значения настроек из local_conf.php имеют больший приоритет по сравнению с config.local.php.

Чтобы настроить CS-Cart для разработки, выполните следующие шаги:

  1. Создайте файл local_conf.php в корневой директории вашей установки CS-Cart.

  2. Откройте файл local_conf.php и добавьте туда следующий код:

    <?php
    
    // При работе с "живым" магазином можно сделать так, чтобы настройки из файла применялись только для определённого IP-адреса. Так local_conf.php не затронет покупателей. Замените 127.0.0.1 на нужный вам IP.
    if ($_SERVER['REMOTE_ADDR'] == '127.0.0.1') {
    
        // Включаем дебаг-панель на витрине и в панели администратора
        // define('DEBUG_MODE', true);
    
        // Включаем режим разработки для отображения ошибок
        define('DEVELOPMENT', true);
    
        // Включаем отображение SMARTY- и PHP-ошибок на экране
        error_reporting(E_ALL);
        ini_set('display_errors', 'on');
        ini_set('display_startup_errors', true);
    
        // Отключаем PHP-кэш блоков
        $config['tweaks']['disable_block_cache'] = true;
    
    }
    
    // Можно задать настройки для локальной копии, не изменяя сам config.local.php
    
    /*
    $config['db_host'] = '%DB_HOST%';
    $config['db_name'] = '%DB_NAME%';
    $config['db_user'] = '%DB_USER%';
    $config['db_password'] = '%DB_PASSWORD%';
    
    $config['http_host'] = '%HTTP_HOST%';
    $config['http_path'] = '%HOST_DIR%';
    
    $config['https_host'] = '%HTTPS_HOST%';
    $config['https_path'] = '%HOST_DIR%';
    */
    
    // Также вы можете настроить хранилища
    
    /*
    // Хранилище для кэша:
    // Возможные варианты: file, sqlite, database, redis, xcache, apc
    // Чтобы использовать sqlite, на сервере должен быть установлен модуль PHP "sqlite3"
    // Чтобы использовать xcache, на сервере должен быть установлен модуль PHP "xcache"
    // Чтобы использовать apc, на сервере должен быть установлен модуль PHP "apc"
    $config['cache_backend'] = 'file';
    $config['cache_redis_server'] = 'localhost';
    $config['cache_redis_global_ttl'] = 0; // установите ограничение по времени, если кэш занимает всю память, выделенную Redis
    
    // Хранилище для сессий. Возможные варианты: database, redis
    $config['session_backend'] = 'database';
    $config['session_redis_server'] = 'localhost';
    $config['cache_apc_global_ttl'] = 0;
    $config['cache_xcache_global_ttl'] = 0;
    */
    

Как работают настройки

Ограничения по IP

При работе с “живым” магазином можно сделать так, чтобы настройки из файла применялись только для определённого IP-адреса. Так только вы сможете увидеть сообщения об ошибках и дебаг-панель.

Ограничения по IP задаются в следующей части кода:

if ($_SERVER['REMOTE_ADDR'] == '127.0.0.1')

Подсказка

Если вы работаете с “живым” магазином, замените 127.0.0.1 на ваш IP-адрес. Если магазин ещё не доступен покупателям, можете убрать это условие.

Дебаг-панель

В CS-Cart встроен дебаггер, который показывает:

  • настройки сервера и PHP;
  • список SQL-запросов при открытии текущей страницы;
  • шаблоны, участвующие в формировании страницы;
  • параметры запроса;
  • затраты памяти и времени на открытие страницы.

Чтобы открыть дебаг-панель, откройте Панель администратора и добавьте в URL параметр debug. Выглядеть это должно так:

http://example.com/admin.php?debug

В правом верхнем углу экрана появится иконка с изображением жука. Нажатие на иконку открывает или закрывает боковую панель дебаггера. То же самое делает комбинация клавиш Ctrl + Alt + D.

Примечание

Использование параметра debug также сделает дебаггер доступным на витрине в текущей сессии браузера.

Чтобы дебаггер всегда был включен в панели администратора и на витрине, раскомментируйте следующую строку в local_conf.php:

define('DEBUG_MODE', true);

Предупреждение

Не используйте define('DEBUG_MODE', true); на “живом” магазине, чтобы пользователи случайно не получили доступ к данным, которые для них не предназначены.

Режим разработки

При написании кода PHP, шаблона SMARTY или SQL-запроса можно допустить ошибку. Обычно ошибки PHP или SMARTY приводят к тому, что отображается пустая страница. Если же произошла ошибка базы данных, вызванная неправильным SQL-запросом, вы увидите следующее сообщение: SERVICE UNAVAILABLE. Sorry, service is temporarily unavailable.

Чтобы увидеть само сообщение об ошибке, можно воспользоваться режимом разработчика. Этот режим включается в файле local_conf.php следующей строкой:

define('DEVELOPMENT', true);

Теперь в случае ошибки вы увидите сообщение об ошибке, а также путь к файлу, который эту ошибку вызвал.

У режима разработчика есть ещё одна функция, полезная для разработчиков модулей.

CS-Cart хранит файлы CSS и TPL от установленных модулей в папке design/themes. Обычно CS-Cart удаляет эти файлы при удалении модуля. Если модуль снова устанавливается, то эти файлы берутся из папки var/themes_repository.

Поэтому можно потерять свои наработки, если вы сначала отредактируете файлы .css и .tpl у модуля в папке design/themes, а затем удалите модуль в панели администратора.

Но если вы включите режим разработчика, то файлы модуля в папке design/themes не будут удалены при удалении модуля.

Предупреждение

Файлы .css и .tpl из папки var/themes_repository всё равно перезапишут файлы из design/themes при следующей установке модуля.

Отображение ошибок SMARTY и PHP на экране

Иногда нужно переопределить настройки PHP или веб-сервера, чтобы сообщения об ошибках отображались. Поэтому мы добавили в local_conf.php следующий код:

error_reporting(E_ALL);
ini_set('display_errors', 'on');
ini_set('display_startup_errors', true);

Отключение кэша блоков

CS-Cart кэширует блоки, чтобы ускорить загрузку страниц. Но при разработке удобнее, если сразу видно все изменения. Поэтому вы можете отключить кэширование блоков, добавив в local_conf.php следующий код:

$config['tweaks']['disable_block_cache'] = true;

Настройки базы данных и хоста

Вы можете заменить реквизиты БД и HTTP-хоста. Это полезно, если вы работаете на локальной копии уже существующего магазина и не хотите ничего менять в файле config.local.php.

Раскомментируйте в local_conf.php следующие строки и укажите свои значения:

$config['db_host'] = '%DB_HOST%';
$config['db_name'] = '%DB_NAME%';
$config['db_user'] = '%DB_USER%';
$config['db_password'] = '%DB_PASSWORD%';

$config['http_host'] = '%HTTP_HOST%';
$config['http_path'] = '%HOST_DIR%';

$config['https_host'] = '%HTTPS_HOST%';
$config['https_path'] = '%HOST_DIR%';

Хранилище для кэша и данных сессии

С помощью local_conf.php вы можете изменить хранилище данных для кэша. Раскомментируйте следующий код и задайте нужное значение:

$config['cache_backend'] = 'file';
$config['cache_redis_server'] = 'localhost';
$config['cache_redis_global_ttl'] = 0; // установите ограничение по времени, если кэш занимает всю память, выделенную Redis

Примечание

Возможные варианты: file, sqlite, database, redis, xcache и apc. Для работы sqlite, apc и xcache нужно установить на сервере соответствующие модули PHP.

Также вы можете изменить хранилище данных для сессий. Раскомментируйте следующий код и задайте нужное значение:

$config['session_backend'] = 'database';
$config['session_redis_server'] = 'localhost';
$config['cache_apc_global_ttl'] = 0;
$config['cache_xcache_global_ttl'] = 0;

Примечание

Возможные варианты: database и redis.