如何使wamp类名称区分大小写

时间:2013-08-23 06:50:12

标签: php yii wamp

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

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

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

1 个答案:

答案 0 :(得分:0)

WAMP与姓名案件无关。 创建文件时需要注意。 命名约定非常重要,因为在较大的项目中,如果类/文件名不一致,则可能会丢失。

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

编辑:您可以使用CFileHelper::findFiles(Yii::getPathOfAlias('application'), array('fileTypes' => array('php'))),然后将文件名与类名进行比较。要在不包含类名的情况下获取类名,请使用this answer中的以下代码段:

$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选项。