Я изучаю основы разработки модулей в Prestashop (1.7.4.3). У меня проблема с установкой нового модуля в систему.
Это мой файл для нового модуля, расположенный по адресу: modules/mymodule/mymodule.php
:
<?php
if (!defined('_PS_VERSION_'))
exit;
class MyModule extends Module
{
public function __construct()
{
$this->name = 'mymodule';
$this->tab = 'front_office_features';
$this->version = '1.0.0';
$this->author = 'Firstname Lastname';
$this->need_instance = 0;
$this->ps_versions_compliancy = [
'min' => '1.6',
'max' => _PS_VERSION_
];
$this->bootstrap = true;
parent::__construct();
$this->displayName = $this->l('My module');
$this->description = $this->l('Description of my module.');
$this->confirmUninstall = $this->l('Are you sure you want to uninstall?');
// parent::install();
// this code is executed
if (!Configuration::get('MYMODULE_NAME')) {
$this->warning = $this->l('No name provided');
}
}
public function install()
{
// die('install method');
// this code is never executed
return parent::install();
}
}
Стандартный шаблон модуля, как видите. Когда я захожу на вкладку модулей в BackOffice, я не вижу свой модуль в списке доступных модулей.
Во время отладки я попытался поместить вызов функции установки в тело __constructor (), и это сработало. Я не вижу причины, по которой __construct () выполняется, а install () - нет.
Разрешения для папки модулей установлены на 777. Prestashop устанавливается в общую папку Virtual Box гостя Windows / Ubuntu guest.
Редактировать : Я установил Prestashop 1.6.1.22 (в той же среде, что и PS 1.7), и вышеупомянутый модуль работал как прелесть с самого начала. Похоже, проблема с PS 1.7