pub trait IntoConst: Sized {
    // Required method
    fn register_constant_flags(
        &self,
        name: &str,
        module_number: i32,
        flags: GlobalConstantFlags
    ) -> Result<()>;

    // Provided method
    fn register_constant(&self, name: &str, module_number: i32) -> Result<()> { ... }
}
Expand description

Implemented on types which can be registered as a constant in PHP.

Required Methods§

source

fn register_constant_flags( &self, name: &str, module_number: i32, flags: GlobalConstantFlags ) -> Result<()>

Registers a global module constant in PHP, with the value as the content of self. This function must be called in the module startup function, which is called after the module is initialized. The second parameter of the startup function will be the module number. This function allows you to pass any extra flags in if you require. Note that the case-sensitive and persistent flags are not set when you use this function, you must set these yourself.

Returns a result containing nothing if the constant was successfully registered.

§Parameters
  • name - The name of the constant.
  • module_number - The module number that we are registering the constant under.
  • flags - Flags to register the constant with.
§Examples
use ext_php_rs::{constant::IntoConst, flags::GlobalConstantFlags};

pub extern "C" fn startup_function(_type: i32, module_number: i32) -> i32 {
    42.register_constant_flags("MY_CONST_NAME", module_number, GlobalConstantFlags::Persistent | GlobalConstantFlags::Deprecated);
    0
}

Provided Methods§

source

fn register_constant(&self, name: &str, module_number: i32) -> Result<()>

Registers a global module constant in PHP, with the value as the content of self. This function must be called in the module startup function, which is called after the module is initialized. The second parameter of the startup function will be the module number. By default, the case-insensitive and persistent flags are set when registering the constant.

Returns a result containing nothing if the constant was successfully registered.

§Parameters
  • name - The name of the constant.
  • module_number - The module number that we are registering the constant under.
§Examples
use ext_php_rs::constant::IntoConst;

pub extern "C" fn startup_function(_type: i32, module_number: i32) -> i32 {
    5.register_constant("MY_CONST_NAME", module_number); // MY_CONST_NAME == 5
    "Hello, world!".register_constant("STRING_CONSTANT", module_number); // STRING_CONSTANT == "Hello, world!"
    0
}

Object Safety§

This trait is not object safe.

Implementations on Foreign Types§

source§

impl IntoConst for &str

source§

fn register_constant_flags( &self, name: &str, module_number: i32, flags: GlobalConstantFlags ) -> Result<()>

source§

impl IntoConst for bool

source§

fn register_constant_flags( &self, name: &str, module_number: i32, flags: GlobalConstantFlags ) -> Result<()>

source§

impl IntoConst for f32

source§

fn register_constant_flags( &self, name: &str, module_number: i32, flags: GlobalConstantFlags ) -> Result<()>

source§

impl IntoConst for f64

source§

fn register_constant_flags( &self, name: &str, module_number: i32, flags: GlobalConstantFlags ) -> Result<()>

source§

impl IntoConst for i8

source§

fn register_constant_flags( &self, name: &str, module_number: i32, flags: GlobalConstantFlags ) -> Result<()>

source§

impl IntoConst for i16

source§

fn register_constant_flags( &self, name: &str, module_number: i32, flags: GlobalConstantFlags ) -> Result<()>

source§

impl IntoConst for i32

source§

fn register_constant_flags( &self, name: &str, module_number: i32, flags: GlobalConstantFlags ) -> Result<()>

source§

impl IntoConst for i64

source§

fn register_constant_flags( &self, name: &str, module_number: i32, flags: GlobalConstantFlags ) -> Result<()>

source§

impl IntoConst for String

source§

fn register_constant_flags( &self, name: &str, module_number: i32, flags: GlobalConstantFlags ) -> Result<()>

Implementors§