Changeset 408

Show
Ignore:
Timestamp:
03/21/07 16:08:06 (2 years ago)
Author:
mikey
Message:

added possibility to reflect a class which has not been loaded yet (closes ticket #24)

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • trunk/src/main/php/_test/TestXMLPageElement.php

    r288 r408  
    2929        return array('foo' => 'Hello World!'); 
    3030    } 
     31     
     32    /** 
     33     * returns a list of form values 
     34     * 
     35     * @param   stubRequest           $request 
     36     * @return  array<string,string> 
     37     */ 
     38    public function getFormValues(stubRequest $request) 
     39    { 
     40        return array(); 
     41    } 
    3142} 
    3243?> 
  • trunk/src/main/php/net/stubbles/reflection/stubReflectionClass.php

    r255 r408  
    4242    public function __construct($className) 
    4343    { 
     44        if (strstr($className, '.') !== false) { 
     45            $nqClassName = stubClassLoader::getNonQualifiedClassName($className); 
     46            if (class_exists($nqClassName, false) == false) { 
     47                stubClassLoader::load($className); 
     48            } 
     49             
     50            $className = $nqClassName; 
     51        } 
    4452        $this->className = $className; 
    4553        parent::__construct($className); 
  • trunk/src/test/php/net/stubbles/reflection/stubReflectionClassTestCase.php

    r255 r408  
    99stubClassLoader::load('net.stubbles.reflection.stubReflectionClass'); 
    1010require_once dirname(__FILE__) . '/stubreflectiontestclasses.php'; 
     11class stubTestFullLoading {} 
    1112/** 
    1213 * Test for stubReflectionClass. 
     
    178179        $this->assertIsA($refClass->getExtension(), 'stubReflectionExtension'); 
    179180    } 
     181     
     182    /** 
     183     * test that class loading works as expected 
     184     */ 
     185    public function testClassLoading() 
     186    { 
     187        $refClass = new stubReflectionClass('examples.stubTestFullLoading'); 
     188        $this->assertEqual($refClass->getFullQualifiedClassName(), 'stubTestFullLoading'); 
     189        $refClass = new stubReflectionClass('_test.TestXMLPageElement'); 
     190        $this->assertEqual($refClass->getFullQualifiedClassName(), '_test.TestXMLPageElement'); 
     191    } 
    180192} 
    181193?>