Type Alias ext_php_rs::types::ZendObject
source · pub type ZendObject = zend_object;
Expand description
A PHP object.
This type does not maintain any information about its type, for example,
classes with have associated Rust structs cannot be accessed through this
type. ZendClassObject
is used for this purpose, and you can convert
between the two.
Aliased Type§
struct ZendObject {
pub gc: _zend_refcounted_h,
pub handle: u32,
pub ce: *mut _zend_class_entry,
pub handlers: *const _zend_object_handlers,
pub properties: *mut _zend_array,
pub properties_table: [_zval_struct; 1],
}
Fields§
§gc: _zend_refcounted_h
§handle: u32
§ce: *mut _zend_class_entry
§handlers: *const _zend_object_handlers
§properties: *mut _zend_array
§properties_table: [_zval_struct; 1]
Implementations§
source§impl ZendObject
impl ZendObject
sourcepub fn new(ce: &ClassEntry) -> ZBox<Self>
pub fn new(ce: &ClassEntry) -> ZBox<Self>
Creates a new ZendObject
, returned inside an ZBox<ZendObject>
wrapper.
§Parameters
ce
- The type of class the new object should be an instance of.
§Panics
Panics when allocating memory for the new object fails.
sourcepub fn new_stdclass() -> ZBox<Self>
pub fn new_stdclass() -> ZBox<Self>
Creates a new stdClass
instance, returned inside an
ZBox<ZendObject>
wrapper.
§Panics
Panics if allocating memory for the object fails, or if the stdClass
class entry has not been registered with PHP yet.
§Example
use ext_php_rs::types::ZendObject;
let mut obj = ZendObject::new_stdclass();
obj.set_property("hello", "world");
sourcepub fn from_class_object<T: RegisteredClass>(
obj: ZBox<ZendClassObject<T>>
) -> ZBox<Self>
pub fn from_class_object<T: RegisteredClass>( obj: ZBox<ZendClassObject<T>> ) -> ZBox<Self>
Converts a class object into an owned ZendObject
. This removes any
possibility of accessing the underlying attached Rust struct.
sourcepub fn get_class_entry(&self) -> &'static ClassEntry
pub fn get_class_entry(&self) -> &'static ClassEntry
sourcepub fn get_class_name(&self) -> Result<String>
pub fn get_class_name(&self) -> Result<String>
Attempts to retrieve the class name of the object.
sourcepub fn instance_of(&self, ce: &ClassEntry) -> bool
pub fn instance_of(&self, ce: &ClassEntry) -> bool
Returns whether this object is an instance of the given ClassEntry
.
This method checks the class and interface inheritance chain.
§Panics
Panics if the class entry is invalid.
sourcepub fn is_instance<T: RegisteredClass>(&self) -> bool
pub fn is_instance<T: RegisteredClass>(&self) -> bool
Checks if the given object is an instance of a registered class with
Rust type T
.
This method doesn’t check the class and interface inheritance chain.
sourcepub fn is_traversable(&self) -> bool
pub fn is_traversable(&self) -> bool
Returns whether this object is an instance of \Traversable
§Panics
Panics if the class entry is invalid.
pub fn try_call_method( &self, name: &str, params: Vec<&dyn IntoZvalDyn> ) -> Result<Zval>
sourcepub fn get_property<'a, T>(&'a self, name: &str) -> Result<T>where
T: FromZval<'a>,
pub fn get_property<'a, T>(&'a self, name: &str) -> Result<T>where
T: FromZval<'a>,
sourcepub fn set_property(&mut self, name: &str, value: impl IntoZval) -> Result<()>
pub fn set_property(&mut self, name: &str, value: impl IntoZval) -> Result<()>
Attempts to set a property on the object.
§Parameters
name
- The name of the property.value
- The value to set the property to.
sourcepub fn has_property(&self, name: &str, query: PropertyQuery) -> Result<bool>
pub fn has_property(&self, name: &str, query: PropertyQuery) -> Result<bool>
Checks if a property exists on an object. Takes a property name and
query parameter, which defines what classifies if a property exists
or not. See PropertyQuery
for more information.
§Parameters
name
- The name of the property.query
- The ‘query’ to classify if a property exists.
sourcepub fn get_properties(&self) -> Result<&HashTable>
pub fn get_properties(&self) -> Result<&HashTable>
Attempts to retrieve the properties of the object. Returned inside a Zend Hashtable.
sourcepub fn extract<'a, T>(&'a self) -> Result<T>where
T: FromZendObject<'a>,
pub fn extract<'a, T>(&'a self) -> Result<T>where
T: FromZendObject<'a>,
Extracts some type from a Zend object.
This is a wrapper function around FromZendObject::extract()
.
sourcepub fn get_id(&self) -> u32
pub fn get_id(&self) -> u32
Returns an unique identifier for the object.
The id is guaranteed to be unique for the lifetime of the object.
Once the object is destroyed, it may be reused for other objects.
This is equivalent to calling the spl_object_id
PHP function.
sourcepub fn hash(&self) -> String
pub fn hash(&self) -> String
Computes an unique hash for the object.
The hash is guaranteed to be unique for the lifetime of the object.
Once the object is destroyed, it may be reused for other objects.
This is equivalent to calling the spl_object_hash
PHP function.