diff options
Diffstat (limited to 'src/longmember.h')
-rw-r--r-- | src/longmember.h | 31 |
1 files changed, 14 insertions, 17 deletions
diff --git a/src/longmember.h b/src/longmember.h index 8e89292..09d3d8a 100644 --- a/src/longmember.h +++ b/src/longmember.h @@ -4,7 +4,7 @@ * Implementation for a property that is initially set to a long value * * @author Emiel Bruijntjes <emiel.bruijntjes@copernica.com> - * @copyright 2013 Copernica BV + * @copyright 2013, 2014 Copernica BV */ /** @@ -15,7 +15,7 @@ namespace Php { /** * Class definition */ -class LongMember : public MemberInfo +class LongMember : public Member { private: /** @@ -27,9 +27,11 @@ private: public: /** * Constructor + * @param name * @param value + * @param flags */ - LongMember(long value) : MemberInfo(), _value(value) {} + LongMember(const char *name, long value, int flags) : Member(name, flags), _value(value) {} /** * Destructor @@ -37,27 +39,22 @@ public: virtual ~LongMember() {} /** - * Is this a property member - * @return bool + * Declare class constant + * @param entry Class entry */ - virtual bool isProperty() { return true; } + virtual void constant(struct _zend_class_entry *entry) override + { + zend_declare_class_constant_long(entry, _name.c_str(), _name.size(), _value); + } /** * Virtual method to declare the property * @param entry Class entry - * @param name Name of the member - * @param size Size of the name - * @param flags Additional flags */ - virtual void declare(struct _zend_class_entry *entry, const char *name, int size, MemberModifier flags) override + virtual void declare(struct _zend_class_entry *entry) override { -#if PHP_VERSION_ID >= 50400 - if (flags == constMember) zend_declare_class_constant_long(entry, name, size, _value); - else zend_declare_property_long(entry, name, size, _value, flags); -#else - if (flags == constMember) zend_declare_class_constant_long(entry, (char *) name, size, _value); - else zend_declare_property_long(entry, (char *) name, size, _value, flags); -#endif + // char* cast is necessary for php 5.3 + zend_declare_property_long(entry, (char *)_name.c_str(), _name.size(), _value, _flags); } }; |