From 4864553acaf5ab6843d84da38913f1a277ee1818 Mon Sep 17 00:00:00 2001 From: Sam Minnee Date: Tue, 30 Mar 2010 04:48:06 +0000 Subject: [PATCH] BUGFIX: Recover if a manifestClassParse file doesn't have the necessary content. git-svn-id: svn://svn.silverstripe.com/silverstripe/open/modules/sapphire/branches/2.4@101866 467b73ca-7a2a-4603-9d3b-597d59a354a9 --- core/ManifestBuilder.php | 21 ++++++++++++++------- 1 file changed, 14 insertions(+), 7 deletions(-) diff --git a/core/ManifestBuilder.php b/core/ManifestBuilder.php index e63c2698f..d692cffcd 100644 --- a/core/ManifestBuilder.php +++ b/core/ManifestBuilder.php @@ -418,10 +418,20 @@ class ManifestBuilder { // were upgrading their sites $fileMD5 = md5($file); $parseCacheFile = TEMP_FOLDER . "/manifestClassParse-" . str_replace(array("/", ":", "\\", "."), "_", basename($filename)) . "-$fileMD5"; - if(!file_exists($parseCacheFile)) { + if(file_exists($parseCacheFile)) { + include($parseCacheFile); + // Check for a bad cache file + if(!isset($classes) || !isset($interfaces) || !is_array($classes) || !is_array($interfaces)) { + unset($classes); + unset($interfaces); + } + } + + // Either the parseCacheFile doesn't exist, or its bad + if(!isset($classes)) { $tokens = token_get_all($file); - $classes = self::getClassDefParser()->findAll($tokens); - $interfaces = self::getInterfaceDefParser()->findAll($tokens); + $classes = (array)self::getClassDefParser()->findAll($tokens); + $interfaces = (array)self::getInterfaceDefParser()->findAll($tokens); $cacheContent = '