You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
42 lines
930 B
42 lines
930 B
<?php |
|
|
|
/* |
|
Copyright (c) 2009 hamcrest.org |
|
*/ |
|
|
|
class GlobalFunctionFile extends FactoryFile |
|
{ |
|
/** |
|
* @var string containing function definitions |
|
*/ |
|
private $functions; |
|
|
|
public function __construct($file) |
|
{ |
|
parent::__construct($file, ' '); |
|
$this->functions = ''; |
|
} |
|
|
|
public function addCall(FactoryCall $call) |
|
{ |
|
$this->functions .= "\n" . $this->generateFactoryCall($call); |
|
} |
|
|
|
public function build() |
|
{ |
|
$this->addFileHeader(); |
|
$this->addPart('functions_imports'); |
|
$this->addPart('functions_header'); |
|
$this->addCode($this->functions); |
|
$this->addPart('functions_footer'); |
|
} |
|
|
|
public function generateFactoryCall(FactoryCall $call) |
|
{ |
|
$code = "if (!function_exists('{$call->getName()}')) {\n"; |
|
$code.= parent::generateFactoryCall($call); |
|
$code.= "}\n"; |
|
|
|
return $code; |
|
} |
|
}
|
|
|