2013-08-23 37 views
0

將文件從WAMP生產環境傳輸到LAMP分段/實時環境時遇到了問題。如何使wamp類名稱區分大小寫

在Yii中,類必須與它們的文件名命名相同,以便它們可以自動加載。

問題是,如果文件名是相同的,但與不同的情況下,它可以在Windows上,但不是在Linux上。如何強制WAMP在文件名到達LAMP服務器之前檢查區分大小寫?

回答

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]; 
       } 
      } 
     } 
    } 
} 

旁註:爲了避免錯誤,用體面的IDE像EclipseNetBeans和使用new PHP Class代替new PHP File選項。

+0

對不起,沒有很好的短語標題。從Windows到Linux的變化導致了這個問題。我一直在命名事物,但錯誤仍在蔓延。我只是想知道如何讓他們在Windows中開發時發出錯誤,因爲他們更容易修復,而不是在將文件傳輸到Linux盒子之後。 – SystemicPlural

相關問題