diff options
-rw-r--r-- | include/interface.h | 16 | ||||
-rw-r--r-- | zend/classimpl.h | 2 |
2 files changed, 17 insertions, 1 deletions
diff --git a/include/interface.h b/include/interface.h index ecb011e..5b15016 100644 --- a/include/interface.h +++ b/include/interface.h @@ -43,6 +43,22 @@ public: } /** + * Add a - of course abstract - method to the interface + * @param name Name of the method + * @param flags Optional flags + * @param arguments Optional description of the arguments + * @return Interface Same object to allow chaining + */ + Interface &method(const char *name, int flags, const Arguments &arguments = {}) + { + // call base + ClassBase::method(name, flags, arguments); + + // return self + return *this; + } + + /** * Extends exisiting PHP interface * * Note that the interface that you supply must already exist! Therefore diff --git a/zend/classimpl.h b/zend/classimpl.h index 5d0ab60..bd385be 100644 --- a/zend/classimpl.h +++ b/zend/classimpl.h @@ -414,7 +414,7 @@ public: * @param flags Optional flags (like public or protected) * @param args Description of the supported arguments */ - void method(const char *name, int flags=0, const Arguments &args = {}) { _methods.push_back(std::make_shared<Method>(name, (flags & (MethodModifiers | Static)) | Abstract , args)); } + void method(const char *name, int flags=0, const Arguments &args = {}) { _methods.push_back(std::make_shared<Method>(name, (flags & (MethodModifiers | Static | Abstract)) , args)); } /** * Add a property to the class |