Changeset 14

User picture

Author: Thiago Mata

(2009/03/13 03:05) Almost 3 years ago

code reflection auto load change and some bug fixed

Affected files

Updated components/codeReflection/_start.php Download diff

1314
1
<?php
1
<?php
2
3
CorujaComponentsManager::import("extendedReflection");
4
5
require_once( "CodeReflectionParameter.class.php" );
2
require_once( "CodeReflectionParameter.class.php" );
6
require_once( "CodeReflectionProperty.class.php" );
3
require_once( "CodeReflectionProperty.class.php" );
7
require_once( "CodeReflectionFunction.class.php" );
4
require_once( "CodeReflectionFunction.class.php" );
8
require_once( "CodeReflectionMethod.class.php" );
5
require_once( "CodeReflectionMethod.class.php" );
9
require_once( "CodeReflectionClass.class.php" );
6
require_once( "CodeReflectionClass.class.php" );
10
7
?>
11
?>

Updated components/codeReflection/CodeReflectionClass.class.php Download diff

1314
5
	{
5
	{
6
		return array_pop( explode( "::" , parent::getName() ) );
6
		return array_pop( explode( "::" , parent::getName() ) );
7
	}
7
	}
8
	
8
9
	public function getNamespace()
9
	public function getNamespace()
10
	{
10
	{
11
		return array_shift( explode( "::" , parent::getName() ) );
11
		return array_shift( explode( "::" , parent::getName() ) );
12
	}
12
	}
13
	
13
14
	public function createClassDefinitionCode()
14
	public function createClassDefinitionCode()
15
	{
15
	{
16
		$strCode = "";
16
		$strCode = "";
17
		$strCode .= " class " . $this->getClassName();
17
		$strCode .= " class " . $this->getClassName();
18
		if( $this->getParentClass() != "" )
18
		if( $this->getParentClass() != "" )
19
		{
19
		{
20
			$strCode .= " extends " . $this->getParentClass()->getClassName(); 
20
			$strCode .= " extends " . $this->getParentClass()->getClassName();
21
		}
21
		}
22
		if( sizeof( $this->getInterfaceNames() ) > 0)
22
		if( sizeof( $this->getInterfaceNames() ) > 0)
23
		{
23
		{
...
...
25
			$arrInterfaces = $this->getInterfaces();
25
			$arrInterfaces = $this->getInterfaces();
26
			foreach(  $arrInterfaces as $objInterfaces )
26
			foreach(  $arrInterfaces as $objInterfaces )
27
			{
27
			{
28
				$arrInterfacesClassName[] = $objInterfaces->getClassName();	
28
				$arrInterfacesClassName[] = $objInterfaces->getClassName();
29
			}
29
			}
30
			$strCode .= " implements " . implode( ", " , $arrInterfacesClassName );
30
			$strCode .= " implements " . implode( ", " , $arrInterfacesClassName );
31
		}
31
		}
...
...
44
		}
44
		}
45
		return $strCode;
45
		return $strCode;
46
	}
46
	}
47
	
47
48
	public function createMethodsDefinitionCode()
48
	public function createMethodsDefinitionCode()
49
	{
49
	{
50
		$strCode = "";
50
		$strCode = "";
...
...
56
		}
56
		}
57
		return $strCode;
57
		return $strCode;
58
	}
58
	}
59
	
59
60
	public function getCode()
60
	public function getCode()
61
	{
61
	{
62
		$strCode = "";
62
		$strCode = "";
...
...
67
		$strCode .= "\n}\n";
67
		$strCode .= "\n}\n";
68
		return $strCode;
68
		return $strCode;
69
	}
69
	}
70
	
70
71
	protected function createExtendedReflectionClass( ReflectionClass $objOriginalReflectionClass )
71
	protected function createExtendedReflectionClass( ReflectionClass $objOriginalReflectionClass )
72
	{
72
	{
73
		return new CodeReflectionClass( $objOriginalReflectionClass->getName() );
73
		return new CodeReflectionClass( $objOriginalReflectionClass->getName() );
74
	}
74
	}
75
	
75
76
    protected function createExtendedReflectionProperty( ReflectionProperty $objOriginalReflectionProperty )
76
    protected function createExtendedReflectionProperty( ReflectionProperty $objOriginalReflectionProperty )
