mirror of
https://github.com/bdnugget/php-src.git
synced 2026-11-07 17:27:30 +00:00
This patch adds missing newlines, trims multiple redundant final newlines into a single one, and trims redundant leading newlines. According to POSIX, a line is a sequence of zero or more non-' <newline>' characters plus a terminating '<newline>' character. [1] Files should normally have at least one final newline character. C89 [2] and later standards [3] mention a final newline: "A source file that is not empty shall end in a new-line character, which shall not be immediately preceded by a backslash character." Although it is not mandatory for all files to have a final newline fixed, a more consistent and homogeneous approach brings less of commit differences issues and a better development experience in certain text editors and IDEs. [1] http://pubs.opengroup.org/onlinepubs/9699919799/basedefs/V1_chap03.html#tag_03_206 [2] https://port70.net/~nsz/c/c89/c89-draft.html#2.1.1.2 [3] https://port70.net/~nsz/c/c99/n1256.html#5.1.1.2
140 lines
3.1 KiB
PHP
140 lines
3.1 KiB
PHP
<?php
|
|
|
|
/**
|
|
* Class for method under test (see gtFunction for non-OO tests)
|
|
*/
|
|
class gtMethod extends gtTestSubject {
|
|
|
|
private $className;
|
|
private $methodName;
|
|
private $constructorArgumentNames;
|
|
private $constructorArgumentList = '';
|
|
private $constructorInitialisationStatements;
|
|
|
|
|
|
|
|
/**
|
|
* Construct gtMethod object from the class and method names
|
|
*
|
|
* @param string $className
|
|
* @param string $methodName
|
|
*/
|
|
public function __construct($className, $methodName) {
|
|
$this->className = $className;
|
|
$this->methodName = $methodName;
|
|
}
|
|
|
|
|
|
/**
|
|
* Set the names of the class constructor arguments. Take only mandatory argument names.
|
|
*
|
|
*/
|
|
public function setConstructorArgumentNames() {
|
|
$reflectionClass = new ReflectionClass($this->className);
|
|
$constructor = $reflectionClass->getConstructor();
|
|
foreach($constructor->getParameters() as $i => $param) {
|
|
//if(!$param->isOptional()) {
|
|
$this->constructorArgumentNames[] = $param->getName();
|
|
//}
|
|
}
|
|
}
|
|
|
|
|
|
/**
|
|
* Set the names of the mandatory and optional arguments to the method
|
|
*
|
|
*/
|
|
public function setArgumentNames() {
|
|
|
|
$methodClass = new reflectionMethod($this->className, $this->methodName);
|
|
$parameters = $methodClass->getParameters();
|
|
|
|
foreach ($methodClass->getParameters() as $i => $param) {
|
|
if($param->isOptional()) {
|
|
$this->optionalArgumentNames[] = $param->getName();
|
|
} else {
|
|
$this->mandatoryArgumentNames[] = $param->getName();
|
|
}
|
|
|
|
}
|
|
}
|
|
|
|
|
|
/**
|
|
* Return the list of constructor argument names
|
|
*
|
|
* @return array
|
|
*/
|
|
public function getConstructorArgumentNames() {
|
|
return $this->constructorArgumentNames;
|
|
}
|
|
|
|
/**
|
|
* Return the name of the method
|
|
*
|
|
* @return string
|
|
*/
|
|
public function getName() {
|
|
return $this->methodName;
|
|
}
|
|
|
|
|
|
/**
|
|
* Return the name of the class
|
|
*
|
|
* @return string
|
|
*/
|
|
public function getClassName() {
|
|
return $this->className;
|
|
}
|
|
|
|
/**
|
|
* Set the list of arguments to be passed to the constructor
|
|
*
|
|
*/
|
|
public function setConstructorArgumentList() {
|
|
if(count ($this->constructorArgumentNames) > 0) {
|
|
|
|
for( $i = 0; $i < count( $this->constructorArgumentNames ); $i++) {
|
|
$this->constructorArgumentList .= "\$".$this->constructorArgumentNames[$i].", ";
|
|
}
|
|
$this->constructorArgumentList = substr($this->constructorArgumentList, 0, -2);
|
|
}
|
|
}
|
|
|
|
|
|
/**
|
|
* Return the list of the arguments to be passed to the constructor
|
|
*
|
|
* @return string
|
|
*/
|
|
public function getConstructorArgumentList() {
|
|
return $this->constructorArgumentList;
|
|
}
|
|
|
|
|
|
/**
|
|
* Set up the source statements that initialise constructor arguments;
|
|
*
|
|
*/
|
|
public function setConstructorInitStatements() {
|
|
if(count ($this->constructorArgumentNames) > 0) {
|
|
foreach( $this->constructorArgumentNames as $name) {
|
|
$this->constructorInitialisationStatements[] = "\$".$name." = ";
|
|
}
|
|
}
|
|
|
|
}
|
|
|
|
|
|
/**
|
|
* Return the constructor initialisation statements
|
|
*
|
|
* @return array
|
|
*/
|
|
public function getConstructorInitStatements() {
|
|
return $this->constructorInitialisationStatements;
|
|
}
|
|
}
|
|
?>
|