本文整理汇总了PHP中Zend\Code\Generator\FileGenerator::fromReflection方法的典型用法代码示例。如果您正苦于以下问题:PHP FileGenerator::fromReflection方法的具体用法?PHP FileGenerator::fromReflection怎么用?PHP FileGenerator::fromReflection使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Zend\Code\Generator\FileGenerator
的用法示例。
在下文中一共展示了FileGenerator::fromReflection方法的3个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: __invoke
/**
* @inheritDoc
*/
public function __invoke($file, $namespace, $commandName)
{
$commandName = ucfirst($commandName);
require $file;
$reflectionClass = new FileReflection($file);
$fileGenerator = FileGenerator::fromReflection($reflectionClass);
$fileGenerator->setFilename($file);
$classGenerator = $fileGenerator->getClass();
/* @var $method MethodGenerator */
foreach ($classGenerator->getMethods() as $method) {
if (strpos($method->getName(), 'when') !== 0) {
continue;
}
/* @var $parameter ParameterGenerator */
foreach ($method->getParameters() as $parameter) {
$fileGenerator->setUse($parameter->getType());
}
}
$namespace = ltrim($namespace, '\\') . '\\';
$fileGenerator->setUse($namespace . $commandName);
// workaround for import namespace
if ($classToExtend = $classGenerator->getExtendedClass()) {
$classGenerator->setExtendedClass(substr($classToExtend, strrpos($classToExtend, '\\') + 1));
}
$classGenerator->addMethodFromGenerator($this->methodWhenEvent($commandName, $namespace));
return $fileGenerator;
}
示例2: testFromFileReflection
public function testFromFileReflection()
{
$this->markTestIncomplete('Some scanning capabilities are incomplete, including file DocBlock comment retrieval and method scanning');
$file = __DIR__ . '/TestAsset/TestSampleSingleClass.php';
require_once $file;
$codeGenFileFromDisk = FileGenerator::fromReflection($fileRefl = new FileReflection($file));
$codeGenFileFromDisk->getClass()->addMethod('foobar');
$expectedOutput = <<<EOS
<?php
/**
* File header here
*
* @author Ralph Schindler <ralph.schindler@zend.com>
*/
/* Zend_Code_Generator_FileGenerator-ClassMarker: {ZendTest\\Code\\Generator\\TestAsset\\TestSampleSingleClass} */
namespace ZendTest\\Code\\Generator\\TestAsset;
/**
* class docblock
*
* @package Zend_Reflection_TestSampleSingleClass
*
*/
class TestSampleSingleClass
{
/**
* Enter description here...
*
* @return bool
*
*/
public function someMethod()
{
/* test test */
}
public function foobar()
{
}
}
EOS;
$this->assertEquals($expectedOutput, $codeGenFileFromDisk->generate());
}
示例3: testFromFileReflection
public function testFromFileReflection()
{
//$this->markTestSkipped('Must support namespaces');
$file = __DIR__ . '/TestAsset/TestSampleSingleClass.php';
require_once $file;
$codeGenFileFromDisk = FileGenerator::fromReflection(new FileReflection($file));
$codeGenFileFromDisk->getClass()->setMethod(array('name' => 'foobar'));
$expectedOutput = <<<EOS
<?php
/**
* File header here
*
* @author Ralph Schindler <ralph.schindler@zend.com>
*
*/
/**
* @namespace
*/
namespace ZendTest\\Code\\Generator\\TestAsset;
/**
* class docblock
*
* @package Zend_Reflection_TestSampleSingleClass
*
*/
class TestSampleSingleClass
{
/**
* Enter description here...
*
* @return bool
*
*/
public function someMethod()
{
/* test test */
}
public function foobar()
{
}
}
EOS;
$this->assertEquals($expectedOutput, $codeGenFileFromDisk->generate());
}