PHP uygulama setings devam etmek en iyi yolu nedir?

6 Cevap php

Ben başkalarına / satış vermek isteyebilirsiniz, ben geliştiriyorum küçük bir uygulama var. Ben bazı ayarları inat ve bunları değiştirmek için bir yönetici arayüzü oluşturmak istiyorum. Ne onları saklamak için en iyi yol olacağını? Bir DB tablo Ben gerekecek 10-20 ayarları için overkill gibi görünüyor, ve ben bu ayarların alma mümkün olduğunca hızlı olmasını istiyorum. Düz bir dosya başka uygun bir seçenektir? Düz bir dosya kullanarak ilişkili tuzaklar nelerdir? Ne çoklu anahtarları ve değerleri saklamak düz bir dosya ile arayüzü hızlı / kolay yolu olurdu?

6 Cevap

PHP okumak için işlevlere sahiptir. Ini dosyaları.

http://is2.php.net/manual/en/function.parse-ini-file.php

Gerçekten kaydetmek ister "ayarları" türüne bağlıdır. They DB host, port, ve giriş gibi "bootstrap" ayarları var mı? Ya da uygulama ayarları uygulama için özel olarak vardır?

Bir yönetici arayüzü dosya sistemindeki bir dosyayı yazmak icar ile sorun dosyaya yazmak için gerekli izinleri olduğunu. Herzaman dosyaları yazmak için web sunucusu açmak, sizin kodunda bir hata ciddi bir ayrıcalık tırmanması olanak verebilecek olasılığını artırır.

Veritabanları okur ve potansiyel sistem güvenlik risklerini tanıtan olmadan yazıyor sağlamak için tasarlanmıştır.

Biz (veritabanı erişimi bilgi gibi) statik yapılandırma verilerini saklamak için "oluşturulan" PHP dosyaları kullanın. Bu komut satırında bir kullanıcı tarafından bir yarar komut dosyası tarafından oluşturulur. Bundan sonra, statik olmayan tüm bilgileri bir veritabanı tablosunda saklanır. Veritabanı tablo, sırayla, bir Yönetici alanı güncellemek için kolaydır. Bu sizin applicecation yükseltme olarak genişletmek ve yükseltmek kolaydır.

Bu bir yerde yedeklenmiş ihtiyacı "veri" merkezileştirme için de çok kolay.

Bunu hızlandırmak için memcached veya benzeri bir şey kullanarak önerebilir miyim?

Sadece birkaç düşünceler ...

Ben SimpleXMLElement üzerinden XML bu tür şeyler için çok yararlı olduğunu düşünüyorum.

Yapılandırma (config.xml):

<config version="1">
  <foo>value</foo>
  <bar>
    <baz>Boo</baz>
  </bar>
</config>

Okumak için kod:

$config = simplexml_load_file('config.xml');
$version = (int) $config['version'];
$foo = (string) $config->foo;
$baz = (string) $config->bar->baz;

Bir dosyaya yazmak için Kod:

$config = new SimpleXMLElement('<config version="1"/>');
$config->foo = 'value';
$config->bar->baz = 'Boo';
$config->asXML('config.xml');

Düz dosyaları kullanarak asıl sıkan bu komut çökmesi veya eşzamanlı düzenleme üzerinde olası veri bozulmasına yol açabilir olmasıdır.

Bir dosya için seri bir PHP nesne (veya dizi) düşünün. , Yeterince hızlı, genişletilebilir yazmak için hiçbir ayrıştırma kodu. Bir ihtar kodunuzu daha ayarları desteklemek için büyüdükçe ayarlar dosyasını "upgrade" için bir strateji düşünmektir.

Ben sadece yapılandırma dosyaları için bir PHP dizi kullanın.

<?php 
return array
(
    'user' => 'name',
    'pass' => 'word',
    'one_day' => 60 * 60 * 24
);
?>

Bazı avantajları söz morendil gibi, gerekli hiçbir ayrıştırma, onun kadar hızlı alır gibi, karmaşık değişkenler / denklemlerin her türlü saklayabilir ve aşağıdakileri yapabilirsiniz, şunlardır:

<?php
$config = include 'path/to/file.php';
?>