#[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§

source§

impl _zend_object

source

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.

source

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");
source

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.

source

pub fn get_class_entry(&self) -> &'static ClassEntry

Returns the ClassEntry associated with this object.

§Panics

Panics if the class entry is invalid.

source

pub fn get_class_name(&self) -> Result<String>

Attempts to retrieve the class name of the object.

source

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.

source

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.

source

pub fn is_traversable(&self) -> bool

Returns whether this object is an instance of \Traversable

§Panics

Panics if the class entry is invalid.

source

pub fn try_call_method( &self, name: &str, params: Vec<&dyn IntoZvalDyn> ) -> Result<Zval>

source

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.
source

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.
source

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.
source

pub fn get_properties(&self) -> Result<&HashTable>

Attempts to retrieve the properties of the object. Returned inside a Zend Hashtable.

source

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().

source

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.

source

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.

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for T
where T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for T
where T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

source§

impl<T, U> Into<U> for T
where U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.