一个超赞又好用的PHP技巧!如何生成PHP扩展的类手册

原创
2018/10/17 18:27
阅读数 141

参考自gearman的文档:http://gearman.org/php-client-libraries/extension/reflection/

 

PHP源代码:

<?php
$e = new ReflectionExtension('gearman');
print "<?php\n\n// Gearman Version: " . $e->getVersion() . "\n\n";
foreach ($e->getClasses() as $c) {
  print 'class ' . $c->name . " {\n";
  foreach ($c->getMethods() as $m) {
    print '  ';
    if ($m->isPublic()) {
        print 'public';
    } elseif ($m->isProtected()) {
        print 'protected';
    } elseif ($m->isPrivate()) {
        print 'private';
    }
    print ' function ' . $m->name . '(';
    $sep = '';
    foreach ($m->getParameters() as $p) {
      print $sep;
      $sep = ', ';
      if ($p->isOptional())
        print '$' . $p->name . ' = null' ;
      else
        print '$' . $p->name;
    }
    print "){}\n";
  }
  print "}\n\n";
}

 

保存并执行后,就能看到类似以下的输出:

<?php

// Gearman Version: 0.1

class GearmanClient {
  public function __construct(){}
  public function returnCode(){}
  public function clone(){}
  public function error(){}
  public function getErrno(){}
  public function options(){}
  public function setOptions($option){}
  public function addOptions($option){}
  public function removeOptions($option){}
  public function timeout(){}
  public function setTimeout($timeout){}
  public function context(){}
  public function setContext($context){}
  public function addServer($host, $port){}
  public function addServers($servers){}
  public function wait(){}
  public function do($function_name, $workload, $unique = null){}
  public function doNormal($function_name, $workload, $unique = null){}
  public function doHigh($function_name, $workload, $unique = null){}
  public function doLow($function_name, $workload, $unique = null){}
  public function doJobHandle(){}
  public function doStatus(){}
  public function doBackground($function_name, $workload, $unique = null){}
  public function doHighBackground($function_name, $workload, $unique = null){}
  public function doLowBackground($function_name, $workload, $unique = null){}
  public function jobStatus($job_handle){}
  public function echo($workload){}
  public function ping($workload){}
  public function addTask($function_name, $workload, $context = null, $unique = null){}
  public function addTaskHigh($function_name, $workload, $context = null, $unique = null){}
  public function addTaskLow($function_name, $workload, $context = null, $unique = null){}
  public function addTaskBackground($function_name, $workload, $context = null, $unique = null){}
  public function addTaskHighBackground($function_name, $workload, $context = null, $unique = null){}
  public function addTaskLowBackground($function_name, $workload, $context = null, $unique = null){}
  public function addTaskStatus($job_handle, $context = null){}
  public function setWorkloadCallback($callback){}
  public function setCreatedCallback($callback){}
  public function setDataCallback($callback){}
  public function setWarningCallback($client_object, $callback = null){}
  public function setStatusCallback($callback){}
  public function setCompleteCallback($callback){}
  public function setExceptionCallback($callback){}
  public function setFailCallback($callback){}
  public function clearCallbacks(){}
  public function runTasks(){}
}

class GearmanTask {
  public function returnCode(){}
  public function functionName(){}
  public function unique(){}
  public function jobHandle(){}
  public function isKnown(){}
  public function isRunning(){}
  public function taskNumerator(){}
  public function taskDenominator(){}
  public function sendWorkload($data){}
  public function data(){}
  public function dataSize(){}
  public function recvData($data_len){}
}

class GearmanWorker {
  public function __construct(){}
  public function returnCode(){}
  public function clone(){}
  public function error(){}
  public function getErrno(){}
  public function options(){}
  public function setOptions($option){}
  public function addOptions($option){}
  public function removeOptions($option){}
  public function timeout(){}
  public function setTimeout($timeout){}
  public function addServer($host = null, $port = null){}
  public function addServers($servers){}
  public function wait(){}
  public function register($function_name, $timeout = null){}
  public function unregister($function_name){}
  public function unregisterAll(){}
  public function grabJob(){}
  public function addFunction($function_name, $function, $data = null, $timeout = null){}
  public function work(){}
  public function echo($workload){}
}

class GearmanJob {
  public function returnCode(){}
  public function setReturn($gearman_return_t){}
  public function sendData($data){}
  public function sendWarning($warning){}
  public function sendStatus($numerator, $denominator){}
  public function sendComplete($result){}
  public function sendException($exception){}
  public function sendFail(){}
  public function handle(){}
  public function functionName(){}
  public function unique(){}
  public function workload(){}
  public function workloadSize(){}
}

class GearmanException {
  private function __clone(){}
  public function __construct($message = null, $code = null, $previous = null){}
  public function __wakeup(){}
  public function getMessage(){}
  public function getCode(){}
  public function getFile(){}
  public function getLine(){}
  public function getTrace(){}
  public function getPrevious(){}
  public function getTraceAsString(){}
  public function __toString(){}
}

 

超赞!

展开阅读全文
加载中
点击引领话题📣 发布并加入讨论🔥
打赏
0 评论
0 收藏
0
分享
返回顶部
顶部