我正在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()的原因。
modules文件夹上的权限设置为777。Prestashop安装在Windows主机/ Ubuntu来宾Virtual Box共享文件夹中。
编辑:我在与PS 1.7相同的环境中安装了Prestashop 1.6.1.22,上面提到的模块从一开始就很吸引人。似乎是PS 1.7的问题