mirror of
https://github.com/silverstripe/silverstripe-framework
synced 2024-10-22 14:05:37 +02:00
BUGFIX Namespaced classes were always having their namespace prepended to their base class
This commit is contained in:
parent
53506f37f2
commit
27a51ed7ed
@ -354,7 +354,7 @@ class SS_ClassManifest {
|
||||
$extends = isset($class['extends']) ? implode('', $class['extends']) : null;
|
||||
$implements = isset($class['interfaces']) ? $class['interfaces'] : null;
|
||||
|
||||
if($extends && $extends[0] != '/\\') {
|
||||
if($extends && $extends[0] != '\\') {
|
||||
$extends = $namespace . $extends;
|
||||
} elseif($extends) {
|
||||
$extends = substr($extends, 1);
|
||||
|
@ -44,7 +44,8 @@ class NamespacedClassManifestTest extends SapphireTest {
|
||||
'sapphire\test\classd' => "{$this->base}/module/classes/ClassD.php",
|
||||
'sapphire\test\classe' => "{$this->base}/module/classes/ClassE.php",
|
||||
'sapphire\test\classf' => "{$this->base}/module/classes/ClassF.php",
|
||||
'sapphire\test\classg' => "{$this->base}/module/classes/ClassG.php"
|
||||
'sapphire\test\classg' => "{$this->base}/module/classes/ClassG.php",
|
||||
'sapphire\test\classh' => "{$this->base}/module/classes/ClassH.php"
|
||||
);
|
||||
|
||||
$this->assertEquals($expect, $this->manifest->getClasses());
|
||||
@ -52,13 +53,13 @@ class NamespacedClassManifestTest extends SapphireTest {
|
||||
|
||||
public function testGetClassNames() {
|
||||
$this->assertEquals(
|
||||
array('sapphire\test\classa', 'sapphire\test\classb', 'sapphire\test\classc', 'sapphire\test\classd', 'sapphire\test\classe', 'sapphire\test\classf', 'sapphire\test\classg'),
|
||||
array('sapphire\test\classa', 'sapphire\test\classb', 'sapphire\test\classc', 'sapphire\test\classd', 'sapphire\test\classe', 'sapphire\test\classf', 'sapphire\test\classg', 'sapphire\test\classh'),
|
||||
$this->manifest->getClassNames());
|
||||
}
|
||||
|
||||
public function testGetDescendants() {
|
||||
$expect = array(
|
||||
'sapphire\test\classa' => array('sapphire\test\ClassB')
|
||||
'sapphire\test\classa' => array('sapphire\test\ClassB', 'sapphire\test\ClassH'),
|
||||
);
|
||||
|
||||
$this->assertEquals($expect, $this->manifest->getDescendants());
|
||||
@ -66,8 +67,8 @@ class NamespacedClassManifestTest extends SapphireTest {
|
||||
|
||||
public function testGetDescendantsOf() {
|
||||
$expect = array(
|
||||
'SAPPHIRE\TEST\CLASSA' => array('sapphire\test\ClassB'),
|
||||
'sapphire\test\classa' => array('sapphire\test\ClassB'),
|
||||
'SAPPHIRE\TEST\CLASSA' => array('sapphire\test\ClassB', 'sapphire\test\ClassH'),
|
||||
'sapphire\test\classa' => array('sapphire\test\ClassB', 'sapphire\test\ClassH'),
|
||||
);
|
||||
|
||||
foreach ($expect as $class => $desc) {
|
||||
|
@ -0,0 +1,8 @@
|
||||
<?php
|
||||
/**
|
||||
* @ignore
|
||||
*/
|
||||
|
||||
namespace sapphire\test;
|
||||
|
||||
class ClassH extends \sapphire\test\ClassA { }
|
Loading…
Reference in New Issue
Block a user