Advertisement
fruffl

doxygen filter trait method alias

Oct 17th, 2015
118
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
PHP 2.60 KB | None | 0 0
  1. $x = <<<'foo'
  2. <?PHP
  3.     namespace ILLI\Core\Std\ICopyableObject;
  4.     use ILLI\Core\Std\ICopyableObject;
  5.     use ILLI\Core\Std\Fn;
  6.     use Closure         as SplClosure;
  7.     use ReflectionClass     as SplReflectionClass;
  8.     use ReflectionObject        as SplReflectionObject;
  9.     use ReflectionProperty      as SplReflectionProperty;
  10.     use Traversable         as SplTraversable;
  11.    
  12.     trait __import_IDefaultObject
  13.     {
  14.         use __trait_IDefaultObject
  15.         {
  16.             #:interface:
  17.             Core_Std_IDefaultObject___trait_IDefaultObject___toString   as public __toString;
  18.             Core_Std_IDefaultObject___trait_IDefaultObject_equals       as public equals;
  19.             Core_Std_IDefaultObject___trait_IDefaultObject_getClassName as public getClassName;
  20.             Core_Std_IDefaultObject___trait_IDefaultObject_getHashCode  as public getHashCode;
  21.             Core_Std_IDefaultObject___trait_IDefaultObject_toArray      as public toArray;
  22.             Core_Std_IDefaultObject___trait_IDefaultObject_toString     as public toString;
  23.             #::
  24.             #:__internal:
  25.             #::
  26.         }
  27.     }
  28.    
  29. foo;
  30.    
  31. print $x;
  32.  
  33. $x = preg_replace_callback('#(?P<open>(class|trait)[\s]+([\S]+)[\s]*[\s]+{)(?P<body>[\s\S]+)?(?P<close>[\s]+})#i', function($r)
  34. {
  35.     $r['body'] = preg_replace_callback('#(?P<open>use[\s]+([\S]+)[\s]*[\s]+{)(?P<body>[\s\S]+)?(?P<close>[\s]+})#i', function($r)
  36.     {
  37.         $r['body'] = preg_replace_callback('#(?P<method>([\s]+[\S]+)[\s]+as(?:[\s]+(public|protected|private))?)(?P<alias>[\s]+([\S]+));#i', function($r)
  38.         {
  39.             return $r['method'].' function '.$r['alias'].'(){}';
  40.         }, $r['body']);
  41.        
  42.         return $r['open'].$r['body'].$r['close'];
  43.     }, $r['body']);
  44.    
  45.     return $r['open'].$r['body'].$r['close'];
  46. }, $x);
  47.  
  48. print $x;
  49.  
  50. /*
  51.  
  52.     <?PHP
  53.     namespace ILLI\Core\Std\ICopyableObject;
  54.     use ILLI\Core\Std\ICopyableObject;
  55.     use ILLI\Core\Std\Fn;
  56.     use Closure         as SplClosure;
  57.     use ReflectionClass     as SplReflectionClass;
  58.     use ReflectionObject        as SplReflectionObject;
  59.     use ReflectionProperty      as SplReflectionProperty;
  60.     use Traversable         as SplTraversable;
  61.    
  62.     trait __import_IDefaultObject
  63.     {
  64.         use __trait_IDefaultObject
  65.         {
  66.             #:interface:
  67.             Core_Std_IDefaultObject___trait_IDefaultObject___toString as public function __toString(){}
  68.             Core_Std_IDefaultObject___trait_IDefaultObject_equals as public function equals(){}
  69.             Core_Std_IDefaultObject___trait_IDefaultObject_getClassName as public function getClassName(){}
  70.             Core_Std_IDefaultObject___trait_IDefaultObject_getHashCode as public function getHashCode(){}
  71.             Core_Std_IDefaultObject___trait_IDefaultObject_toArray as public function toArray(){}
  72.             Core_Std_IDefaultObject___trait_IDefaultObject_toString as public function toString(){}
  73.             #::
  74.             #:__internal:
  75.             #::
  76.         }
  77.     }
  78. */
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement