apc_define_constants

(PECL apc >= 3.0.0)

apc_define_constants Define um conjunto de constantes para recuperação e definição em massa

Descrição

bool apc_define_constants ( string $key , array $constants [, bool $case_sensitive ] )

define() é notoriamente lento. Já que o benefício do APC é aumentar a performance de scripts/aplicações, esse mecanismo é disponibilizado para automatizar o processo de definição de constantes em massa. No entanto, essa função não se desempenha tão bem quanto antecipado.

Para uma solução com melhor performance, tente a extensão » hidef do PECL.

Nota: Para remover um conjunto de constantes guardadas (sem limpar o cache inteiro), um array vazio pode ser passado como parâmetro de constants, efetivamente limpando os valore(s) guardado(s).

Parâmetros

key

A key serve de nome para a constante sendo guardada. Essa key é usada para recuperar as constantes guardadas com apc_load_constants().

constants

Um array associativo de pares constant_name => value. O constant_name deve serguir as regras normais de nomenclatura de constantes. value deve ser um valor escalar (string ou número).

case_sensitive

O comportamento padrão para constantes é ser declarado sensíveis ao caso; ex.: CONSTANT e Constant representam valores diferentes. Se esse parâmetro tem valor FALSE as constantes serão declaradas como símbolos insensíveis ao caso.

Valor Retornado

Retorna TRUE em caso de sucesso ou FALSE em caso de falha.

Exemplos

Exemplo #1 Exemplo de apc_define_constants()

<?php
$constants 
= array(
    
'ONE'   => 1,
    
'TWO'   => 2,
    
'THREE' => 3,
);
apc_define_constants('numbers'$constants);
echo 
ONETWOTHREE;
?>

O exemplo acima irá imprimir:

123

Veja Também

add a note add a note

User Contributed Notes 2 notes

up
0
jmucchiello AT yahoooooooo DOT com
4 years ago
It doesn't introduce much overhead if you make use of conditional function definitions:

<?php
if (function_exists('apc_load_constants')) {
    function
define_array($key, $arr, $case_sensitive = true)
    {
        if (!
apc_load_constants($key, $case_sensitive)) {
           
apc_define_constants($key, $arr, $case_sensitive);
        }
    }
} else {
    function
define_array($key, $arr, $case_sensitive = true)
    {
        foreach (
$arr as $name => $value)
           
define($name, $value, $case_sensitive);
    }
}

//in your code you just write something like this:

define_array('NUMBERS', Array('ONE' => 1, 'TWO' => 2, 'THREE' => 3));
?>
up
0
webmaster at thedigitalorchard dot ca
4 years ago
An observation that I've made is that the nature of apc_define_constants() binding the list of constants to a key and then requiring that key to load the constants is limiting. Furthermore, there's no way to append additional constants to a given key.

A solution that I've been adopting is to build a list of constants to be defined, and then do one of two things:

1) if APC is enabled, then use apc_define_constants();
2) ...else loop through the list and define each constant normally.

The problem I've run into is when this process happens at different places in a large application, it can introduce overhead that otherwise wouldn't be there if it was possible to append to an existing list of defined constants in APC.
To Top