本文整理汇总了PHP中Zend\Code\Generator\FileGenerator::setRequiredFiles方法的典型用法代码示例。如果您正苦于以下问题:PHP FileGenerator::setRequiredFiles方法的具体用法?PHP FileGenerator::setRequiredFiles怎么用?PHP FileGenerator::setRequiredFiles使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Zend\Code\Generator\FileGenerator
的用法示例。
在下文中一共展示了FileGenerator::setRequiredFiles方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: getContents
/**
* getContents()
*
* @return string
*/
public function getContents()
{
$filter = new \Zend\Filter\Word\DashToCamelCase();
$className = $filter->filter($this->_forClassName) . 'Test';
$codeGenFile = new FileGenerator();
$codeGenFile->setRequiredFiles(array('PHPUnit/Framework/TestCase.php'));
$codeGenFile->setClasses(array(new ClassGenerator($className, null, null, 'PHPUnit_Framework_TestCase', array(), array(), array(new MethodGenerator('setUp', array(), MethodGenerator::FLAG_PUBLIC, ' /* Setup Routine */'), new MethodGenerator('tearDown', array(), MethodGenerator::FLAG_PUBLIC, ' /* Tear Down Routine */')))));
return $codeGenFile->generate();
}
示例2: getGeneratedFile
//.........这里部分代码省略.........
if ($injectionParameter->getClassName()) {
$this->factoryGenerator->processFileForClass($injectionParameter->getClassName());
}
if ($injectionParameter->getFactoryName()) {
$this->usedFactories[] = $injectionParameter->getFactoryName();
}
$body .= ' ' . $injectionParameter->getProcessingBody();
} catch (\Exception $e) {
$body .= ' ' . $injectionParameter->getDefaultProcessingBody();
}
}
$body .= '}' . PHP_EOL;
$body .= 'else if (array_key_exists(0, $parameters)) {' . PHP_EOL;
foreach ($arguments as $argument) {
/** @var \ReflectionParameter $argument */
$injectionParameter = new \rg\injektor\generators\InjectionParameter($argument, $classConfig, $this->config, $this->dic, InjectionParameter::MODE_NUMERIC);
try {
if ($injectionParameter->getClassName()) {
$this->factoryGenerator->processFileForClass($injectionParameter->getClassName());
}
if ($injectionParameter->getFactoryName()) {
$this->usedFactories[] = $injectionParameter->getFactoryName();
}
$body .= ' ' . $injectionParameter->getProcessingBody();
} catch (\Exception $e) {
$body .= ' ' . $injectionParameter->getDefaultProcessingBody();
}
}
$body .= '}' . PHP_EOL;
$body .= 'else {' . PHP_EOL;
foreach ($arguments as $argument) {
/** @var \ReflectionParameter $argument */
$injectionParameter = new \rg\injektor\generators\InjectionParameter($argument, $classConfig, $this->config, $this->dic, InjectionParameter::MODE_STRING);
try {
if ($injectionParameter->getClassName()) {
$this->factoryGenerator->processFileForClass($injectionParameter->getClassName());
}
if ($injectionParameter->getFactoryName()) {
$this->usedFactories[] = $injectionParameter->getFactoryName();
}
$body .= ' ' . $injectionParameter->getProcessingBody();
} catch (\Exception $e) {
$body .= ' ' . $injectionParameter->getDefaultProcessingBody();
}
}
$body .= '}' . PHP_EOL;
}
// Property injection
$this->injectProperties($classConfig, $classReflection);
if (count($this->injectableProperties) > 0) {
$proxyName = $this->dic->getProxyClassName($this->fullClassName);
if ($this->dic->isSingleton($classReflection)) {
$file->setClass($this->createProxyClass($proxyName));
$body .= PHP_EOL . '$instance = ' . $proxyName . '::getInstance(' . implode(', ', $this->constructorArgumentStringParts) . ');' . PHP_EOL;
} else {
$file->setClass($this->createProxyClass($proxyName));
$body .= PHP_EOL . '$instance = new ' . $proxyName . '(' . implode(', ', $this->constructorArgumentStringParts) . ');' . PHP_EOL;
}
} else {
if ($this->dic->isSingleton($classReflection)) {
$body .= PHP_EOL . '$instance = \\' . $this->fullClassName . '::getInstance(' . implode(', ', $this->constructorArgumentStringParts) . ');' . PHP_EOL;
} else {
$body .= PHP_EOL . '$instance = new \\' . $this->fullClassName . '(' . implode(', ', $this->constructorArgumentStringParts) . ');' . PHP_EOL;
}
}
}
if ($isSingleton) {
$body .= 'self::$instance[$singletonKey] = $instance;' . PHP_EOL;
}
if ($isService) {
$body .= 'self::$instance = $instance;' . PHP_EOL;
}
foreach ($this->injectableArguments as $injectableArgument) {
$body .= '$instance->propertyInjection' . $injectableArgument->getName() . '();' . PHP_EOL;
}
$body .= 'return $instance;' . PHP_EOL;
$instanceMethod->setBody($body);
$instanceMethod->setStatic(true);
$factoryClass->addMethodFromGenerator($instanceMethod);
// Add Factory Method
$methods = $classReflection->getMethods();
foreach ($methods as $method) {
/** @var \ReflectionMethod $method */
if ($method->isPublic() && substr($method->name, 0, 2) !== '__') {
$factoryMethod = $this->getFactoryMethod($method, $classConfig);
$factoryClass->addMethodFromGenerator($factoryMethod);
}
}
// Generate File
$file->setNamespace('rg\\injektor\\generated');
$this->usedFactories = array_unique($this->usedFactories);
foreach ($this->usedFactories as &$usedFactory) {
$usedFactory = str_replace('rg\\injektor\\generated\\', '', $usedFactory);
$usedFactory = $usedFactory . '.php';
}
$file->setRequiredFiles($this->usedFactories);
$file->setClass($factoryClass);
$file->setFilename($this->factoryPath . DIRECTORY_SEPARATOR . $factoryName . '.php');
return $file;
}