Настройка локальной среды разработки

Опубликовано Опубликовано в рубрике prestashop, Руководство разработчика PrestaShop, Русская документация PrestaShop 1.6

Настройка локальной среды разработки

Теперь, когда вы планируете разрабатывать PrestaShop, вам лучше хранить все ваши разработки на своей машине. Основное преимущество этого заключается в том, что можно полностью обойти процесс загрузки вашего файла на вашем онлайн-сервере, чтобы проверить его. Другим преимуществом является то, что локальная тестовая среда позволяет вам тестировать код без риска взлома магазина. Локальная среда является важным первым шагом на пути веб разработки.

Установка PrestaShop локально

Предпосылки

Для запуска PrestaShop требуется следующая конфигурация сервера:

  • System: Unix, Linux or Windows.
  • Web serve: Apache Web Server 1.3 or any later version.
  • PHP: 5.2 or later.
  • MySQL: 5.0 or later.
  • At least 32 Mb of RAM. 64 Mb is more comfy, the more the better…

PrestaShop также может работать с веб-сервером Microsoft IIS 6.0 или новее и nginx 1.0 или новее.

Установка локальной среды

Для установки любого веб-приложения локально требуется, чтобы вы сначала установили подходящую среду, а именно веб-сервер Apache, интерпретатор языка PHP, сервер базы данных MySQL и, в идеале, инструмент phpMyAdmin. Это называется пакетом AMP: Apache + MySQL + PHP и операционной системой, предоставляя WAMP (Windows + Apache + MySQL + PHP), MAMP (Mac OS X + …) и LAMP (Linux + …). Поскольку все эти элементы являются open-source, эти программы в большинстве случаев бесплатны.

Вот выбор бесплатного установщика AMP:

Конфигурация PHP

Для полной работы PrestaShop требуется несколько дополнений к PHP и MySQL. Убедитесь, что ваша конфигурация PHP имеет следующие настройки и инструменты:

  • GD library.
  • Dom extension.
  • allow_url_fopen включен.

Вот раздел php.ini файла(the configuration file for PHP):

extension = php_mysql.dll
extension = php_gd2.dll
allow_url_fopen = On
    
# also recommended
register_globals = Off
magic_quotes_gpc = Off
allow_url_include = Off

