本文整理匯總了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());
}