1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111
// Copyright (c) 2022 PHPER Framework Team
// PHPER is licensed under Mulan PSL v2.
// You can use this software according to the terms and conditions of the Mulan
// PSL v2. You may obtain a copy of Mulan PSL v2 at:
// http://license.coscl.org.cn/MulanPSL2
// THIS SOFTWARE IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY
// KIND, EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO
// NON-INFRINGEMENT, MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
// See the Mulan PSL v2 for more details.
/// PHP echo.
///
/// # Examples
///
/// ```no_test
/// phper::echo!("Hello, {}!", message)
/// ```
#[macro_export]
macro_rules! echo {
($($arg:tt)*) => ({
$crate::output::echo(std::format!($($arg)*))
})
}
/// PHP error logging, will exit the request.
///
/// # Examples
///
/// ```no_test
/// phper::errro!("Hello, {}!", message)
/// ```
#[macro_export]
macro_rules! error {
($($arg:tt)*) => ({
$crate::output::log($crate::output::LogLevel::Error, std::format!($($arg)*))
})
}
/// PHP warning logging.
///
/// # Examples
///
/// ```no_test
/// phper::warning!("Hello, {}!", message)
/// ```
#[macro_export]
macro_rules! warning {
($($arg:tt)*) => ({
$crate::output::log($crate::output::LogLevel::Warning, std::format!($($arg)*))
})
}
/// PHP notice logging.
///
/// # Examples
///
/// ```no_test
/// phper::notice!("Hello, {}!", message)
/// ```
#[macro_export]
macro_rules! notice {
($($arg:tt)*) => ({
$crate::output::log($crate::output::LogLevel::Notice, std::format!($($arg)*))
})
}
/// PHP deprecated logging.
///
/// # Examples
///
/// ```no_test
/// phper::deprecated!("Hello, {}!", message)
/// ```
#[macro_export]
macro_rules! deprecated {
($($arg:tt)*) => ({
$crate::output::log($crate::output::LogLevel::Deprecated, std::format!($($arg)*))
})
}
/// Equivalent to the php `CG`.
#[macro_export]
macro_rules! cg {
($x:ident) => {
$crate::sys::compiler_globals.$x
};
}
/// Equivalent to the php `EG`.
#[macro_export]
macro_rules! eg {
($x:ident) => {
$crate::sys::executor_globals.$x
};
}
/// Equivalent to the php `PG`.
#[macro_export]
macro_rules! pg {
($x:ident) => {
$crate::sys::core_globals.$x
};
}
/// Equivalent to the php `SG`.
#[macro_export]
macro_rules! sg {
($x:ident) => {
$crate::sys::sapi_globals.$x
};
}