Magento 2 模板文件夹中的 PHP 代码给出语法错误
Posted
技术标签:
【中文标题】Magento 2 模板文件夹中的 PHP 代码给出语法错误【英文标题】:PHP codes in Magento 2 template folder is giving syntax error 【发布时间】:2021-03-03 23:29:10 【问题描述】:我试图设置一个 magento 模板,但我遇到了语法错误。原始 magento 模板一切都很好,module.php 的语法没问题,所以我将我的新模板文件夹上传到 xampp/htdocs/magento2/目录。
所以当我尝试清理缓存时,我遇到了这个错误。
cmd截图:
所以我比较了我的每个 module.php 文件,我找不到任何语法差异
所以我分享了损坏的代码
Line:82 unexpected ')' error
有人知道错在哪里吗?
/**
* Copyright © Magento, Inc. All rights reserved.
* See COPYING.txt for license details.
*/
namespace Magento\Setup;
use Laminas\EventManager\EventInterface;
use Laminas\EventManager\EventManager;
use Laminas\ModuleManager\Feature\BootstrapListenerInterface;
use Laminas\ModuleManager\Feature\ConfigProviderInterface;
use Laminas\Mvc\ModuleRouteListener;
use Laminas\Mvc\MvcEvent;
use Laminas\Stdlib\DispatchableInterface;
use Magento\Framework\App\Response\HeaderProvider\XssProtection;
use Magento\Setup\Mvc\View\Http\InjectTemplateListener;
/**
* Laminas module declaration
*/
class Module implements
BootstrapListenerInterface,
ConfigProviderInterface
/**
* @inheritDoc
*/
public function onBootstrap(EventInterface $e)
/** @var MvcEvent $e */
/** @var \Laminas\Mvc\Application $application */
$application = $e->getApplication();
/** @var EventManager $events */
$events = $application->getEventManager();
/** @var \Laminas\EventManager\SharedEventManager $sharedEvents */
$sharedEvents = $events->getSharedManager();
$moduleRouteListener = new ModuleRouteListener();
$moduleRouteListener->attach($events);
// Override Laminas\Mvc\View\Http\InjectTemplateListener
// to process templates by Vendor/Module
$injectTemplateListener = new InjectTemplateListener();
$sharedEvents->attach(
DispatchableInterface::class,
MvcEvent::EVENT_DISPATCH,
[$injectTemplateListener, 'injectTemplate'],
-89
);
$response = $e->getResponse();
if ($response instanceof \Laminas\Http\Response)
$headers = $response->getHeaders();
if ($headers)
$headers->addHeaderLine('Cache-Control', 'no-cache, no-store, must-revalidate');
$headers->addHeaderLine('Pragma', 'no-cache');
$headers->addHeaderLine('Expires', '1970-01-01');
$headers->addHeaderLine('X-Frame-Options: SAMEORIGIN');
$headers->addHeaderLine('X-Content-Type-Options: nosniff');
/** @var \Laminas\Http\Header\UserAgent $userAgentHeader */
$userAgentHeader = $e->getRequest()->getHeader('User-Agent');
$xssHeaderValue = $userAgentHeader && $userAgentHeader->getFieldValue()
&& strpos($userAgentHeader->getFieldValue(), XssProtection::IE_8_USER_AGENT) === false
? XssProtection::HEADER_ENABLED : XssProtection::HEADER_DISABLED;
$headers->addHeaderLine('X-XSS-Protection: ' . $xssHeaderValue);
/**
* @inheritDoc
*/
public function getConfig()
// phpcs:disable
$result = array_merge_recursive(
include __DIR__ . '/../../../config/module.config.php',
include __DIR__ . '/../../../config/router.config.php',
include __DIR__ . '/../../../config/di.config.php',
include __DIR__ . '/../../../config/states.install.config.php',
include __DIR__ . '/../../../config/languages.config.php',
); //here the fault
// phpcs:enable
return $result;
```
【问题讨论】:
【参考方案1】:您使用的是哪个 Magento 和 PHP 版本? 请检查 Magento 版本支持的 PHP 版本。
【讨论】:
magento 2.3, php 7.2以上是关于Magento 2 模板文件夹中的 PHP 代码给出语法错误的主要内容,如果未能解决你的问题,请参考以下文章
PHP magento将CMS块插入到模板(.phtml)文件中,无需进行任何布局修改
sh 用于关闭magento 2模板和阻止提示的Shell脚本,将文件添加到流浪者中的〜/ bin并将权限设置为755