PrestaShop模块前置控制器

时间:2018-08-17 13:59:20

标签: php module controller prestashop-1.6

我的prestashop模块具有几个moduleFrontControllers,一切似乎都正常运行,但是:

  • PrestaShop> = v1.6.1.20(PHP> = 5.6.37)在我的本地dev_platform和生产测试平台上-一切正常。几个客户使用它也没有任何问题。 (示例前端控制器网址https://myprestashop/modulename/token-200响应)

  • PrestaShop <= v1.6.1.1(PHP <= 5.5.38),打开了友好的URL,打开了mod_rewrite-模块仅不起作用。 (示例网址与上面的网址相同,但未找到404响应,并且对于我的所有moduleFrontControllers都是相同的)

任何想法都可能导致这里的问题吗?是PrestaShop版本还是PHP版本错误?较旧的PrestaShops可能还有其他要求吗?我在这里没有猜测。

我的ModuleFrontController的示例:

class ModulenameTokenModuleFrontController extends AbstractRestController
{
    protected function processGetRequest()
    {
        try {
            //some_code
            $this->ajaxDie(json_encode($result));
        } catch (Exception $e) {
            $this->ajaxDie(json_decode($e->getMessage()));
        }
    }

    protected function processPostRequest()
    {
    }

    protected function processPutRequest()
    {
    }

    protected function processDeleteRequest()
    {
    }
}

abstract class AbstractRestController extends ModuleFrontController
{
    public function init()
    {
        parent::init();
        switch ($_SERVER['REQUEST_METHOD']) {
            case 'GET':
                $this->processGetRequest();
                break;
            case 'POST':
                $this->processPostRequest();
                break;
            case 'PATCH':
            case 'PUT':
                $this->processPutRequest();
                break;
            case 'DELETE':
                $this->processDeleteRequest();
                break;
            default:
        }
    }

    abstract protected function processGetRequest();

    abstract protected function processPostRequest();

    abstract protected function processPutRequest();

    abstract protected function processDeleteRequest();
}

0 个答案:

没有答案