From ba737729834db704cc563667adc302eb899d280e Mon Sep 17 00:00:00 2001 From: romanb Date: Mon, 2 Oct 2006 10:47:43 +0000 Subject: [PATCH] Fixes to the compiler. --- lib/Doctrine/Compiler.php | 336 +++++++++++++++++++------------------- tools/cli/bundle.php | 2 + 2 files changed, 169 insertions(+), 169 deletions(-) diff --git a/lib/Doctrine/Compiler.php b/lib/Doctrine/Compiler.php index 14ee1c144..4db8d5204 100644 --- a/lib/Doctrine/Compiler.php +++ b/lib/Doctrine/Compiler.php @@ -1,169 +1,167 @@ -. - */ - -/** - * Doctrine_Compiler - * This class can be used for compiling the entire Doctrine framework into a single file - * - * @package Doctrine - * @author Konsta Vesterinen - * @license LGPL - */ -class Doctrine_Compiler { - /** - * @var array $classes an array containing all runtime classes of Doctrine framework - */ - private static $classes = array( - "Doctrine", - "Configurable", - "Overloadable", - "Access", - - "Manager", - "Table", - "Table_Exception", - "Iterator", - "Exception", - - "Null", - "Identifier", - "Repository", - "Record", - "Record_Exception", - "Record_Iterator", - "Collection", - "Collection_Immediate", - "Validator", - "Validator_Exception", - "Validator_Notnull", - "Validator_Nospace", - "Validator_Range", - "Validator_Regexp", - "Validator_Country", - "Validator_Notblank", - "Validator_Creditcard", - "Validator_Date", - "Validator_Ip", - "Validator_Unique", - "Validator_Usstate", - "Validator_Htmlcolor", - "Validator_Email", - "Hydrate", - "Query", - "Query_Part", - "Query_From", - "Query_Orderby", - "Query_Groupby", - "Query_Condition", - "Query_Where", - "Query_Having", - "Query_Exception", - "RawSql", - "RawSql_Exception", - "EventListener_Interface", - "EventListener", - "EventListener_Empty", - "EventListener_Chain", - "Relation", - "Relation_ForeignKey", - "Relation_LocalKey", - "Relation_Association", - "DB", - "DBStatement", - "Connection", - "Connection_Exception", - "Connection_UnitOfWork", - "Connection_Transaction"); - - /** - * getRuntimeClasses - * returns an array containing all runtime classes of Doctrine framework - * - * @return array - */ - public static function getRuntimeClasses() { - return self::$classes; - } - /** - * method for making a single file of most used doctrine runtime components - * including the compiled file instead of multiple files (in worst - * cases dozens of files) can improve performance by an order of magnitude - * - * @throws Doctrine_Compiler_Exception if something went wrong during the compile operation - * @return void - */ - public static function compile($target = null) { - $path = Doctrine::getPath(); - - $classes = self::$classes; - - $ret = array(); - - foreach($classes as $class) { - if($class !== 'Doctrine') - $class = 'Doctrine_'.$class; - - $file = $path.DIRECTORY_SEPARATOR.str_replace("_",DIRECTORY_SEPARATOR,$class).".php"; - - echo "Adding $file" . PHP_EOL; - - if( ! file_exists($file)) - throw new Doctrine_Compiler_Exception("Couldn't compile $file. File $file does not exists."); - - Doctrine::autoload($class); - $refl = new ReflectionClass ( $class ); - $lines = file( $file ); - - $start = $refl -> getStartLine() - 1; - $end = $refl -> getEndLine(); - - $ret = array_merge($ret, - array_slice($lines, - $start, - ($end - $start))); - - } - - if ($target == null) { - $target = $path.DIRECTORY_SEPARATOR.'Doctrine.compiled.php'; - } - - // first write the 'compiled' data to a text file, so - // that we can use php_strip_whitespace (which only works on files) - $fp = @fopen($target, 'w'); - - if ($fp === false) - throw new Doctrine_Compiler_Exception("Couldn't write compiled data. Failed to open $target"); - - fwrite($fp, ". + */ + +/** + * Doctrine_Compiler + * This class can be used for compiling the entire Doctrine framework into a single file + * + * @package Doctrine + * @author Konsta Vesterinen + * @license LGPL + */ +class Doctrine_Compiler { + /** + * @var array $classes an array containing all runtime classes of Doctrine framework + */ + private static $classes = array( + "Doctrine", + "Configurable", + "Overloadable", + "Access", + + "Manager", + "Table", + "Table_Exception", + "Exception", + + "Null", + "Identifier", + "Record", + "Record_Exception", + "Record_Iterator", + "Collection", + "Collection_Immediate", + "Validator", + "Validator_Exception", + "Validator_Notnull", + "Validator_Nospace", + "Validator_Range", + "Validator_Regexp", + "Validator_Country", + "Validator_Notblank", + "Validator_Creditcard", + "Validator_Date", + "Validator_Ip", + "Validator_Unique", + "Validator_Usstate", + "Validator_Htmlcolor", + "Validator_Email", + "Hydrate", + "Query", + "Query_Part", + "Query_From", + "Query_Orderby", + "Query_Groupby", + "Query_Condition", + "Query_Where", + "Query_Having", + "Query_Exception", + "RawSql", + "RawSql_Exception", + "EventListener_Interface", + "EventListener", + "EventListener_Empty", + "EventListener_Chain", + "Relation", + "Relation_ForeignKey", + "Relation_LocalKey", + "Relation_Association", + "DB", + "DBStatement", + "Connection", + "Connection_Exception", + "Connection_UnitOfWork", + "Connection_Transaction"); + + /** + * getRuntimeClasses + * returns an array containing all runtime classes of Doctrine framework + * + * @return array + */ + public static function getRuntimeClasses() { + return self::$classes; + } + /** + * method for making a single file of most used doctrine runtime components + * including the compiled file instead of multiple files (in worst + * cases dozens of files) can improve performance by an order of magnitude + * + * @throws Doctrine_Compiler_Exception if something went wrong during the compile operation + * @return void + */ + public static function compile($target = null) { + $path = Doctrine::getPath(); + + $classes = self::$classes; + + $ret = array(); + + foreach($classes as $class) { + if($class !== 'Doctrine') + $class = 'Doctrine_'.$class; + + $file = $path.DIRECTORY_SEPARATOR.str_replace("_",DIRECTORY_SEPARATOR,$class).".php"; + + echo "Adding $file" . PHP_EOL; + + if( ! file_exists($file)) + throw new Doctrine_Compiler_Exception("Couldn't compile $file. File $file does not exists."); + + Doctrine::autoload($class); + $refl = new ReflectionClass ( $class ); + $lines = file( $file ); + + $start = $refl -> getStartLine() - 1; + $end = $refl -> getEndLine(); + + $ret = array_merge($ret, + array_slice($lines, + $start, + ($end - $start))); + + } + + if ($target == null) { + $target = $path.DIRECTORY_SEPARATOR.'Doctrine.compiled.php'; + } + + // first write the 'compiled' data to a text file, so + // that we can use php_strip_whitespace (which only works on files) + $fp = @fopen($target, 'w'); + + if ($fp === false) + throw new Doctrine_Compiler_Exception("Couldn't write compiled data. Failed to open $target"); + + fwrite($fp, "