本文整理汇总了PHP中Zend_CodeGenerator_Php_Parameter类的典型用法代码示例。如果您正苦于以下问题:PHP Zend_CodeGenerator_Php_Parameter类的具体用法?PHP Zend_CodeGenerator_Php_Parameter怎么用?PHP Zend_CodeGenerator_Php_Parameter使用的例子?那么, 这里精选的类代码示例或许可以为您提供帮助。
在下文中一共展示了Zend_CodeGenerator_Php_Parameter类的6个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: fromReflection
public static function fromReflection(Zend_Reflection_Method $reflectionMethod)
{
$method = new self();
$method->setSourceContent($reflectionMethod->getContents(false));
$method->setSourceDirty(false);
if ($reflectionMethod->getDocComment() != '') {
$method->setDocblock(Zend_CodeGenerator_Php_Docblock::fromReflection($reflectionMethod->getDocblock()));
}
$method->setFinal($reflectionMethod->isFinal());
if ($reflectionMethod->isPrivate()) {
$method->setVisibility(self::VISIBILITY_PRIVATE);
} elseif ($reflectionMethod->isProtected()) {
$method->setVisibility(self::VISIBILITY_PROTECTED);
} else {
$method->setVisibility(self::VISIBILITY_PUBLIC);
}
$method->setStatic($reflectionMethod->isStatic());
$method->setName($reflectionMethod->getName());
foreach ($reflectionMethod->getParameters() as $reflectionParameter) {
$method->setParameter(Zend_CodeGenerator_Php_Parameter::fromReflection($reflectionParameter));
}
$body = $reflectionMethod->getBody();
$body2 = str_replace("\n\n", "\n", $body);
$body2 = preg_replace("|^\n\\s{4}|muU", "\n", $body2);
$body2 = preg_replace("|^\\s{4}|muU", "", $body2);
// $body2 = str_replace(' ', '.', $body2);
//dmDebug::kill($body, "\n".$body2);
$method->setBody($body2);
return $method;
}
示例2: fromReflection
/**
* fromReflection()
*
* @param Zend_Reflection_Parameter $reflectionParameter
* @return Zend_CodeGenerator_Php_Parameter
*/
public static function fromReflection(Zend_Reflection_Parameter $reflectionParameter)
{
$param = new Zend_CodeGenerator_Php_Parameter();
$param->setName($reflectionParameter->getName());
if($reflectionParameter->isArray()) {
$param->setType('array');
} else {
$typeClass = $reflectionParameter->getClass();
if($typeClass !== null) {
$param->setType($typeClass->getName());
}
}
$param->setPosition($reflectionParameter->getPosition());
if($reflectionParameter->isOptional()) {
$param->setDefaultValue($reflectionParameter->getDefaultValue());
}
$param->setPassedByReference($reflectionParameter->isPassedByReference());
return $param;
}
示例3: setParameter
/**
* setParameter()
*
* @param Zend_CodeGenerator_Php_Parameter|array $parameter
* @return Zend_CodeGenerator_Php_Method
*/
public function setParameter($parameter)
{
if (is_array($parameter)) {
$parameter = new Zend_CodeGenerator_Php_Parameter($parameter);
$parameterName = $parameter->getName();
} elseif ($parameter instanceof Zend_CodeGenerator_Php_Parameter) {
$parameterName = $parameter->getName();
} else {
require_once 'Zend/CodeGenerator/Php/Exception.php';
throw new Zend_CodeGenerator_Php_Exception('setParameter() expects either an array of method options or an instance of Zend_CodeGenerator_Php_Parameter');
}
$this->_parameters[$parameterName] = $parameter;
return $this;
}
示例4: testFromReflection_Generate
/**
* @dataProvider dataFromReflection_Generate
* @param string $methodName
* @param string $expectedCode
*/
public function testFromReflection_Generate($methodName, $expectedCode)
{
$reflParam = $this->getFirstReflectionParameter($methodName);
$codeGenParam = Zend_CodeGenerator_Php_Parameter::fromReflection($reflParam);
$this->assertEquals($expectedCode, $codeGenParam->generate());
}
示例5: createMethodLoad
/**
* @see models_ClassGenerator_Defaults_Interface::createMethodLoad
*/
public function createMethodLoad()
{
$resultMethod = new Zend_CodeGenerator_Php_Method();
$resultMethod->setName('load');
$resultMethod->setStatic(true);
$resultMethod->setVisibility(Zend_CodeGenerator_Php_Property::VISIBILITY_PUBLIC);
//---------------------- Parameters ---------------------
$paramZendDbObj = new Zend_CodeGenerator_Php_Parameter();
$paramZendDbObj->setName('zendDbObj');
$paramZendDbObj->setType('Zend_Db_Adapter_Abstract');
$resultMethod->setParameter($paramZendDbObj);
//Pkeys
$pkeyAttributes = $this->getPersistenceInformation()->getPkeyAttributes();
if (!empty($pkeyAttributes)) {
foreach ($pkeyAttributes as $pkeyAttribute) {
/* @var $pkeyAttribute Zend_CodeGenerator_Php_Property */
$paramPkey = new Zend_CodeGenerator_Php_Parameter();
$paramPkey->setName('par' . ucfirst($pkeyAttribute->getName()));
$paramPkey->setType(Model_ClassGenerator_PersistenceInformation::getType($pkeyAttribute));
$resultMethod->setParameter($paramPkey);
}
}
//--------------------------------------------------------
//Pkeys
$body = 'if(!isset(' . $this->_provideInstancesKeySelectorString() . ')){' . "\n";
$docblock = new Zend_CodeGenerator_Php_Docblock();
$docblock->setShortDescription('Loads the entry from the database.');
$resultMethod->setDocblock($docblock);
$body .= "\t" . '$table = self::' . $this->_provideTableConstant() . ';' . "\n";
//TODO - Konstante!
$body .= "\t" . '$select = $this->zendDbObj->select($table, \'*\');' . "\n";
$pkeyAttributes = $this->getPersistenceInformation()->getPkeyAttributes();
if (!empty($pkeyAttributes)) {
foreach ($pkeyAttributes as $pkeyAttribute) {
/* @var $pkeyAttribute Zend_CodeGenerator_Php_Property */
$body .= "\t" . '$select->where(self::' . $this->_provideTableConstant() . '.\'.\'.self::' . $this->_provideColumnConstant($pkeyAttribute) . '.\'=?\', $this->' . $pkeyAttribute->getName() . ');' . "\n\n";
}
}
$body .= "\t" . 'self::$instance' . $keysString . ' = new self($parZendDbObj);' . "\n";
$body .= '}' . "\n\n";
$body .= 'return self::$instance' . $keysString . ';';
$resultMethod->setBody($body);
$this->getClass()->setMethod($resultMethod);
}
示例6: createParam
/**
* Create a CodeGenerator parameter
*
* @param string $name
* @param null|string $type
* @param null|bool $reference
*
* @return Zend_CodeGenerator_Php_Parameter
*/
public static function createParam($name, $type = null, $reference = null)
{
$param = new Zend_CodeGenerator_Php_Parameter();
$param->setName($name);
if (!empty($type)) {
$param->setType($type);
}
if ($reference === true) {
$param->setPassedByReference(true);
}
return $param;
}