@@ -32,7 +32,7 @@ class RobotLoader
3232 /** @var array */
3333 private $ scanPaths = [];
3434
35- /** @var array of lowered- class => [file, time, orig ] */
35+ /** @var array of class => [file, time] */
3636 private $ classes = [];
3737
3838 /** @var bool */
@@ -73,8 +73,7 @@ public function register($prepend = FALSE)
7373 */
7474 public function tryLoad ($ type )
7575 {
76- $ type = $ orig = ltrim ($ type , '\\' ); // PHP namespace bug #49143
77- $ type = strtolower ($ type );
76+ $ type = ltrim ($ type , '\\' ); // PHP namespace bug #49143
7877 $ info = isset ($ this ->classes [$ type ]) ? $ this ->classes [$ type ] : NULL ;
7978
8079 if ($ this ->autoRebuild ) {
@@ -100,9 +99,6 @@ public function tryLoad($type)
10099 }
101100
102101 if ($ info ) {
103- if ($ info ['orig ' ] !== $ orig ) {
104- trigger_error ("Case mismatch on class name ' $ orig', correct name is ' {$ info ['orig ' ]}'. " , E_USER_WARNING );
105- }
106102 call_user_func (function ($ file ) { require $ file ; }, $ info ['file ' ]);
107103 }
108104 }
@@ -126,8 +122,8 @@ public function addDirectory($path)
126122 public function getIndexedClasses ()
127123 {
128124 $ res = [];
129- foreach ($ this ->classes as $ info ) {
130- $ res [$ info [ ' orig ' ] ] = $ info ['file ' ];
125+ foreach ($ this ->classes as $ class => $ info ) {
126+ $ res [$ class ] = $ info ['file ' ];
131127 }
132128 return $ res ;
133129 }
@@ -154,9 +150,9 @@ private function refresh()
154150 {
155151 $ this ->refreshed = TRUE ; // prevents calling refresh() or updateFile() in tryLoad()
156152 $ files = [];
157- foreach ($ this ->classes as $ info ) {
153+ foreach ($ this ->classes as $ class => $ info ) {
158154 $ files [$ info ['file ' ]]['time ' ] = $ info ['time ' ];
159- $ files [$ info ['file ' ]]['classes ' ][] = $ info [ ' orig ' ] ;
155+ $ files [$ info ['file ' ]]['classes ' ][] = $ class ;
160156 }
161157
162158 $ this ->classes = [];
@@ -171,13 +167,12 @@ private function refresh()
171167 $ files [$ file ] = ['classes ' => [], 'time ' => filemtime ($ file )];
172168
173169 foreach ($ classes as $ class ) {
174- $ lower = strtolower ($ class );
175- $ info = &$ this ->classes [$ lower ];
170+ $ info = &$ this ->classes [$ class ];
176171 if (isset ($ info ['file ' ])) {
177172 throw new Nette \InvalidStateException ("Ambiguous class $ class resolution; defined in {$ info ['file ' ]} and in $ file. " );
178173 }
179- $ info = ['file ' => $ file , 'time ' => filemtime ($ file ), ' orig ' => $ class ];
180- unset($ this ->missing [$ lower ]);
174+ $ info = ['file ' => $ file , 'time ' => filemtime ($ file )];
175+ unset($ this ->missing [$ class ]);
181176 }
182177 }
183178 }
@@ -239,15 +234,15 @@ private function updateFile($file)
239234
240235 $ classes = is_file ($ file ) ? $ this ->scanPhp (file_get_contents ($ file )) : [];
241236 foreach ($ classes as $ class ) {
242- $ info = &$ this ->classes [strtolower ( $ class) ];
237+ $ info = &$ this ->classes [$ class ];
243238 if (isset ($ info ['file ' ]) && @filemtime ($ info ['file ' ]) !== $ info ['time ' ]) { // @ file may not exists
244239 $ this ->updateFile ($ info ['file ' ]);
245- $ info = &$ this ->classes [strtolower ( $ class) ];
240+ $ info = &$ this ->classes [$ class ];
246241 }
247242 if (isset ($ info ['file ' ])) {
248243 throw new Nette \InvalidStateException ("Ambiguous class $ class resolution; defined in {$ info ['file ' ]} and in $ file. " );
249244 }
250- $ info = ['file ' => $ file , 'time ' => filemtime ($ file ), ' orig ' => $ class ];
245+ $ info = ['file ' => $ file , 'time ' => filemtime ($ file )];
251246 }
252247 }
253248
0 commit comments