PHP_Codesniffer 说 "Undefined offset: 2 in /PHP_Codesniffer/src/Files/File.php on line 863"
PHP_Codesniffer says "Undefined offset: 2 in /PHP_Codesniffer/src/Files/File.php on line 863"
我正在为 Shopware 开发一个分析插件来扩展统计部分。一切都按预期工作,但是当我想为控制器提交代码时,出现了上述错误。
我似乎找不到问题,如果有任何意见,我将不胜感激。
<?php
class Shopware_Controllers_Backend_CustomStatistics extends Shopware_Controllers_Backend_ExtJs
{
public function getPreorderSubsAction() {
$connection = $this->container->get('dbal_connection');
$query = $connection->createQueryBuilder();
$query->select([
'ps.abo',
'smao.name',
'ROUND(SUM(ps.preordered * ps.unit_price),2) AS preorder_value'
])
->from('vw_PreorderSubs', 'ps')
->join('ps','salt_model_abo', 'smao','ps.abo = smao.id')
->groupBy('ps.abo');
$data = $query->execute()->fetchAll();
$this->View()->assign([
'success' => true,
'data' => $data,
'count' => count($data)
]);
}
}
来自codesniffer的对应代码:
// Check if this line is ignoring all message codes.
if (isset($this->tokenizer->ignoredLines[$line]['.all']) === true) {
return false;
}
// Work out which sniff generated the message.
$parts = explode('.', $code);
if ($parts[0] === 'Internal') {
// An internal message.
$listenerCode = Util\Common::getSniffCode($this->activeListener);
$sniffCode = $code;
$checkCodes = [$sniffCode];
} else {
if ($parts[0] !== $code) {
// The full message code has been passed in.
$sniffCode = $code;
$listenerCode = substr($sniffCode, 0, strrpos($sniffCode, '.'));
} else {
$listenerCode = Util\Common::getSniffCode($this->activeListener);
$sniffCode = $listenerCode.'.'.$code;
$parts = explode('.', $sniffCode);
}
$checkCodes = [
$sniffCode,
$parts[0].'.'.$parts[1].'.'.$parts[2],
$parts[0].'.'.$parts[1],
$parts[0],
];
}//end if
第 863 行是
$parts[0].'.'.$parts[1].'.'.$parts[2],
看来错位的 { 是错误的原因:
<?php
class Shopware_Controllers_Backend_CustomStatistics extends Shopware_Controllers_Backend_ExtJs {
/**
* calls the getPreorderSubsAction function that connects with the database and
* delivers the content for the new statistics table
*
* @return void
*/
public function getPreorderSubsAction() {
$connection = $this->container->get('dbal_connection');
$query = $connection->createQueryBuilder();
$query->select([
'ps.abo',
'smao.name',
'ROUND(SUM(ps.preordered * ps.unit_price),2) AS preorder_value'
])
->from('vw_PreorderSubs', 'ps')
->join('ps','salt_model_abo', 'smao','ps.abo = smao.id')
->groupBy('ps.abo');
$data = $query->execute()->fetchAll();
$this->View()->assign([
'success' => true,
'data' => $data,
'count' => count($data)
]);
}
}
现在有效。
我正在为 Shopware 开发一个分析插件来扩展统计部分。一切都按预期工作,但是当我想为控制器提交代码时,出现了上述错误。
我似乎找不到问题,如果有任何意见,我将不胜感激。
<?php
class Shopware_Controllers_Backend_CustomStatistics extends Shopware_Controllers_Backend_ExtJs
{
public function getPreorderSubsAction() {
$connection = $this->container->get('dbal_connection');
$query = $connection->createQueryBuilder();
$query->select([
'ps.abo',
'smao.name',
'ROUND(SUM(ps.preordered * ps.unit_price),2) AS preorder_value'
])
->from('vw_PreorderSubs', 'ps')
->join('ps','salt_model_abo', 'smao','ps.abo = smao.id')
->groupBy('ps.abo');
$data = $query->execute()->fetchAll();
$this->View()->assign([
'success' => true,
'data' => $data,
'count' => count($data)
]);
}
}
来自codesniffer的对应代码:
// Check if this line is ignoring all message codes.
if (isset($this->tokenizer->ignoredLines[$line]['.all']) === true) {
return false;
}
// Work out which sniff generated the message.
$parts = explode('.', $code);
if ($parts[0] === 'Internal') {
// An internal message.
$listenerCode = Util\Common::getSniffCode($this->activeListener);
$sniffCode = $code;
$checkCodes = [$sniffCode];
} else {
if ($parts[0] !== $code) {
// The full message code has been passed in.
$sniffCode = $code;
$listenerCode = substr($sniffCode, 0, strrpos($sniffCode, '.'));
} else {
$listenerCode = Util\Common::getSniffCode($this->activeListener);
$sniffCode = $listenerCode.'.'.$code;
$parts = explode('.', $sniffCode);
}
$checkCodes = [
$sniffCode,
$parts[0].'.'.$parts[1].'.'.$parts[2],
$parts[0].'.'.$parts[1],
$parts[0],
];
}//end if
第 863 行是
$parts[0].'.'.$parts[1].'.'.$parts[2],
看来错位的 { 是错误的原因:
<?php
class Shopware_Controllers_Backend_CustomStatistics extends Shopware_Controllers_Backend_ExtJs {
/**
* calls the getPreorderSubsAction function that connects with the database and
* delivers the content for the new statistics table
*
* @return void
*/
public function getPreorderSubsAction() {
$connection = $this->container->get('dbal_connection');
$query = $connection->createQueryBuilder();
$query->select([
'ps.abo',
'smao.name',
'ROUND(SUM(ps.preordered * ps.unit_price),2) AS preorder_value'
])
->from('vw_PreorderSubs', 'ps')
->join('ps','salt_model_abo', 'smao','ps.abo = smao.id')
->groupBy('ps.abo');
$data = $query->execute()->fetchAll();
$this->View()->assign([
'success' => true,
'data' => $data,
'count' => count($data)
]);
}
}
现在有效。