#[php_const]
Expand description
§#[php_const]
Attribute
Exports a Rust constant as a global PHP constant. The constant can be any
type that implements IntoConst
.
The wrap_constant!()
macro can be used to simplify the registration of
constants. It sets the name and doc comments for the constant.
You can rename the const with options:
name
- Allows you to rename the property, e.g.#[php(name = "new_name")]
change_case
- Allows you to rename the property using rename rules, e.g.#[php(change_case = PascalCase)]
§Examples
ⓘ
use ext_php_rs::prelude::*;
#[php_const]
const TEST_CONSTANT: i32 = 100;
#[php_const]
#[php(name = "I_AM_RENAMED")]
const TEST_CONSTANT_THE_SECOND: i32 = 42;
#[php_const]
const ANOTHER_STRING_CONST: &'static str = "Hello world!";
#[php_module]
pub fn get_module(module: ModuleBuilder) -> ModuleBuilder {
module
.constant(wrap_constant!(TEST_CONSTANT))
.constant(wrap_constant!(TEST_CONSTANT_THE_SECOND))
.constant(("MANUAL_CONSTANT", ANOTHER_STRING_CONST, &[]))
}
§PHP usage
<?php
var_dump(TEST_CONSTANT); // int(100)
var_dump(I_AM_RENAMED); // int(42)
var_dump(MANUAL_CONSTANT); // string(12) "Hello world!"