本文整理匯總了PHP中Zend\Code\Generator\MethodGenerator::setDocBlock方法的典型用法代碼示例。如果您正苦於以下問題:PHP MethodGenerator::setDocBlock方法的具體用法?PHP MethodGenerator::setDocBlock怎麽用?PHP MethodGenerator::setDocBlock使用的例子?那麽, 這裏精選的方法代碼示例或許可以為您提供幫助。您也可以進一步了解該方法所在類Zend\Code\Generator\MethodGenerator
的用法示例。
在下文中一共展示了MethodGenerator::setDocBlock方法的15個代碼示例,這些例子默認根據受歡迎程度排序。您可以為喜歡或者感覺有用的代碼點讚,您的評價將有助於係統推薦出更棒的PHP代碼示例。
示例1: build
/**
* @param State|\Scaffold\State $state
* @return State|void
*/
public function build(State $state)
{
$model = $state->getModel('options-factory');
$generator = new ClassGenerator($model->getName());
$generator->setImplementedInterfaces(['FactoryInterface']);
$model->setGenerator($generator);
$generator->addUse('Zend\\ServiceManager\\FactoryInterface');
$generator->addUse('Zend\\ServiceManager\\ServiceLocatorInterface');
$options = $state->getModel('options');
$key = $options->getServiceName();
$key = substr($key, 0, -7);
$body = <<<EOF
\$config = \$serviceLocator->get('Config');
return new {$options->getClassName()}(
isset(\$config['{$key}'])
? \$config['{$key}']
: []
);
EOF;
$method = new MethodGenerator('createService');
$method->setParameter(new ParameterGenerator('serviceLocator', 'ServiceLocatorInterface'));
$method->setBody($body);
$doc = new DocBlockGenerator('');
$doc->setTag(new Tag(['name' => 'inhertidoc']));
$method->setDocBlock($doc);
$generator->addMethodFromGenerator($method);
}
示例2: testDocBlockGetterAndSetter
public function testDocBlockGetterAndSetter()
{
$docblockGenerator = new \Zend\Code\Generator\DocBlockGenerator();
$method = new MethodGenerator();
$method->setDocBlock($docblockGenerator);
$this->assertTrue($docblockGenerator === $method->getDocBlock());
}
示例3: buildFactory
/**
* Build method factory
*
* @param ClassGenerator $generator
*/
public function buildFactory(ClassGenerator $generator)
{
$docBlock = new DocBlockGenerator('@return ' . $this->config->getName());
$factory = new MethodGenerator();
$factory->setDocBlock($docBlock);
$factory->setName('factory');
$factory->setBody('return new ' . $this->config->getName() . '();');
$generator->addMethodFromGenerator($factory);
}
示例4: postRun
public function postRun(PartInterface $part)
{
/**
* @var $part \Model\Generator\Part\Entity
*/
/**
* @var $file \Model\Code\Generator\FileGenerator
*/
$file = $part->getFile();
$table = $part->getTable();
$tags = array(array('name' => 'return', 'description' => 'array'));
$docblock = new DocBlockGenerator('Initialize indexes');
$docblock->setTags($tags);
$resultIndexList = array();
$indexList = $table->getIndex();
foreach ($indexList as $index) {
$resIndex = $index->toArray();
$resIndex['column_list'] = array();
switch ($index->getType()) {
case AbstractIndex::TYPE_PRIMARY:
$resIndex['type'] = new ValueGenerator('AbstractModel::INDEX_PRIMARY', ValueGenerator::TYPE_CONSTANT);
break;
case AbstractIndex::TYPE_KEY:
$resIndex['type'] = new ValueGenerator('AbstractModel::INDEX_KEY', ValueGenerator::TYPE_CONSTANT);
break;
case AbstractIndex::TYPE_UNIQUE:
$resIndex['type'] = new ValueGenerator('AbstractModel::INDEX_UNIQUE', ValueGenerator::TYPE_CONSTANT);
break;
}
foreach ($resIndex['columns'] as $col) {
$resIndex['column_list'][] = $col['column_name'];
}
unset($resIndex['columns']);
$resultIndexList[$index->getName()] = $resIndex;
}
$property = new PropertyGenerator('indexList', $resultIndexList, PropertyGenerator::FLAG_PROTECTED);
$body = preg_replace("#^(\\s*)protected #", "\\1", $property->generate()) . "\n";
$method = new MethodGenerator();
$method->setName('initIndexList');
$method->setVisibility(AbstractMemberGenerator::VISIBILITY_PUBLIC);
$method->setFinal(true);
$method->setDocBlock($docblock);
$method->setBody(<<<EOS
{$body}
\$this->indexList = \$indexList;
\$this->setupIndexList();
EOS
);
$file->getClass()->addMethodFromGenerator($method);
}
示例5: addInvokeMethod
/**
* Generate an __invoke method
*/
protected function addInvokeMethod()
{
// set action body
$body = ['// add view helper code here', '$output = \'\';', '', 'return $output;'];
$body = implode(AbstractGenerator::LINE_FEED, $body);
// create method
$method = new MethodGenerator();
$method->setName('__invoke');
$method->setBody($body);
// check for api docs
if ($this->config['flagAddDocBlocks']) {
$method->setDocBlock(new DocBlockGenerator('Called when view helper is executed', null, [new ReturnTag(['string'])]));
}
// add method
$this->addMethodFromGenerator($method);
}
示例6: addInitMethod
/**
* Generate an init method
*/
protected function addInitMethod()
{
// set action body
$body = ['// add form elements and form configuration here'];
$body = implode(AbstractGenerator::LINE_FEED, $body);
// create method
$method = new MethodGenerator();
$method->setName('init');
$method->setBody($body);
// check for api docs
if ($this->config['flagAddDocBlocks']) {
$method->setDocBlock(new DocBlockGenerator('Generate form by adding elements'));
}
// add method
$this->addMethodFromGenerator($method);
}
示例7: addInitMethod
/**
* Generate an init method
*/
protected function addInitMethod()
{
// set action body
$body = array('// add input objects here');
$body = implode(AbstractGenerator::LINE_FEED, $body);
// create method
$method = new MethodGenerator();
$method->setName('init');
$method->setBody($body);
// check for api docs
if ($this->config['flagAddDocBlocks']) {
$method->setDocBlock(new DocBlockGenerator('Generate input filter by adding inputs'));
}
// add method
$this->addMethodFromGenerator($method);
}
示例8: addInvokeMethod
/**
* Generate an __invoke method
*/
protected function addInvokeMethod()
{
// set action body
$body = ['// add controller plugin code here'];
$body = implode(AbstractGenerator::LINE_FEED, $body);
// create method
$method = new MethodGenerator();
$method->setName('__invoke');
$method->setBody($body);
// check for api docs
if ($this->config['flagAddDocBlocks']) {
$method->setDocBlock(new DocBlockGenerator('Called when controller plugin is executed', null, [new ReturnTag(['mixed'])]));
}
// add method
$this->addMethodFromGenerator($method);
}
示例9: postRun
public function postRun(PartInterface $part)
{
/**
* @var $part \Model\Generator\Part\Entity
*/
/**
* @var $file \Model\Code\Generator\FileGenerator
*/
$file = $part->getFile();
$table = $part->getTable();
$tags = array(array('name' => 'var', 'description' => 'array значения по-умолчанию для полей'));
$docblock = new \Zend\Code\Generator\DocBlockGenerator('Значения по-умолчанию для полей');
$docblock->setTags($tags);
$columnCollection = $table->getColumn();
if (!$columnCollection) {
return;
}
$defaults = '';
/** @var $column Column */
foreach ($columnCollection as $column) {
$columnName = $column->getName();
$defaultValue = $column->getColumnDefault();
if (substr($columnName, -5) == '_date') {
$defaults .= "\$this->setDefaultRule('" . $columnName . "', date('Y-m-d H:i:s'));\n ";
} elseif ($defaultValue == 'CURRENT_TIMESTAMP') {
$defaults .= "\$this->setDefaultRule('" . $columnName . "', date('Y-m-d H:i:s'));\n ";
} elseif (!empty($defaultValue)) {
$defaults .= '$this->setDefaultRule(\'' . $columnName . '\', \'' . (string) $defaultValue . '\');' . "\n ";
} elseif (is_null($defaultValue) && $column->isNullable()) {
$defaults .= '$this->setDefaultRule(\'' . $columnName . '\', null);' . "\n ";
}
}
$tags = array(array('name' => 'return', 'description' => 'void'));
$docblock = new DocBlockGenerator('Инициализация значений по-умолчанию');
$docblock->setTags($tags);
$method = new MethodGenerator();
$method->setName('initDefaultsRules');
$method->setVisibility(AbstractMemberGenerator::VISIBILITY_PUBLIC);
$method->setFinal(true);
$method->setDocBlock($docblock);
$method->setBody(<<<EOS
{$defaults}
\$this->setupDefaultsRules();
EOS
);
$file->getClass()->addMethodFromGenerator($method);
}
示例10: addCreateServiceMethod
/**
* Generate the create service method
*
* @param string $className
* @param string $managerName
*/
protected function addCreateServiceMethod($className, $managerName)
{
// set action body
$body = array('/** @var ServiceLocatorAwareInterface $' . $managerName . ' */', '$serviceLocator = $' . $managerName . '->getServiceLocator();', '', '$instance = new ' . $className . '();', '', 'return $instance;');
$body = implode(AbstractGenerator::LINE_FEED, $body);
// create method
$method = new MethodGenerator();
$method->setName('createService');
$method->setBody($body);
$method->setParameters(array(new ParameterGenerator($managerName, 'ServiceLocatorInterface')));
// check for api docs
if ($this->config['flagAddDocBlocks']) {
$method->setDocBlock(new DocBlockGenerator('Create service', null, array(new ParamTag($managerName, array('ServiceLocatorInterface')), new ReturnTag(array($className)))));
}
// add method
$this->addMethodFromGenerator($method);
}
示例11: build
/**
* Build generators
*
* @param State|\Scaffold\State $state
* @return \Scaffold\State|void
*/
public function build(State $state)
{
$model = $this->model;
$generator = new ClassGenerator($model->getName());
$generator->addUse('Zend\\ServiceManager\\FactoryInterface');
$generator->addUse('Zend\\ServiceManager\\ServiceLocatorInterface');
$generator->addUse('Zend\\ServiceManager\\ServiceManager');
$generator->addUse($state->getServiceModel()->getName());
$generator->setImplementedInterfaces(['FactoryInterface']);
$method = new MethodGenerator('createService');
$method->setParameter(new ParameterGenerator('serviceLocator', 'ServiceLocatorInterface'));
$method->setBody('return new ' . $state->getServiceModel()->getClassName() . '($serviceLocator);');
$doc = new DocBlockGenerator('Create service');
$doc->setTag(new Tag\GenericTag('param', 'ServiceLocatorInterface|ServiceManager $serviceLocator'));
$doc->setTag(new Tag\GenericTag('return', $state->getServiceModel()->getClassName()));
$method->setDocBlock($doc);
$generator->addMethodFromGenerator($method);
$model->setGenerator($generator);
}
示例12: transform
public function transform()
{
$classGenerator = $this->getService()->getClassGenerator();
if ($createContactBatch = $classGenerator->getMethod('CreateContactBatch')) {
$newMethod = new CodeGenerator\MethodGenerator();
$newMethod->setName($createContactBatch->getName());
$docblock = $createContactBatch->getDocBlock();
$docblock->setTag((new CodeGenerator\DocBlock\Tag\ParamTag())->setParamName('id')->setDataType('int'));
$newMethod->setDocBlock($docblock);
$parameters = $createContactBatch->getParameters();
$idParameter = new CodeGenerator\ParameterGenerator();
$idParameter->setName('id');
$createContactBatch->setParameter($idParameter);
$newMethod->setParameters(array("id" => $idParameter, "CreateContactBatch" => $parameters['CreateContactBatch']));
$body = $createContactBatch->getBody();
$body = str_replace('array()', 'array($id)', $body);
$newMethod->setBody($body);
$classGenerator->removeMethod('CreateContactBatch');
$classGenerator->addMethodFromGenerator($newMethod);
}
}
示例13: fixPathParameters
public function fixPathParameters($classGenerator, $method, $newParameters)
{
$oldMethod = $classGenerator->getMethod($method);
$newMethod = new CodeGenerator\MethodGenerator();
$newMethod->setName($oldMethod->getName());
$docblock = $oldMethod->getDocBlock();
$parameters = $oldMethod->getParameters();
$body = $oldMethod->getBody();
$newParameterSpec = array();
foreach ($newParameters as $name => $type) {
$docblock->setTag((new CodeGenerator\DocBlock\Tag\ParamTag())->setParamName($name)->setDataType($type));
$newParameter = new CodeGenerator\ParameterGenerator();
$newParameter->setName($name);
$newMethod->setParameter($newParameter);
$newParameterSpec[$name] = $newParameter;
}
$newMethod->setParameters(array_merge($newParameterSpec, array($method => $parameters[$method])));
$body = str_replace('array()', 'array($' . implode(', $', array_keys($newParameters)) . ')', $body);
$newMethod->setDocBlock($docblock);
$newMethod->setBody($body);
$classGenerator->removeMethod($method);
$classGenerator->addMethodFromGenerator($newMethod);
}
示例14: postRun
public function postRun(PartInterface $part)
{
/**
* @var $part \Model\Generator\Part\Entity
*/
/**
* @var $file \Model\Code\Generator\FileGenerator
*/
$file = $part->getFile();
$tableNameAsCamelCase = $part->getTable()->getNameAsCamelCase();
$tags = array(array('name' => 'return', 'description' => '\\Model\\' . $tableNameAsCamelCase . 'Model экземпляр модели'));
$docblock = new DocBlockGenerator('Получить экземпляр модели ' . $tableNameAsCamelCase);
$docblock->setTags($tags);
$method = new MethodGenerator();
$method->setName('getInstance');
$method->setVisibility(AbstractMemberGenerator::VISIBILITY_PUBLIC);
$method->setStatic(true);
$method->setDocBlock($docblock);
$method->setBody(<<<EOS
return parent::getInstance();
EOS
);
$file->getClass()->addMethodFromGenerator($method);
}
示例15: preRun
/**
* @param PartInterface $part
*/
public function preRun(PartInterface $part)
{
/**
* @var $part \Model\Generator\Part\Entity
*/
/**
* @var $file \Model\Code\Generator\FileGenerator
*/
$file = $part->getFile();
/**
* @var $table \Model\Cluster\Schema\Table
*/
$table = $part->getTable();
/** @var $columnList Column[] */
$columnList = $table->getColumn();
foreach ($columnList as $column) {
$columnName = $column->getName();
$columnComment = $column->getComment();
if ($columnComment) {
$shortDescription = "Get " . mb_strtolower($columnComment, 'UTF-8') . ' (' . $column->getTable()->getName() . '.' . $columnName . ')';
} else {
$shortDescription = 'Get ' . $column->getTable()->getName() . '.' . $columnName;
}
$docBlock = new DocBlockGenerator($shortDescription);
$docBlock->setTags(array(array('name' => 'return', 'description' => $column->getTypeAsPhp())));
$method = new MethodGenerator();
$method->setName('get' . $column->getNameAsCamelCase());
$method->setVisibility(AbstractMemberGenerator::VISIBILITY_PUBLIC);
$method->setDocBlock($docBlock);
$method->setBody(<<<EOS
return \$this->get('{$columnName}');
EOS
);
$part->getFile()->getClass()->addMethodFromGenerator($method);
}
}