PHP PHP dosyası sözdizimi kontrol etmek mümkün mü?

4 Cevap php

I load dynamically PHP class files with autoload. Ve those files could be missing or corrupted by some reason.

Uygulama mantığı ele verebilir böylece Autoload başarıyla eksik dosyaları rapor edecektir. Hata günlüğü: bu dosyalar bozuk Ama eğer, o zaman bütün işleme kullanıcı ve "sözdizimi hatası PHP Ayrıştırma hatası" için boş bir ekran ile durdurur.

PHP kodu PHP dosyası sözdizimi kontrol etmek mümkün mü?

Ben buraya baktım: http://us.php.net/manual/en/function.php-check-syntax.php - bu önerilmemektedir.

Ve

exec("php -l $file");

yanlış bir yol olarak görünüyor (http://bugs.php.net/bug.php?id=46339)

Düşünceler?

4 Cevap

Gerçekten yürütme zaman olmayan, doğru PHP dosyaları denetlemek için denemek gerekir: bu uygulama tepki süresi öldüreceğim!

"Daha iyi bir yol" Eğer bir PHP komut dosyasını değiştirerek bittiğinde komut satırından php-l kullanmak olacaktır; Eğer birini kullanıyorsanız, ya da inşa sürecinin içinde yer alıyor; veya SVN kullanıyorsanız eğer bir SVN pre-commit kanca gibi takın ve SVN hooks tanımlayabilirsiniz.

Benim düşünceme göre, hemen hemen herhangi bir çözüm yürütme zaman kendinizi kontrol daha iyi olurdu!


Considering errors like the ones you want to avoid will probably won't happen often, it is probably better to... just let them happen.
ONly thing is : activate logs, and monitor them, the be able to detect quickly when tere is a problem :-)


Of course, this doesn't prevent you from dealing with the case of missing files ; but that's a different matter...

Another way you can make one php file in your root directory called checkSyntax.php

<?php
for($i=1; $i < count($argv); $i++){
        $temp = "php -l " . $argv[$i];
        $output = exec($temp);
        echo "\n$output";
}
?>

now, open your bashrc file to make a shortcut to run this file. add below line to run checkSyntax.php

alias checkSyntaxErrors='php /root/checkSyntax.php'

ve şimdi kaynak dizin st svn yapmak gidiniz.

size dosyaların listesini gösterir, şimdi kolayca komutunu çalıştırın.

checkSyntaxErrors file1.php file2.php .......

Bu argüman olarak geçen tüm dosyaları kontrol edecek.

zevk :)

Kısacası: ben bunu yapmak için bir yol görmek, ancak yeterli olabilir bir fikir olamaz.

Orada günlük izleme programları veya ayrıştırma hataları ile dosyaları için standart araçlar yoluyla günlükleri filtre edebilirsiniz. Bir dosya görünüyorsa, bu listeye karşı yük önce bir kara listeye cani dosya ve otomatik yükleyici kontroller koymak.

Bu yöntemle, ilk anda boş bir ekran hizmet edeceğiz (çıkış raporlama assumig hata üretim sunucularında açık olan), ancak ikinci hatalı bileşeni olmadan bir sayfa olacak.

Otomatik yükleyici olarak her zaman (diğer yollar uygulama tutarsız bir durumda olabilir) zorunlu dersleri yüklemeyi denemek için bir liste veya isimlendirme şeması olmalıdır

Eğer dinamik yürütme konum PHP yüklemek ve geçerli olduğunu exec ("php-l $ fileName") savunmak nerede Ayrıca, bazı birim test yapabiliriz. Eğer uygun değişkenler ile üreten, testlerde bir kez doğrulamak mümkün olacak ve güven makul bir düzeyde olurdu yaptım eğer PHP iyiydi.