Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- <?php
- /**
- * Recurses each directory and runs PHP's lint function against each file
- * to test for parse errors.
- *
- * @param string $dir the directory you would like to start from
- * @return array the files that did not pass the test
- */
- function lint( $dir = 'C:\dev\\' )
- {
- static $failed = array();
- foreach ( new RecursiveDirectoryIterator($dir, FilesystemIterator::SKIP_DOTS) as $path => $objSplFileInfo )
- {
- // recurse if dir
- if ( $objSplFileInfo->isDir() )
- {
- if ( stristr( $objSplFileInfo->getFileName(), '.svn' ) !== false )
- {
- continue;
- }
- lint( $objSplFileInfo->getPathName() );
- continue;
- }
- // are there any non-dirs that aren't files?
- if ( !$objSplFileInfo->isFile() )
- {
- throw new UnexpectedValueException( 'Not a dir and not a file?' );
- }
- // skip non-php files
- if ( preg_match( '#\.php$#', $objSplFileInfo->getFileName() ) !== 1 )
- {
- continue;
- }
- // perform the lint check
- $result = exec( 'php -l '. escapeshellarg($objSplFileInfo) );
- if ( preg_match( '#^No syntax errors detected in#', $result ) !== 1 )
- {
- $failed[ $objSplFileInfo->getPathName() ] = $result;
- echo $failed, ' = ', $result;
- }
- }
- return $failed;
- }
- ?>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement