Struct ext_php_rs::ffi::_zend_object
source · [−]#[repr(C)]pub struct _zend_object {
pub gc: zend_refcounted_h,
pub handle: u32,
pub ce: *mut zend_class_entry,
pub handlers: *const zend_object_handlers,
pub properties: *mut HashTable,
pub properties_table: [zval; 1],
}
Fields
gc: zend_refcounted_h
handle: u32
ce: *mut zend_class_entry
handlers: *const zend_object_handlers
properties: *mut HashTable
properties_table: [zval; 1]
Implementations
sourceimpl _zend_object
impl _zend_object
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_name(&self) -> Result<String>
pub fn get_class_name(&self) -> Result<String>
Attempts to retrieve the class name of the object.
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
.
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>,
Attempts to read a property from the Object. Returns a result containing
the value of the property if it exists and can be read, and an
Error
otherwise.
Parameters
name
- The name of the property.query
- The type of query to use when attempting to get a property.
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()
.
Auto Trait Implementations
impl RefUnwindSafe for _zend_object
impl !Send for _zend_object
impl !Sync for _zend_object
impl Unpin for _zend_object
impl UnwindSafe for _zend_object
Blanket Implementations
sourceimpl<T> BorrowMut<T> for T where
T: ?Sized,
impl<T> BorrowMut<T> for T where
T: ?Sized,
const: unstable · sourcefn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more