43 lines
		
	
	
		
			930 B
		
	
	
	
		
			PHP
		
	
	
			
		
		
	
	
			43 lines
		
	
	
		
			930 B
		
	
	
	
		
			PHP
		
	
	
<?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;
 | 
						|
    }
 | 
						|
}
 |