本文整理汇总了PHP中Zend_Reflection_Class::getProperties方法的典型用法代码示例。如果您正苦于以下问题:PHP Zend_Reflection_Class::getProperties方法的具体用法?PHP Zend_Reflection_Class::getProperties怎么用?PHP Zend_Reflection_Class::getProperties使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Zend_Reflection_Class
的用法示例。
在下文中一共展示了Zend_Reflection_Class::getProperties方法的10个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: fromReflection
/**
* fromReflection() - build a Code Generation PHP Object from a Class Reflection
*
* @param Zend_Reflection_Class $reflectionClass
* @return dmZendCodeGeneratorPhpClass
*/
public static function fromReflection(Zend_Reflection_Class $reflectionClass)
{
$class = new self();
$class->setSourceContent($class->getSourceContent());
$class->setSourceDirty(false);
if ($reflectionClass->getDocComment() != '') {
$class->setDocblock(Zend_CodeGenerator_Php_Docblock::fromReflection($reflectionClass->getDocblock()));
}
$class->setAbstract($reflectionClass->isAbstract());
$class->setName($reflectionClass->getName());
if ($parentClass = $reflectionClass->getParentClass()) {
$class->setExtendedClass($parentClass->getName());
$interfaces = array_diff($parentClass->getInterfaces(), $reflectionClass->getInterfaces());
} else {
$interfaces = $reflectionClass->getInterfaces();
}
$class->setImplementedInterfaces($interfaces);
$properties = array();
foreach ($reflectionClass->getProperties() as $reflectionProperty) {
if ($reflectionProperty->getDeclaringClass()->getName() == $class->getName()) {
$properties[] = Zend_CodeGenerator_Php_Property::fromReflection($reflectionProperty);
}
}
$class->setProperties($properties);
$methods = array();
foreach ($reflectionClass->getMethods(-1, 'dmZendReflectionMethod') as $reflectionMethod) {
if ($reflectionMethod->getDeclaringClass()->getName() == $class->getName()) {
$methods[] = dmZendCodeGeneratorPhpMethod::fromReflection($reflectionMethod);
}
}
$class->setMethods($methods);
return $class;
}
示例2: testPropertyReturns
public function testPropertyReturns()
{
$reflectionClass = new Zend_Reflection_Class('Zend_Reflection_TestSampleClass2');
$propertyByName = $reflectionClass->getProperty('_prop1');
$this->assertEquals('Zend_Reflection_Property', get_class($propertyByName));
$propertiesAll = $reflectionClass->getProperties();
$this->assertEquals(2, count($propertiesAll));
$firstProperty = array_shift($propertiesAll);
$this->assertEquals('_prop1', $firstProperty->getName());
}
示例3: _getProperties
protected function _getProperties()
{
$propertyArray = array();
$class = new Zend_Reflection_Class($this);
$properties = $class->getProperties();
foreach ($properties as $property) {
if ($property->isPublic()) {
$propertyArray[] = $property->getName();
}
}
return $propertyArray;
}
示例4: InjectDependencies
public function InjectDependencies($object)
{
$reflectionClass = new \Zend_Reflection_Class($object);
//$reflectionProperty = new \Zend_Reflection_Property(null, null);
foreach ($reflectionClass->getProperties() as $reflectionProperty) {
/** @var \Zend_Reflection_Property $reflectionProperty */
$reflectionDocComment = $reflectionProperty->getDocComment();
if ($reflectionDocComment) {
if ($reflectionDocComment->hasTag("Inject")) {
$reflectionDocCommentTag = $reflectionDocComment->getTag("Inject");
$dependencyName = $reflectionDocCommentTag->getDescription();
$dependency = $this->kernel->Get($dependencyName);
$reflectionProperty->setAccessible(true);
$reflectionProperty->setValue($object, $dependency);
}
}
}
//print_r($reflectionClass);
}
示例5: preDispatch
/**
* Takes care of injecting controller dependencies
* into the controller at runtime.
*/
public function preDispatch()
{
$actionController = $this->getActionController();
$r = new Zend_Reflection_Class($actionController);
$properties = $r->getProperties();
foreach ($properties as $property) {
if ($property->getDeclaringClass()->getName() == get_class($actionController)) {
if ($property->getDocComment() && $property->getDocComment()->hasTag('InjectService')) {
$tag = $property->getDocComment()->getTag('InjectService');
if ($tag->getDescription()) {
$sc = Zend_Registry::get('sc');
$service = $sc->getService(trim(lcfirst($tag->getDescription())));
$property->setAccessible(true);
$property->setValue($actionController, $service);
} else {
throw new Exception("No service key given");
}
}
}
}
}
示例6: setUp
/**
* Check for dependencies and inject them if needed.
*/
protected function setUp()
{
parent::setUp();
if (Zend_Registry::isRegistered(LoSo_Zend_Application_Bootstrap_SymfonyContainerBootstrap::getRegistryIndex()) && ($container = Zend_Registry::get(LoSo_Zend_Application_Bootstrap_SymfonyContainerBootstrap::getRegistryIndex())) instanceof \Symfony\Component\DependencyInjection\ContainerInterface) {
$r = new Zend_Reflection_Class($this);
$properties = $r->getProperties();
foreach ($properties as $property) {
if ($property->getDocComment() && $property->getDocComment()->hasTag('Inject')) {
$injectTag = $property->getDocComment()->getTag('Inject');
$serviceName = $injectTag->getDescription();
if (empty($serviceName)) {
$serviceName = $this->_formatServiceName($property->getName());
}
if ($container->has($serviceName)) {
$property->setAccessible(true);
$property->setValue($this, $container->get($serviceName));
}
}
}
}
}
示例7: objectToDictionary
/**
* Method scan given object for properties which has public getters
* and generate array of entities-replacements pairs from this method
* @param $object Object
* @param $namespace Custom namespace for replacements
* @return Tools_Content_EntityParser Return self for chaining
* @throws Exceptions_SeotoasterException
*/
public function objectToDictionary($object, $namespace = null)
{
if (!is_object($object)) {
throw new Exceptions_SeotoasterException('Given variable must be an object');
}
$reflection = new Zend_Reflection_Class($object);
$dictionary = array();
foreach ($reflection->getProperties() as $prop) {
$normalizedPropName = join('', array_map('ucfirst', explode('_', $prop->getName())));
$getter = 'get' . join('', array_map('ucfirst', explode('_', $prop->getName())));
if ($reflection->hasMethod($getter)) {
$replacement = $object->{$getter}();
$className = empty($namespace) ? preg_replace('/.*_([\\w\\d]*)$/', '$1', $reflection->getName()) : $namespace;
$entityName = strtolower($className . ':' . $normalizedPropName);
if (!is_array($replacement) && !is_object($replacement)) {
$dictionary[$entityName] = $replacement;
}
}
}
$this->addToDictionary($dictionary);
return $this;
}
示例8: _addClassAttributes
/**
* Generate map of public class attributes
*
* @param string $typename type name
* @param DOMElement $typexml target XML element
* @return void
*/
protected function _addClassAttributes($typename, DOMElement $typexml)
{
// Do not try to autoload here because _phpTypeToAS should
// have already attempted to load this class
if (!class_exists($typename, false)) {
return;
}
$rc = new Zend_Reflection_Class($typename);
foreach ($rc->getProperties() as $prop) {
if (!$prop->isPublic()) {
continue;
}
$propxml = $this->_xml->createElement('property');
$propxml->setAttribute('name', $prop->getName());
$type = $this->_registerType($this->_getPropertyType($prop));
$propxml->setAttribute('type', $type);
$typexml->appendChild($propxml);
}
}
示例9: _getClassAnnotations
protected function _getClassAnnotations($class)
{
$annotations = array();
// TODO: Go up to parent classes (let subclasses override tags from parent classes)
$reflectionClass = new Zend_Reflection_Class($class);
foreach ($reflectionClass->getProperties() as $property) {
$docblock = $property->getDocComment();
if ($docblock) {
$tags = $docblock->getTags('firephp');
if ($tags) {
foreach ($tags as $tag) {
list($name, $value) = $this->_parseAnnotationTag($tag);
$annotations['$' . $property->getName()][$name] = $value;
}
}
}
}
return $annotations;
}
示例10: _getClassAnnotations
protected function _getClassAnnotations($class)
{
$annotations = array();
// TODO: Go up to parent classes (let subclasses override tags from parent classes)
try {
$reflectionClass = new Zend_Reflection_Class($class);
foreach ($reflectionClass->getProperties() as $property) {
$docblock = $property->getDocComment();
if ($docblock) {
$tags = $docblock->getTags('insight');
if ($tags) {
foreach ($tags as $tag) {
list($name, $value) = $this->_parseAnnotationTag($tag);
$annotations['$' . $property->getName()][$name] = $value;
}
}
}
}
} catch (Exception $e) {
// silence errors (Zend_Reflection_Docblock_Tag throws if '@name(..)' tag found)
// TODO: Optionally show these errors
}
return $annotations;
}