當前位置: 首頁>>代碼示例>>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;未經允許,請勿轉載。