Global değişkenleri saklamak için en iyi yolu

2 Cevap php

Ben komut boyunca kullanılan global değişkenlerin bir LOT kullanan PHP bir uygulama yazıyorum. Sağ şimdi, define() fonksiyonu kullanılarak oluşturulan global değişkenler bir demet depolayan bir config dosyası var, ama bu kadar çok olması için gidiyorum beri, bu veritabanındaki bir tablo oluşturmak için daha iyi olurdu bu sadece değişken isimleri ve değerleri içerir ve bu, veritabanını sorgular değişkeni bulur değerini döndürür, ve ileride kullanmak üzere değer önbelleğe bir işleve sahip erişmek için.

Ben aynı zamanda küresel değişkenleri saklamak için başka fikirler hoşgeldiniz değilim.

2 Cevap

define() function sabitleri değil, global değişkenler oluşturur. Onlar yanlışlıkla bozuk olabilir gibi küresel değişkenler idareli kullanılması gerektiğini (ya da kötü niyetle!), Ancak sabitler tamamen güvenlidir.

Ben kolay, sadece daha hızlı ve basittir, tüm sabitleri kurar 'config.php' adlı bir dosya var bulabilirsiniz.

Peki, bu uygulamanın yapısına bağlıdır. Belirli bir sayfa yük sadece gerçekten bir veya birkaç yüz değişkenler iki gerekir, o kriter test veritabanı sorgulama büyük bir yapılandırma dosyası da dahil olmak üzere daha hızlı olabileceğini gösterebilir. Ancak, çok sayıda sorgu ile kullanıcı şey yapmak istiyor her zaman veritabanı bogging dikkatli olmak gerekir. Önbelleğe alma gereksiz istekleri tarafından eklenen havai aşağı kesebilir, ama onun kullanım ölçüde bulunuyor.

Bu değişkenler çoğunlukla kısa dizeleri veya boolean bayrakları iseniz, ben cevap büyük ölçüde de korumak mümkün olacak ne dinlenme olacağını düşünüyorum. Bu değişkenler nadiren değiştirmek ve her zaman el ile değiştirilmesi durumunda iyi yapılandırılmış. Ini dosyası büyük bir veritabanına daha korumak için daha kolay olacaktır. Bu değişkenler elle sürekli ve asla değişiyor, muhtemelen sadece bir veritabanına tüm değişkenleri yüklemek için akıllı olurdu.

Şahsen ben hem durumlarda kendimi buldum ve buna göre her iki yöntem kullandım. Eğer gerçekten kararsız iseniz, her zaman sadece bazı benchmark testleri yapabilirsiniz. Zaman. Ini dosyası (veya define() s dolu bir. Php dosyası) kullanarak sonra veritabanından yapılandırma bilgileri, zaman bir sayfa yük çeker bir sayfa yük.

(And pedantically speaking, define(), küresel kapsamda sabitleri yaratan değil, global değişkenler.)