Leider ist der Spielraum für bootstrap.php
ist bootstrap.php
, so dass die $adv_types
Variable nicht mehr verfügbar ist, sobald PHP die Analyse beendet bootstrap.php
.
Je nach Ihren tatsächlichen Anforderungen gibt es verschiedene Möglichkeiten.
Lösung 1: Sie müssen diese Variablen in vielen Ihrer Ansichten
Wenn Sie die Variable müssen in allen Ansichten zur Verfügung stehen, sollten Sie definieren und in AppController::beforeRender()
gesetzt.
In app/app_controller.php
:
class AppController extends Controller
{
function beforeRender()
{
parent::beforeRender();
$adv_types = array('top' => 'Верх', 'left' => 'Левое', 'right' => 'Правое', 'bottom' => 'Нижнее');
$this->set(compact('adv_types'));
}
}
Dies wird alle Ihre Ansichten ermöglichen die $adv_types
Array zuzugreifen.
Lösung 2: Sie können den Zugriff auf diese Variable müssen überall in Ihrem CakePHP App
Wenn Sie die $adv_types
Variable an anderer Stelle in Ihrer Anwendung zugreifen müssen, können Sie es auf die Configure
Sammlung hinzufügen können. In bootstrap.php
:
Configure::write('NameOfYourAppAsNamespace.adv_types', array('top' => 'Верх', 'left' => 'Левое', 'right' => 'Правое', 'bottom' => 'Нижнее'));
empfehle ich den Namen Ihres Projekts als Pseudo-Namespace; adv_types
ist wahrscheinlich nicht in Konflikt mit anderen Bezeichnern, aber wenn Sie diesen Ansatz häufiger verwenden, erhöht sich Ihre Chancen, Konflikte zu erstellen. Darüber hinaus können Sie die Daten, die Sie in der Configure
-Auflistung speichern, unter einem Namespace gruppieren, was für das Debuggen hilfreich sein kann.
Wie auch immer, dieser Ansatz ermöglicht es Ihnen, auf die Variable in jedem Bereich unter dem CakePHP-Schirm zuzugreifen, indem Sie Configure::read()
aufrufen.Also:
$adv_types = Configure::read('NameOfYourAppAsNamespace.adv_types');
Lösung 3: Sie müssen unbedingt diese Variable zur Verfügung haben als globale Variable
Wenn Sie muss unbedingt haben dies als Standard PHP globale Variable, könnten Sie Folgendes tun:
$GLOBALS['adv_types'] = array('top' => 'Верх', 'left' => 'Левое', 'right' => 'Правое', 'bottom' => 'Нижнее');
Bevor Sie dies tun, sollten Sie bitte, ob diese unbedingt erforderlich ist. Globale Variablen sind eine wirklich schmutzige Angelegenheit, und Sie sollten eine klare und gegenwärtige Notwendigkeit es zu rechtfertigen haben.
Bearbeiten/Aktualisieren!
Dreißig Sekunden in Google Translate hat mich dazu gebracht, zu entdecken, dass Ihr Array Übersetzungen enthält den Schlüssel entspricht. Vielleicht möchten Sie die Funktionen Internationalization & Localization von CakePHP untersuchen, um die Unterscheidung zwischen englischen und russischen Begriffen für oben/links/rechts/unten (und alles andere) wegzuspalten.
, wenn Sie es für Formularoptionen verwenden (wie es scheint), möchten Sie vielleicht so etwas wie verwenden: http://www.dereuromark.de/2010/06/24/static-enums-or-semihardcoded-attributes/ – mark