The GD библиотека (http://www.boutell.com/gd/) позволяет PrestaShop обрабатывать загружаемые изображения, изменяя их размеры.

Расширение Dom позволяет анализировать XML-документы. PrestaShop использует его для различных функций, таких как локатор магазина. Он также используется некоторыми модулями, а также pear_xml_parse библиотекой.

allow_url_fopen директива позволяет модулям получать доступ к удаленным файлам, что является неотъемлемой частью процесса платежей, и многое другое. Поэтому необходимо установить значение ON.

Загрузка и извлечение файлов PrestaShop

Вы можете скачать последнюю версию PrestaShop по адресу http://www.prestashop.com/en/downloads.

Вы можете скачать (нестабильную) версию разработки на Github: https://github.com/PrestaShop/PrestaShop/archive/development.zip

Извлеките файлы PrestaShop и поместите их в корневую папку установщика AMP, который вы выбрали:

  • XAMPP: C:\xampp\htdocs or /Applications/xampp/htdocs
  • WampServer: C:\wamp\www
  • EasyPHP: C:\easyphp\www
  • MAMP: /Applications/MAMP/htdocs/

Создание базы данных для вашего магазина

Откройте инструмент phpMyAdmin, используя браузер. Его местоположение зависит от выбранного вами пакета AMP:

На вкладке «Базы данных» укажите нужное имя базы данных и подтвердите ее, нажав кнопку «Создать базу данных».

Установка PrestaShop

Откройте программу установки PrestaShop, которая должна быть расположена по адресу: http://127.0.0.1/prestashop/install, и следуйте инструкциям.

Вы можете прочитать руководство «Начало работы» для получения более подробной информации.: http://doc.prestashop.com/display/PS16/Getting+Started.

Настройка PrestaShop

По умолчанию PrestaShop настроен на обеспечение безопасной и стабильной среды как администратору магазина, так и клиентам.

Как разработчик, есть несколько изменений, которые вы должны внести, чтобы помочь вам лучше кодировать, обнаруживать ошибки быстрее и сделать отличный продукт PrestaShop.

Отключение кэша и принудительная компиляция Smarty

 

По умолчанию PrestaShop настроен на обеспечение безопасной и стабильной среды как администратору магазина, так и клиентам. Как разработчик, вы должны внести несколько изменений. Отключите кеш и включите принудительную компиляцию Smarty.

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

Перейдите на страницу «Производительность» в меню «Дополнительные параметры», чтобы изменить следующие настройки Smarty: Кэш шаблона: переключите его на «Принудительная компиляция». Кэш: отключите его. Принудительная компиляция Smarty всегда будет замедлять время загрузки страницы.

Убедитесь, что ваш работающий магазин настроен на перекомпилирование шаблонов, если есть обновленные файлы, и что его кеш включен.

Отображение сообщений об ошибках

Предварительные настройки PrestaShop не позволяют клиенту увидеть любое сообщение об ошибке сервера или любой код отладки.

С другой стороны, вам нужна эта информация, чтобы исправить любую потенциальную ошибку в вашем коде. С этой целью откройте /config/defines.inc.php файл и установите _PS_MODE_DEV_ to true:

/* Debug only */
define('_PS_MODE_DEV_'true);

Использование методов отладки

PrestaShop предлагает настраиваемые методы отладки для разработчиков: p($variable) иd($variable). Они используются для отображения содержимого переменной. Это обертка вокруг хорошо известного print_r() метода (http://php.net/manual/en/function.print-r.php):

The p() method
echo '<xmp style="text-align: left;">';
print_r($variable);
echo '</xmp><br />';
return $variable;

Этот тип функции типичен для многих сессий разработки PHP, и PrestaShop позволяет вам не изобретать колесо с помощью этого метода.

P () является основным методом, и с d () работает одинаково, за исключением того, что он вызывает метод die () вместо возврата переменной:

The d() method
echo '<xmp style="text-align: left;">';
print_r($variable);
echo '</xmp><br />';
die('END');

Эти два метода позволяют проверить состояние данной переменной в определенном месте вашего кода.

Кроме того, PrestaShop определяет ppp() and ddd() Методы, которые являются соответственно алиасами p() и d().Они работают точно так же, но их часто легче искать и находить в огромном блоке кода.

Эти методы отладки не активируются по умолчанию. Чтобы активировать их, вы должны включить режим отладки, установив _PS_MODE_DEV_ в true (see above).

Включение  multistore режима

PrestaShop 1.6 может размещать более одного магазина в рамках одной установки программного обеспечения. Многие администраторы магазинов предпочитают включить эту функцию, и это может существенно повлиять на работу PrestaShop. Поэтому вы должны убедиться, что все, что вы кодируете для PrestaShop, работает как в одном, так и в multistore режиме. Включение multistore режима очень просто: перейдите на страницу общих настроек и установите для параметра «Включить multistore режим» значение «Да». Вы можете переключаться между режимами одного магазина и multistore режима — в режиме одного магазина используется только основное хранилище.

Вы можете узнать больше о модели с несколькими магазинами в Руководстве пользователя PrestaShop 1.6 : http://doc.prestashop.com/display/PS16/Managing+Multiple+Shops.

О файлах конфигурации

Существует три основных файла конфигурации, все из которых расположены в /config папке:

  • config.inc.php
  • defines.inc.php
  • smarty.config.inc.php

config.inc.php

Это основной файл конфигурации для PrestaShop. Вам не нужно прикасаться к чему-либо там.

defines.inc.php

Этот файл содержит константы PrestaShop.

Он также содержит расположение всех файлов и папок. Если вам нужно изменить свое местоположение, не забудьте сохранить исходный путь поблизости, например, в комментарии PHP, если вам нужно вернуться к нему позже.

В режиме разработки / тестирования вы должны убедиться, что все сообщения об ошибках отображаются:

  • Set define('_PS_MODE_DEV_', false); to true.

Напротив, в режиме продаж вы должны  скрыть сообщения об ошибках!

  • Make sure that define('_PS_MODE_DEV_', false); is set to false.

smarty.config.inc.php

Этот файл содержит все связанные с Smarty настройки.

Система кэширования Smarty всегда должна быть отключена, так как она несовместима с PrestaShop: включите $smarty->caching = false; .

$smarty->compile_check должна быть false в пром .режиме

$smarty->debugging Дает доступ к информации отладки Smarty при отображении страницы. Этот параметр более легко модифицируется на странице «Производительность» меню расширенных параметров: опция «Отладка консоли» позволяет выбирать между тем, чтобы никогда не отображать отладочную информацию Smarty, всегда отображая ее или отображая ее только при добавлении ?SMARTY_DEBUG К URL-адресу страницы, которую вы хотите проверить, что может быть очень полезно.

Когда в рабочем режиме, $smarty->force_compile установлено в false, это дает 30% ускорения к загрузке страниц

С другой стороны, при редактировании.tpl файла, вы должны очистить/tools/smarty/compile папку (за исключением index.php файла) чтобы ваши изменения были применены.

Обратите внимание, что этот параметр можно сделать непосредственно из бэк-офиса на странице «Производительность» в меню «Дополнительные параметры».

Обеспечение безопасности

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

Даже если они не могут инициировать ничего, кроме ошибок PHP, возможно, вы захотите предотвратить это.

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

Вот , что нужно добавить в файл.

header("Expires: Mon, 26 Jul 1997 05:00:00 GMT");
header("Last-Modified: ".gmdate("D, d M Y H:i:s")." GMT");
header("Cache-Control: no-store, no-cache, must-revalidate");
header("Cache-Control: post-check=0, pre-check=0"false);
header("Pragma: no-cache");
header("Location: ../");
exit;
 3