Sabit sunucu değişkenleri?

6 Cevap php

Herhangi bir komut erişebilirsiniz böylece PHP kullanarak, bir sunucu üzerinde bir tek sayıda saklama kolay yolu nedir? Şu anda, ben bir dosyada saklanır bir dizi var, ama bu biraz kaba görünüyor.

6 Cevap

Orada burada hiçbir doğru cevap, ancak web uygulamaları oluşturmak için en modern PHP sistemleri yapılandırma nesnesi çeşit var. Bu genellikle bir tek olarak uygulanır

//brain dead config object
class NamespaceConfiguration {
	public static function getInstance() {
		if (!self::$instance instanceof self) { 
		  self::$instance = new self;
		}
		return self::$instance;
	}

    public static function set($key,$value){
        //code to set $key/$value paid
    }

    public static function get($key){
       //code to get a $value based on a $key
    }
}

$config = NamespaceConfiguration::getInstance();
$config->set('myNumber',42);
....
function somewhereElse(){
    $config   = NamespaceConfiguration::getInstance();
    $myNumber = $config->set('myNumber');
}

Bu sınıf, her sayfa istenmesi üzerine yüklenir. Bu, onlar tek bir yapılandırma değerlerini almak veya ayarlamak istediğiniz zaman aramak için her geliştiriciye standart bir API verir, ve tek bir geliştirici depolama yerde ve düz bir dosya olabilir geri alma how (XML dosyası, önbellek kontrol etmenizi sağlar MySQL veritabanı, değeri içeren bir dosyaya işaret eden bir düğüm, vb içeren bir MySQL Veritabanı saklanan bir MySQL veritabanı, XML dosyası içinde depolanan XML dosyası)

Bir yapılandırma nesnesi kullanarak siz (vb, bir özellik zaten önbellekte alınan değerleri saklamak örnekleme belirli değerleri önokumayı) ön bazı verimlilik yaratmak rağmen geri alma nerede ve nasıl, uygulama ortamına bağlıdır gidiyor

Uygulama muhtemelen top "header.php" veya simular sayılabilir dosyasının çeşit olduğundan, sadece o dosyanın içinde bir sabit / değişken oluşturabilir ve başlığını içeren tüm dosyaları da sürekli erişimi olacak .

This may help you to define the constant: http://php.net/constant

Bu sayının özelliklerine bağlıdır. Genellikle modifiye / güncel mi? Bu sadece bu tür numara mı? O değişmedi değilse o Espo anlaşılacağı gibi yapmak ve gerekli dahil edilebilir bir php sabiti olarak saklamak için muhtemelen daha iyi. Diğer tür numaraları varsa bu dosyanın hepsini koyabilirsiniz. Onlar sık ​​sık güncellenen varsa o veritabanında koymak için muhtemelen daha iyi.

Ama. Tek bir sayı ise, bu değişime tabidir, ve diğer numaraları saklamak için herhangi bir ihtiyaç forsee yok, neden bir dosyayı kullanmak değil? Sadece eşzamanlılık sorunları önlemek için güncellerken sürüsünü () kullanmayı unutmayın.

Yapabileceğiniz en iyi şey, daha sonra alma için bir MySQL tablo koymak olacaktır. Muhtemelen PHP bilgi depolamak için en iyi yoldur.

If it is a variable that is more of a environmental nature you could always use set those in Apache in your httpd.conf file you can set the following:

SetEnv myVar myValue

Daha sonra bunu almak için $ _SERVER kullanabilirsiniz

$_SERVER['myVar']

I birkaç farklı sanal konaklar kurulumu aynı uygulama duyuyorum ama onları config dosyasında farklı parametrelere sahip istemiyorsanız ben genelde bu konuda Değişkenler ayarlayın.

A config file will also meet your needs. There is some easy to use classes in Zend framework that can help out http://framework.zend.com/manual/en/zend.config.html more specific section 7.3 and 7.4 describes how you can write config parameters in a plain text file or in XML.

if you prefer plain old php you have the function parse_ini_file that lets you read in config parameters from a text file http://us.php.net/parse_ini_file

Ayrıca Alternatif PHP önbelleği veya önbellek diğer seçenekleri kullanabilirsiniz.

http://www.php.net/manual/en/function.apc-add.php

Ve önbellek için bir yapılandırma tasarruf yukarıda listelenen diğer çözümlerle, örneğin birlikte kullanabilirsiniz.