-1

每当我向 Magento 添加扩展时,都会发生以下错误:

致命错误:第 39 行的 C:\xampp1\htdocs\magento\app\code\community\Bricks\Xmlbrowser\Helper\Data.php 中删除了调用时传递引用

我在用Magento 1.8.00-alpha1

public function searchFiles($dir, $str, $filesList = array()) {
    $dir = rtrim($dir, '\\\/').DS;
    $files = scandir($dir);
    foreach ($files as $file) {
        if (is_dir($dir.$file)) {
            if (($file != '.') && ($file != '..')) {
                $this->searchFiles($dir.$file, $str, &$filesList);
            }
        }
        else {
            $needToSearch = true;
            if ($this->_file_types && is_array($this->_file_types)) {
                $needToSearch = in_array(strtolower(pathinfo($file, PATHINFO_EXTENSION)), $this->_file_types);
            }
            if ($needToSearch) {
                $fileContent = file_get_contents($dir.$file);
                if ($needToSearch) {
                    $fileContent = file_get_contents($dir.$file);
                    $result = $this->_case_sensitive? strpos($fileContent, $str) : stripos($fileContent, $str);
                    if ($result !== FALSE) {
                        $filesList[] = $dir.$file;
                    }
                }
            }
        }
        return $filesList;
    }
}
4

1 回答 1

0

一、改变

$this->searchFiles($dir.$file, $str, &$filesList); // This line is 39 

$this->searchFiles($dir.$file, $str, $filesList); // This line is 39 

二、改变

public function searchFiles($dir, $str, $filesList = array()) {

public function searchFiles($dir, $str, &$filesList = array()) {

三、改方法内第6行searchFiles()

$this->searchFiles($dir.$file, $str, &$filesList);

$this->searchFiles($dir.$file, $str, $filesList);

这应该可以解决您在此处询问的特定致命错误。

但...

...即使已修复,很可能只会弹出下一个致命错误。

就像我在评论中写的那样,我的猜测是您正在运行 PHP 5.4 系统,但使用兼容 PHP 5.4 的 Magento 3rd 方扩展。

如果您的目标系统必须安装 PHP 5.4,我建议您联系扩展的作者并索要其扩展的 5.4 兼容版本或补丁以使其与 5.4 兼容。当然,您也可以尝试自己修复它们,或者聘请开发人员来完成。

如果 PHP 5.4 不是强制性的,我可能会检查将系统降级到 PHP 5.3.latest 是否不是更好/更便宜/更省时的选择。

于 2013-09-25T15:08:59.467 回答