0

在将文件从 WAMP 生产环境传输到 LAMP 登台/实时环境时,我遇到了问题。

在 Yii 中,类的名称必须与它们的文件名相同,以便它们可以自动加载。

问题是,如果文件名相同但大小写不同,则它适用于 Windows,但不适用于 linux。如何强制 WAMP 在文件名到达 LAMP 服务器之前检查文件名是否区分大小写?

4

1 回答 1

0

WAMP 与名称大小写无关。创建文件时需要注意。命名约定非常重要,因为在较大的项目中,如果您的类/文件名不一致,您可能会迷路。

还要检查您的文件传输工具,有时会有一些设置将文件重命名为小写等。

编辑:好吧,您可以使用CFileHelper::findFiles(Yii::getPathOfAlias('application'), array('fileTypes' => array('php'))), 然后将文件名与类名进行比较。要获取类名而不包含它,请使用此答案中的以下代码片段:

$fp = fopen($file, 'r');
$class = $buffer = '';
$i = 0;
while (!$class) {
    if (feof($fp)) break;

    $buffer .= fread($fp, 512);
    $tokens = token_get_all($buffer);

    if (strpos($buffer, '{') === false) continue;

    for (;$i<count($tokens);$i++) {
        if ($tokens[$i][0] === T_CLASS) {
            for ($j=$i+1;$j<count($tokens);$j++) {
                if ($tokens[$j] === '{') {
                    $class = $tokens[$i+2][1];
                }
            }
        }
    }
}

旁注:为避免错误,请使用像EclipseNetBeans这样的体面的 IDE ,并使用new PHP Class而不是new PHP File选项。

于 2013-08-23T10:51:26.697 回答