77
	{
77
	{
78
		return new CodeReflectionProperty( $this->getName() , $objOriginalReflectionProperty->getName() );
78
		return new CodeReflectionProperty( $this->getName() , $objOriginalReflectionProperty->getName() );
79
	}
79
	}
80
	
80
81
	protected function createExtendedReflectionMethod( ReflectionMethod $objOriginalReflectionMethod )
81
	protected function createExtendedReflectionMethod( ReflectionMethod $objOriginalReflectionMethod )
82
	{
82
	{
83
		return new CodeReflectionMethod( $this->getName() , $objOriginalReflectionMethod->getName() );
83
		return new CodeReflectionMethod( $this->getName() , $objOriginalReflectionMethod->getName() );

Updated components/codeReflection/CodeReflectionFunction.class.php Download diff

1314
5
	{
5
	{
6
		return new CodeReflectionParameter( $this->getDeclaringClass()->getName() , $this->getName() , $objReflectionParameter->getName() );
6
		return new CodeReflectionParameter( $this->getDeclaringClass()->getName() , $this->getName() , $objReflectionParameter->getName() );
7
	}
7
	}
8
    
8
9
}
9
}
10
?>
10
?>

Updated components/codeReflection/CodeReflectionMethod.class.php Download diff

1314
11
11
12
		return $strCode;
12
		return $strCode;
13
	}
13
	}
14
	
14
15
	protected function createExtendedReflectionClass( ReflectionClass $objOriginalReflectionClass )
15
	protected function createExtendedReflectionClass( ReflectionClass $objOriginalReflectionClass )
16
	{
16
	{
17
		return new CodeReflectionClass( $objOriginalReflectionClass->getName() );
17
		return new CodeReflectionClass( $objOriginalReflectionClass->getName() );
18
	}
18
	}
19
	
19
20
	protected function createExtendedReflectionParameter( ReflectionParameter $objReflectionParameter )
20
	protected function createExtendedReflectionParameter( ReflectionParameter $objReflectionParameter )
21
	{
21
	{
22
		return new CodeReflectionParameter( Array( $this->getDeclaringClass()->getName() , $this->getName() ) , $objReflectionParameter->getName() );
22
		return new CodeReflectionParameter( Array( $this->getDeclaringClass()->getName() , $this->getName() ) , $objReflectionParameter->getName() );
23
	}
23
	}
24
	
24
25
	protected function createModifiersCode()
25
	protected function createModifiersCode()
26
	{
26
	{
27
		$strCode = "";
27
		$strCode = "";
...
...
47
		}
47
		}
48
		return $strCode;
48
		return $strCode;
49
	}
49
	}
50
	
50
51
	protected function createParametersCode()
51
	protected function createParametersCode()
52
	{
52
	{
53
		$strCode = "";
53
		$strCode = "";
54
		$arrParameters = $this->getParameters();
54
		$arrParameters = $this->getParameters();
55
		$arrParametersName = array();
55
		$arrParametersName = array();
56
		
56
57
		foreach(  $arrParameters as $objParameter )
57
		foreach(  $arrParameters as $objParameter )
58
		{
58
		{
59
			/*@var $objParameter CodeReflectionParameter */
59
			/*@var $objParameter CodeReflectionParameter */
60
			$arrParametersName[] = $objParameter->getCode(); 
60
			$arrParametersName[] = $objParameter->getCode();
61
		}
61
		}
62
		
62
63
		$strCode .= "(";
63
		$strCode .= "(";
64
		$strCode .= implode( ", " , $arrParametersName);
64
		$strCode .= implode( ", " , $arrParametersName);
65
		$strCode .= ")";
65
		$strCode .= ")";
66
		return $strCode;
66
		return $strCode;
67
	}
67
	}
68
	
68
69
	protected function createMethodHeaderCode()
69
	protected function createMethodHeaderCode()
70
	{
70
	{
71
		$strCode = $this->getDocComment();
71
		$strCode = $this->getDocComment();
...
...
73
		$strCode .= " function ";
73
		$strCode .= " function ";
74
		$strCode .= $this->getName();
74
		$strCode .= $this->getName();
75
		$strCode .= $this->createParametersCode();
75
		$strCode .= $this->createParametersCode();
76
		
76
77
		return CorujaStringManipulation::retab( $strCode , 1 );
77
		return CorujaStringManipulation::retab( $strCode , 1 );
78
	}
78
	}
