Por desgracia, las posibilidades de bootstrap.php
es bootstrap.php
, por lo que la variable $adv_types
quedará fuera de alcance tan pronto como PHP complete el análisis bootstrap.php
.
Existen varios enfoques que puede tomar, según sus necesidades reales.
Solución 1: se necesitan estas variables en muchos de sus puntos de vista
Si necesita la variable que esté disponible en todos los puntos de vista, se debe definir y establecer en AppController::beforeRender()
.
En app/app_controller.php
:
class AppController extends Controller
{
function beforeRender()
{
parent::beforeRender();
$adv_types = array('top' => 'Верх', 'left' => 'Левое', 'right' => 'Правое', 'bottom' => 'Нижнее');
$this->set(compact('adv_types'));
}
}
Esto permitirá que ninguna de sus puntos de vista para acceder a la matriz $adv_types
.
Solución 2: es posible que tenga acceso a esta variable en cualquier lugar dentro de su aplicación CakePHP
Si tiene que acceder a la variable $adv_types
otras partes de su aplicación, puede agregarlo a la colección Configure
. En bootstrap.php
:
Configure::write('NameOfYourAppAsNamespace.adv_types', array('top' => 'Верх', 'left' => 'Левое', 'right' => 'Правое', 'bottom' => 'Нижнее'));
le recomiendo usar el nombre de su proyecto como un pseudo espacio de nombres; adv_types
es poco probable que entre en conflicto con otros identificadores, pero si comienzas a utilizar este enfoque con más frecuencia, tus posibilidades de crear conflictos aumentan. Además, esto le permite agrupar los datos que está almacenando en la colección Configure
bajo un espacio de nombre, que puede ser útil para la depuración.
De todos modos, este enfoque le permitirá acceder a la variable en cualquier ámbito bajo el paraguas de CakePHP, invocando Configure::read()
.Por lo tanto:
$adv_types = Configure::read('NameOfYourAppAsNamespace.adv_types');
Solución 3: es absolutamente necesario tener esta variable disponible como una variable global
Si absolutamente necesario tener esto como una variable global estándar de PHP, se puede hacer lo siguiente:
$GLOBALS['adv_types'] = array('top' => 'Верх', 'left' => 'Левое', 'right' => 'Правое', 'bottom' => 'Нижнее');
Antes de hacer esto, por favor considerar si esto es estrictamente necesario. Las variables globales son un negocio realmente desordenado, y debe tener un claro y presente necesita para justificarlo.
Editar/Actualizar!
Treinta segundos en Google Translate me han llevado a descubrir que su matriz contiene traducciones correspondientes a las claves. Es posible que desee investigar utilizando las características de CakePHP Internationalization & Localization para abstraer la distinción entre los términos en inglés y ruso para arriba/izquierda/derecha/abajo (y todo lo demás).
si lo está utilizando para las opciones de formulario (como parece), es posible que desee utilizar algo como: http://www.dereuromark.de/2010/06/24/static-enums-or-semihardcoded-attributes/ – mark