Constants Link to heading

Uma constante é um identificador para um valor único. Como o nome sugere, esse valor não pode mudar durante a execução do script (exceto as constantes mágicas, que não são constantes de verdade). As constantes são case-sensitive por padrão. Por convenção, identificadores de constantes são sempre em maiúsculas.

<?php

// VÁLIDO
define("ABRA", "063");
define("GOL1", "075");
define("MEGA_GYARADOS", "130");

// INVÁLIDO
define("9TALES", "038");

// VÁLIDO PORÉM É UMA MÁ PRÁTICA
define("__POKEMON__", "Gonna catch'all!");
?>

Como as superglobals, o escopo de uma constante é global. Você pode acessar constantes de qualquer lugar em seu script sem se preocupar com o escopo.

Constantes no Laravel Link to heading

Segue mais um exemplo usando Pokemons.

<?php


namespace App;

class Pokemon {
   const TOTAL = 151;

    ...
}

?>

Então, adicione um alias no arquivo onfig/app.php.

aliases' => [
  //...
  'Pokemon' => App\Pokemon::class,

Assim, você pode acessar a constante onde você quiser (controllers ou blade files): Pokemon::TOTAL. Você também pode criar um arquivo constant.php dentro da sua pasta app e mapeá-la usando o arquivo composer.json.

...
"autoload": {
   "classmap": [
       "database/seeds",
       "database/factories"
   ],
   "psr-4": {
       "App\\": "app/"
   },
   "files": [
       "app/helpers.php",
       "app/config/constants.php"
   ]
}

Essa forma NÃO é uma boa prática e não é recomendada, é apenas um exemplo. A MELHOR MANEIRA de se fazer isso é criando um arquivo dentro da pasta config com um array de valores e acessando ele através do Helper Config seguindo o exemplo abaixo.

// CRIANDO UM ARRAY COM OS VALORES
// charmander.php
return [
    'moves' => [
        'growl'       => 0,
        'scratch'     => 40,
        'ember'       => 40,
        'smokescreen' => 0,
    ]
];
// ACESSANDO OS VALORES CONSTANTES
Config::get('charmander.moves');
// or if you want a specific one
Config::get('charmander.moves.ember'); // 40

“MAGIC” Constants Link to heading

O PHP providencia uma série de constantes definidas pelo Core da linguagem. Você pode conferir a lista de magic constants na documentação.