We cannot implement `IntoIterator` for the `ZendHashTable` object as we
do not manage the memory, therefore we don't actually 'consume' the
object as the trait intends. Therefore, `IntoIterator` is implemented on
`&'a ZendHashTable`. This `ZendHashTable::iter` function simply forwards
the call.
* Object functions now return references to objects
Added ability to get object class name as well as hashtable of
properties
* Return mutable reference to objects
* Optimized `unwrap_or_else` calls
* Fixed adding properties to classes
* Removed unused function from wrapper header
* Moved property functions into `ZendObject`
* Introduced `ZendString` wrapper for raw pointer
* Set refcount of Zval to 0 when setting string properties
* Added ability to check if a property exists
Made some lifetimes explicit, check if property exists before attempting
to get.
* Removed unused file
* Removed unused lifetimes
Clippy was complaining, they were added to ensure that a `'static`
lifetime wasn't returned.
* Added support for PHP ZTS
* Added GitHub action for ZTS
Runs seperate from the other tests, as the setup-php action does not
support ZTS, therefore we run the tests in a Docker container.
* Source Rust env file before building
* No `source` command on docker
* Another attempt at fixing Rust in Docker
* Added ability to `unpack` and `pack` from Rust
* Updated `Pack::pack_into` documentation
* Replaced constant with new flags, fixed example
* Accept slices/arrays when using `Zval::set_binary`
We shouldn't really be returning Zval objects, rather references to Zval
objects. There is currently a memory leak with arrays that need to be
resolved.
* Exceptions have static lifetimes
* Added functions for throwing exceptions
Changed the `ClassEntry` implementation to unwrap the result before
returning, as these types are guaranteed to be valid. Also replaced the
'a lifetime with 'static lifetimes.
* Initialize handlers on first touch
In the process of turning the two macros into one derive proc macro
* Changed the object handler macros into derive
* Add PHP thread safety to build matrix
* Revert "Add PHP thread safety to build matrix"
This reverts commit 7de868e6b6e329b87c412af8daf61cba1a3e29c5.
* Fixed arguments not being reconized by PHP
* Added function to create interned Zend string
* Changed statup/shutdown function types to Rust types
Prevents users having to import from bindings
* Added flags for classes
* WIP: class builder
* Added properties to classes
* Added class constants
* Added PHP base extensions
Added class inheritance
* Fixed memory leak with constants
Created C wrapper which is compiled and linked in the `build.rs`
script. In the process removed the `build_id()` function as now
we can just export the macro via a function which is defined in
`wrapper.c`.
* Fixed lint issue
* Added functions to set zval as different strings
Regular strings, persistent strings and interned strings
* Updated README with requirements
* Fixed lint issues
* Changed properties to use proper function
* Free zend string when it is changed for a persistent one
* WIP: overriding zend objects
* Added comments to the top of modules.
* Fixed some comments
* Initialize hash map with initial size when converting from HashMap and
Vec
* Removed unused imports
* WIP: object overrides
* Added DerefMut implementation for ZendClassObject
Tidied up lints that clippy was complaining about, removed debugging
statements.
* Fixed pointer dereference error in macro
* Added missing comments for trait
* All functions now take mutable references vs ptr
Removed SetZval implementation for *mut Zval.
Made bindings public, removed duplicate bindings.
Fixed `create_object` handler not working.
Note to self: smaller commits.
* Showcase ability to use shared object
* WIP: debugging property errors
Changed `function` to `method` in classes
Fixed doctest for `c_str`
* Disabled class properties temporarily
See #16
* Initialize args array with size