için doğru dosya, kapsamı değildir bootstrap.php
bootstrap.php
, $adv_types
değişkeni, PHP ayrıştırma bootstrap.php
tamamlanır tamamlanmaz kapsam dışı olur.
Gerçek gereksinimlerinize bağlı olarak yapabileceğiniz birkaç yaklaşım vardır.
Çözüm 1: görünümlerinizde
tüm görünümlerde kullanılabilir olması için değişken gerekiyorsa, tanımlamak ve AppController::beforeRender()
bunu belirlesin çoğunda bu değişkenleri gerekir. app/app_controller.php
yılında
:
class AppController extends Controller
{
function beforeRender()
{
parent::beforeRender();
$adv_types = array('top' => 'Верх', 'left' => 'Левое', 'right' => 'Правое', 'bottom' => 'Нижнее');
$this->set(compact('adv_types'));
}
}
Bu $adv_types
dizi erişmek için görünümlerin herhangi sağlayacaktır.
Çözüm 2: uygulamanızda başka yerde $adv_types
değişken erişmesi gereken size Configure
koleksiyonuna ekleyebilirsiniz, her yerde CakePHP uygulamasında
içinde bu değişkene erişmesi gerekebilir. bootstrap.php
yılında:
Configure::write('NameOfYourAppAsNamespace.adv_types', array('top' => 'Верх', 'left' => 'Левое', 'right' => 'Правое', 'bottom' => 'Нижнее'));
Ben sahte ad olarak projenizin adını kullanarak öneririz; adv_types
'un diğer tanımlayıcılarla çakışması olası değildir, ancak bu yaklaşımı daha sık kullanmaya başlarsanız, çakışma oluşturma olasılığınız artar. Ayrıca, bu, Configure
koleksiyonunda sakladığınız verileri bir ad alanı altında gruplandırmanıza olanak tanır, bu da hata ayıklama için kullanışlıdır.
Her neyse, bu yaklaşım, CakePHP şemsiyesi altındaki herhangi bir kapsamdaki değişkene Configure::read()
'u çağırarak erişmenize izin verecektir.Böylece:
$adv_types = Configure::read('NameOfYourAppAsNamespace.adv_types');
Çözüm 3: kesinlikle küresel bir değişken olarak kullanılabilir bu değişkeni bulunmalıdır
kesinlikle standart PHP küresel değişken olarak bu olmalıdır , aşağıdaki yapabilirsiniz:
$GLOBALS['adv_types'] = array('top' => 'Верх', 'left' => 'Левое', 'right' => 'Правое', 'bottom' => 'Нижнее');
bunu yapmadan önce, bu kesinlikle gerekli olup olmadığını düşünün lütfen. Global değişkenler gerçekten dağınık bir iştir ve bir açık ve şimdi gerekçelendirmek için gereksiniminiz olmalıdır.
Edit/Update! Google saniye Çevir
Otuz senin dizi anahtarları tekabül çeviriler içerdiğini keşfetmek beni yol açmıştır. CakePHP'nin Internationalization & Localization özelliklerini kullanarak ingilizce ve rusça terimler arasındaki ayrımı ortadan kaldırmak için üst/sol/sağ/alt (ve diğer her şey) için araştırmak isteyebilirsiniz.
Eğer (göründüğü gibi), gibi bir şey kullanmak isteyebilirsiniz formu seçenekleri için onu kullanıyorsanız: http://www.dereuromark.de/2010/06/24/static-enums-or-semihardcoded-attributes/ – mark