Настройка CS-Cart¶
Файл с настройками для разработки¶
В CS-Cart можно создать файл local_conf.php и вносить изменения в него, а не в стандартный config.local.php.
Примечание
Значения настроек из local_conf.php имеют больший приоритет по сравнению с config.local.php.
Чтобы настроить CS-Cart для разработки, выполните следующие шаги:
Создайте файл local_conf.php в корневой директории вашей установки CS-Cart.
Откройте файл 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.