@@ -377,15 +377,9 @@ private function addServiceReturn($id, $definition)
377377 */
378378 private function addServiceInstance ($ id , Definition $ definition )
379379 {
380- $ class = $ definition ->getClass ();
381-
382- if ('\\' === substr ($ class , 0 , 1 )) {
383- $ class = substr ($ class , 1 );
384- }
385-
386- $ class = $ this ->dumpValue ($ class );
380+ $ class = $ this ->dumpValue ($ definition ->getClass ());
387381
388- if (0 === strpos ($ class , "' " ) && !preg_match ('/^ \'[a-zA-Z_\x7f-\xff][a-zA-Z0-9_\x7f-\xff]*( \\\{2}[a-zA-Z_\x7f-\xff][a-zA-Z0-9_\x7f-\xff]*)* \'$/ ' , $ class )) {
382+ if (0 === strpos ($ class , "' " ) && !preg_match ('/^ \'(?: \\ \{2})? [a-zA-Z_\x7f-\xff][a-zA-Z0-9_\x7f-\xff]*(?: \\\{2}[a-zA-Z_\x7f-\xff][a-zA-Z0-9_\x7f-\xff]*)* \'$/ ' , $ class )) {
389383 throw new InvalidArgumentException (sprintf ('"%s" is not a valid class name for the "%s" service. ' , $ class , $ id ));
390384 }
391385
@@ -1460,11 +1454,13 @@ private function dumpLiteralClass($class)
14601454 if (false !== strpos ($ class , '$ ' )) {
14611455 throw new RuntimeException ('Cannot dump definitions which have a variable class name. ' );
14621456 }
1463- if (0 !== strpos ($ class , "' " ) || !preg_match ('/^ \'[a-zA-Z_\x7f-\xff][a-zA-Z0-9_\x7f-\xff]*( \\\{2}[a-zA-Z_\x7f-\xff][a-zA-Z0-9_\x7f-\xff]*)* \'$/ ' , $ class )) {
1457+ if (0 !== strpos ($ class , "' " ) || !preg_match ('/^ \'(?: \\ \{2})? [a-zA-Z_\x7f-\xff][a-zA-Z0-9_\x7f-\xff]*(?: \\\{2}[a-zA-Z_\x7f-\xff][a-zA-Z0-9_\x7f-\xff]*)* \'$/ ' , $ class )) {
14641458 throw new RuntimeException (sprintf ('Cannot dump definition because of invalid class name (%s) ' , $ class ?: 'n/a ' ));
14651459 }
14661460
1467- return '\\' .substr (str_replace ('\\\\' , '\\' , $ class ), 1 , -1 );
1461+ $ class = substr (str_replace ('\\\\' , '\\' , $ class ), 1 , -1 );
1462+
1463+ return 0 === strpos ($ class , '\\' ) ? $ class : '\\' .$ class ;
14681464 }
14691465
14701466 /**
0 commit comments