* Refactored types
Moved types into their own files within the types directory
* Moved Zval set logic into object
Updated example
* WIP: Implementation of hashtable
* Added ability to retrieve zend hashtable from Zval
* Change `ZendHashTable::push` to work with zend functions
Implement iterator for ZendHashTable
* Implemented immutable iterator for ZendHashTable
* Added implementations for converting HashMap and vectors to
ZendHashTable
* Changed ZendHashTable to a wrapper, zval array
Better design, allows for `Drop` implementation for arrays that
are created and unused.
* Allow `Zval::set_array` to be passed Vec and HashMap
* Added methods to retrieve values from Zend hashtable
* Added methods to remove values from Zend hashtable
* Added ability to set value of zval
This allows the return value to now be set.
See the example in `example/skel/src.lib`.
* Added PHP internals book to resources
* Pass self as pointer to keep consistency
* Added argument overloading
If a double is requested but a long is available, we can cast the
long into a double. This is required if the user gives an integer
into a double field.
As well as this, if a string is requested but a long or double is
available, we can cast both of these into a string.
* Check if zval is present before setting in arg
* Added optional argument example
* Updated documentation for ZendLong
* WIP: added null checks
* Moved not required argument logic into function
Seemed more logical, as you can't have a required argument after the
not required argument. Usage:
```rs
FunctionBuilder::new("skeleton_version", skeleton_version)
.arg(Arg::new("req_arg1", DataType::String))
.arg(Arg::new("req_arg1", DataType::String))
.not_required()
.arg(Arg::new("not_req_arg1", DataType::String))
.build()
```
* Added zend_value implementation
Helper functions to retrieve the value from zvals
* Started work on argument parser
* Added PHP version support notice
Due to the way the Zend API changes and the fact that the
stable interface is exposed via C macros, there is no
support for versions lower than PHP 8.0. In the future
we can support PHP 7.4 through Rust features.
* Added TryFrom implementations for Zval -> Types
* Added ability to select arguments from ExecutionData
* Added ability to parse arguments and retrieve val
See `example/skel/src/lib.rs` for usage.