php - CakePHP 蛋糕 shell 错误 "A Notice: Uninitialized string offset: 0 in"

标签 php linux shell cakephp

我正在尝试运行我的蛋糕 shell 脚本,但输出如下所示:

-bash-3.2$ ../cake/console/cake audit
../cake/console/cake: line 30:/root/site/app: is a directory
Array
(
    [0] => /root/site/cake/console/cake.php
    [1] => -working
    [2] => 
    [3] => audit
)

Notice: Uninitialized string offset: 0 in /root/site/cake/console/cake.php on line 550

我做错了什么?以下是该文件的内容:

蛋糕.php

function __parseParams($params) {
    $count = count($params);
    for ($i = 0; $i < $count; $i++) {
        if (isset($params[$i])) {
            if ($params[$i]{0} === '-') {
                $key = substr($params[$i], 1);
                $this->params[$key] = true;
                unset($params[$i]);
                if (isset($params[++$i])) {
                    if ($params[$i]{0} !== '-') {//This is line 550
                        $this->params[$key] = str_replace('"', '', $params[$i]);
                        unset($params[$i]);
                    } else {
                        $i--;
                        $this->__parseParams($params);
                    }
                }
            } else {
                $this->args[] = $params[$i];
                unset($params[$i]);
            }

        }
    }
}

最佳答案

关注第一个错误

每当调试有问题的东西时,最好关注第一个错误,而不是它的后果。第一条错误消息是这一行:

line 30:/root/site/app: is a directory

它来自蛋糕 bash 脚本,在调用 php.ini 之前。最新 1.3 版本中的那一行 is blank ,因此您使用的 cake 的具体版本并不明显,但它不是最新的 1.3 版本。

上述错误的后果是调用的命令如下:

exec php -q "/root/site/cake/console/"cake.php -working "" "audit"
                                                        ^^

传递给 cake.php 的参数指定工作目录是一个空字符串,这是不正常的,后来会导致 undefined index 错误。

升级包治百病

最有可能的是,可以通过从您正在使用的同一发布周期的最新版本复制 cake.php 来解决此特定错误。

还可以考虑简单地将 CakePHP 本身升级到最新版本(从正在使用的相同主要版本),这可能会解决这个特定问题,以及其他问题 - 如果最近有安全版本,则尤其相关。

关于php - CakePHP 蛋糕 shell 错误 "A Notice: Uninitialized string offset: 0 in",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12657777/

相关文章:

php - 如何通过 Controller 调用模型中的方法? Zend 框架

php - 使用 php 和 mysql 将多个复选框值存储到数据库

linux - 什么时候处理信号以及为什么某些信息会卡住?

Java加载图像到缓冲区

c# - 从 C# 执行 Shell 脚本文件

python - 如何从命令行使用 JSBeautify?

javascript - 表排序后函数停止工作

php - 动态 SVG 图像生成问题

linux - 为什么这个用于匹配数字的 sed 命令不起作用?

linux - shell 脚本到 ls 并在 ls 结果上执行命令