当前位置: 首页>>代码示例>>PHP>>正文


PHP FileGenerator::fromReflection方法代码示例

本文整理汇总了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;
 }
开发者ID:proophsoftware,项目名称:prooph-cli,代码行数:30,代码来源:AddEventToAggregate.php

示例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());
    }
开发者ID:razvansividra,项目名称:pnlzf2-1,代码行数:53,代码来源:FileGeneratorTest.php

示例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());
    }
开发者ID:bradley-holt,项目名称:zf2,代码行数:52,代码来源:FileGeneratorTest.php


注:本文中的Zend\Code\Generator\FileGenerator::fromReflection方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。