79
	
79
80
	protected function createMethodContentCode()
80
	protected function createMethodContentCode()
81
	{
81
	{
82
		$strCode = "";
82
		$strCode = "";
...
...
89
		$arrCodeReflectionFile = explode( "\n" , file_get_contents( $strFileName ) );
89
		$arrCodeReflectionFile = explode( "\n" , file_get_contents( $strFileName ) );
90
		for( $intLine = $this->getStartLine(); $intLine < $this->getEndLine(); ++$intLine )
90
		for( $intLine = $this->getStartLine(); $intLine < $this->getEndLine(); ++$intLine )
91
		{
91
		{
92
			$strCode .= $arrCodeReflectionFile[ $intLine ] . "\n";	
92
			$strCode .= $arrCodeReflectionFile[ $intLine ] . "\n";
93
		}
93
		}
94
94
95
		$strCode = trim( $strCode );
95
		$strCode = trim( $strCode );
96
				
96
97
		// remove the { }
97
		// remove the { }
98
		if( $strCode[0] == "{" )
98
		if( $strCode[0] == "{" )
99
		{
99
		{

Updated components/codeReflection/CodeReflectionParameter.class.php Download diff

1314
14
        if( $this->getClass() != null )
14
        if( $this->getClass() != null )
15
		{
15
		{
16
			$strCode .= $this->getClass()->getClassName() . " ";
16
			$strCode .= $this->getClass()->getClassName() . " ";
17
		} 
17
		}
18
*/
18
*/
19
		$strCode .= '$' . $this->getName();
19
		$strCode .= '$' . $this->getName();
20
20
...
...
24
		}
24
		}
25
		return $strCode;
25
		return $strCode;
26
	}
26
	}
27
	
27
28
    protected function createExtendedReflectionClass( ReflectionClass $objOriginalReflectionClass )
28
    protected function createExtendedReflectionClass( ReflectionClass $objOriginalReflectionClass )
29
	{
29
	{
30
		return new CodeReflectionClass( $objOriginalReflectionClass->getName() );
30
		return new CodeReflectionClass( $objOriginalReflectionClass->getName() );
31
	}
31
	}
32
	
32
33
	protected function createExtendedReflectionMethod( ReflectionMethod $objOriginalReflectionMethod )
33
	protected function createExtendedReflectionMethod( ReflectionMethod $objOriginalReflectionMethod )
34
	{
34
	{
35
		return new CodeReflectionMethod( $this->getName() , $objOriginalReflectionMethod->getName() );
35
		return new CodeReflectionMethod( $this->getName() , $objOriginalReflectionMethod->getName() );
36
	}
36
	}
37
	
37
38
	protected function createExtendedReflectionFunction( ReflectionFunction $objOriginalReflectionFunction )
38
	protected function createExtendedReflectionFunction( ReflectionFunction $objOriginalReflectionFunction )
39
	{
39
	{
40
		if( $objOriginalReflectionFunction instanceof ReflectionMethod )
40
		if( $objOriginalReflectionFunction instanceof ReflectionMethod )
41
		{
41
		{
42
			return new CodeReflectionMethod( $objOriginalReflectionFunction->getName() );	
42
			return new CodeReflectionMethod( $objOriginalReflectionFunction->getName() );
43
		}
43
		}
44
		else
44
		else
45
		{
45
		{

Updated components/codeReflection/CodeReflectionProperty.class.php Download diff

1314
65
65
66
        $strCode .= ' = ' . var_export( $this->getDefaultValue() , true );
66
        $strCode .= ' = ' . var_export( $this->getDefaultValue() , true );
67
		$strCode .= ";" . "\n";
67
		$strCode .= ";" . "\n";
68
		
68
69
		return $strCode;
69
		return $strCode;
70
	}
70
	}
71
	
71
72
	protected function createExtendedReflectionClass( ReflectionClass $objOriginalReflectionClass )
72
	protected function createExtendedReflectionClass( ReflectionClass $objOriginalReflectionClass )
73
	{
73
	{
74
		return new CodeReflectionClass( $objOriginalReflectionClass->getName() );
74
		return new CodeReflectionClass( $objOriginalReflectionClass->getName() );