Skip to content

Commit d807504

Browse files
author
Marek Kilimajer
committed
Support for traits in autoloaders
1 parent 16c955e commit d807504

File tree

3 files changed

+5
-3
lines changed

3 files changed

+5
-3
lines changed

lib/autoload/sfCoreAutoload.class.php

100644100755
Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -163,7 +163,9 @@ static public function make()
163163
$class = basename($file, false === strpos($file, '.class.php') ? '.php' : '.class.php');
164164

165165
$contents = file_get_contents($file);
166-
if (false !== stripos($contents, 'class '.$class) || false !== stripos($contents, 'interface '.$class))
166+
if (false !== stripos($contents, 'class '.$class)
167+
|| false !== stripos($contents, 'interface '.$class)
168+
|| false !== stripos($contents, 'trait '.$class))
167169
{
168170
$classes .= sprintf(" '%s' => '%s',\n", strtolower($class), substr(str_replace($libDir, '', $file), 1));
169171
}

lib/autoload/sfSimpleAutoload.class.php

100644100755
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -286,7 +286,7 @@ public function addFile($file, $register = true)
286286
$this->cacheChanged = true;
287287
}
288288

289-
preg_match_all('~^\s*(?:abstract\s+|final\s+)?(?:class|interface)\s+(\w+)~mi', file_get_contents($file), $classes);
289+
preg_match_all('~^\s*(?:abstract\s+|final\s+)?(?:class|interface|trait)\s+(\w+)~mi', file_get_contents($file), $classes);
290290
foreach ($classes[1] as $class)
291291
{
292292
$this->classes[strtolower($class)] = $file;

lib/config/sfAutoloadConfigHandler.class.php

100644100755
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -126,7 +126,7 @@ protected function parse(array $configFiles)
126126
static public function parseFile($path, $file, $prefix)
127127
{
128128
$mapping = array();
129-
preg_match_all('~^\s*(?:abstract\s+|final\s+)?(?:class|interface)\s+(\w+)~mi', file_get_contents($file), $classes);
129+
preg_match_all('~^\s*(?:abstract\s+|final\s+)?(?:class|interface|trait)\s+(\w+)~mi', file_get_contents($file), $classes);
130130
foreach ($classes[1] as $class)
131131
{
132132
$localPrefix = '';

0 commit comments

Comments
 (0)