radarrplexorganizrnginxsonarrdashboardserverhomepagesabnzbdheimdallembycouchpotatonzbgetbookmarkapplication-dashboardmuximuxlandingpagestartpagelandinghtpc
		
		
		
		
			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.
		
		
		
		
		
			
		
			
				
					
					
						
							69 lines
						
					
					
						
							1.7 KiB
						
					
					
				
			
		
		
		
			
			
			
				
					
				
				
					
				
			
		
		
	
	
							69 lines
						
					
					
						
							1.7 KiB
						
					
					
				
								<?php
							 | 
						|
								
							 | 
						|
								/*
							 | 
						|
								 Copyright (c) 2009 hamcrest.org
							 | 
						|
								 */
							 | 
						|
								
							 | 
						|
								class FactoryParameter
							 | 
						|
								{
							 | 
						|
								    /**
							 | 
						|
								     * @var FactoryMethod
							 | 
						|
								     */
							 | 
						|
								    private $method;
							 | 
						|
								
							 | 
						|
								    /**
							 | 
						|
								     * @var ReflectionParameter
							 | 
						|
								     */
							 | 
						|
								    private $reflector;
							 | 
						|
								
							 | 
						|
								    public function __construct(FactoryMethod $method, ReflectionParameter $reflector)
							 | 
						|
								    {
							 | 
						|
								        $this->method = $method;
							 | 
						|
								        $this->reflector = $reflector;
							 | 
						|
								    }
							 | 
						|
								
							 | 
						|
								    public function getDeclaration()
							 | 
						|
								    {
							 | 
						|
								        if ($this->reflector->isArray()) {
							 | 
						|
								            $code = 'array ';
							 | 
						|
								        } else {
							 | 
						|
								            $class = $this->reflector->getClass();
							 | 
						|
								            if ($class !== null) {
							 | 
						|
								                $code = '\\' . $class->name . ' ';
							 | 
						|
								            } else {
							 | 
						|
								                $code = '';
							 | 
						|
								            }
							 | 
						|
								        }
							 | 
						|
								        $code .= '$' . $this->reflector->name;
							 | 
						|
								        if ($this->reflector->isOptional()) {
							 | 
						|
								            $default = $this->reflector->getDefaultValue();
							 | 
						|
								            if (is_null($default)) {
							 | 
						|
								                $default = 'null';
							 | 
						|
								            } elseif (is_bool($default)) {
							 | 
						|
								                $default = $default ? 'true' : 'false';
							 | 
						|
								            } elseif (is_string($default)) {
							 | 
						|
								                $default = "'" . $default . "'";
							 | 
						|
								            } elseif (is_numeric($default)) {
							 | 
						|
								                $default = strval($default);
							 | 
						|
								            } elseif (is_array($default)) {
							 | 
						|
								                $default = 'array()';
							 | 
						|
								            } else {
							 | 
						|
								                echo 'Warning: unknown default type for ' . $this->getMethod()->getFullName() . PHP_EOL;
							 | 
						|
								                var_dump($default);
							 | 
						|
								                $default = 'null';
							 | 
						|
								            }
							 | 
						|
								            $code .= ' = ' . $default;
							 | 
						|
								        }
							 | 
						|
								        return $code;
							 | 
						|
								    }
							 | 
						|
								
							 | 
						|
								    public function getInvocation()
							 | 
						|
								    {
							 | 
						|
								        return '$' . $this->reflector->name;
							 | 
						|
								    }
							 | 
						|
								
							 | 
						|
								    public function getMethod()
							 | 
						|
								    {
							 | 
						|
								        return $this->method;
							 | 
						|
								    }
							 | 
						|
								}
							 | 
						|
								
							 |