1
0
mirror of https://github.com/phpbb/phpbb.git synced 2025-08-13 04:04:12 +02:00

[ticket/11700] Correctly load extensions with nonprefixed namespaces

PHPBB3-11700
This commit is contained in:
Nils Adermann
2013-09-17 16:15:44 +02:00
parent d12f358855
commit c4b53490ad
29 changed files with 111 additions and 72 deletions

View File

@@ -277,15 +277,16 @@ class finder
$classes = array();
foreach ($files as $file => $ext_name)
{
if (preg_match('#^includes/#', $file))
$class = substr($file, 0, -strlen('.' . $this->php_ext));
if ($ext_name === '/' && preg_match('#^includes/#', $file))
{
$file = preg_replace('#^includes/#', '', $file);
$classes[] = 'phpbb_' . str_replace('/', '_', substr($file, 0, -strlen('.' . $this->php_ext)));
$class = preg_replace('#^includes/#', '', $class);
$classes[] = 'phpbb_' . str_replace('/', '_', $class);
}
else
{
$file = preg_replace('#^phpbb/#', '', $file);
$classes[] = 'phpbb\\' . str_replace('/', '\\', substr($file, 0, -strlen('.' . $this->php_ext)));
{
$class = preg_replace('#^ext/#', '', $class);
$classes[] = str_replace('/', '\\', $class);
}
}
return $classes;

View File

@@ -133,7 +133,7 @@ class manager
*/
public function get_extension($name)
{
$extension_class_name = 'phpbb_ext_' . str_replace('/', '_', $name) . '_ext';
$extension_class_name = str_replace('/', '\\', $name) . '\\ext';
$migrator = $this->container->get('migrator');