DOs и DON'Ts
DOs
- Добавьте ссылку на документацию, включенную в ваш ZIP-файл, и на вашу страницу поддержки на Addons в интерфейсе модуля.
- Следуйте нашим стандартам кодирования.
- Создавайте собственные таблицы базы данных, не изменяйте таблицы PrestaShop.
- Разрабатывайте ваш модуль на английском языке, а затем используйте систему переводов PrestaShop для перевода вашего модуля.
- Используйте константы PrestaShop для работы с директориями, как например:
_PS_CONFIG_DIR_ . '/config.inc.php'
. - Запросы SQL
CREATE TABLE
должны сопровождатьсяIF NOT EXISTS
, чтобы избежать ошибок SQL. - Запросы SQL
DROP TABLE
должны сопровождатьсяIF EXISTS
, чтобы избежать ошибок SQL.
DON'Ts
- Не вставляйте внешние ссылки в код вашего модуля или документацию модуля.
- Не указывайте свои личные контактные данные в вашем модуле или документации модуля.
- Не направляйте ваших клиентов на вашу собственную платформу поддержки/управления заявками.
- Не используйте внешние файлы ajax для выполнения ajax задач.
- Не работайте с директориями, используя код и переменные, такие как:
dirname(__FILE__).'/../../config/config.inc.php'
. - Не изменяйте структуру SQL таблиц PrestaShop.
- Не обфусцируйте ваш код, делая его нечитаемым для человека.
- Не используйте глобальные переменные, чтобы избежать конфликтов. Глобальные переменные также обычно считаются плохой практикой.
Несколько рекомендаций для ваших модулей
- Префиксируйте то, что принадлежит вам:
- модули
- параметры конфигурации (ps_configuration)
- переменные Smarty
- таблицы
- CSS классы
- Рассмотрите возможность удаления ваших конфигураций, таблиц, админских вкладок и всех других сущностей, уникальных для вашего продукта, при удалении модулей.
- Не следует использовать HTML код в вашем PHP коде. Вот альтернативы для разделения представления в вашем коде:
- Мы рекомендуем вам сделать интерфейс вашего модуля похожим на PrestaShop UI kit.
- Для модулей, совместимых с версиями PrestaShop до 1.7, минимальная совместимость должна быть PHP 5.3. Таким образом, вы сможете использовать, например, пространства имен.
- Если ваш модуль позволяет загрузку файлов, проверьте тип файла, чтобы избежать проблем с безопасностью. Вот больше информации о функции mime_content_type().
- Когда ваш модуль имеет формы, вы должны:
- показывать сообщение подтверждения, если все прошло успешно или сообщение об ошибке, если что-то пошло не так.
- убедиться, что информация, введенная клиентами, правильная. Если вы запрашиваете сумму, это должны быть только числа. Больше информации о классе Validate.
- Тщательно приводите ваши переменные и используйте pSQL/bqSQL в SQL-запросах, чтобы избежать инъекций (читайте Лучшие практики класса Db). Убедитесь, что ваши файлы должным образом защищены (особенно если ваш модуль использует cron, например), чтобы никто не мог их выполнить. Следовательно, вы должны использовать токен!