PHP yükleme ayarları en iyi performans?

3 Cevap php

Ben inşa ediyorum benim php proje genelinde do ayarları için en son benim fikrim bir yapılandırma PHP dosyası tüm ayarlarını saklamak oldu, php dosya sadece bu gibi bir dizi dönecektir ...

<?php
/**
 * @Filename app-config.php
 * @description Array to return to our config class
 */
return array(
    'db_host' => 'localhost',
    'db_name' => 'socialnetwork',
    'db_user' => 'root',
    'db_password' => '',
    'site_path' => 'C:/webserver/htdocs/project/',
    'site_url' => 'http://localhost/project/',
    'image_path' => 'C:/webserver/htdocs/fproject/images/',
    'image_url' => 'http://localhost/project/images/',
    'site_name' => 'test site',
    'admin_id' => 1,
    'UTC_TIME' => gmdate('U', time()),
    'ip' => $_SERVER['REMOTE_ADDR'],
             'testtttt' => array(
                     'testtttt' => false
                     )
);
?>

Please note the actual config array is MUCH MUCH larger, many more items in it...
Then I would have a Config.class.php file that would load my array file and use the magic method __get($key). I can then autoload my config class file and access any site settings like this...

$config->ip;
$config->db_host;
$config->db_name;
$config->db_user;

Yani bu harika çalışıyor ve çok esnektir, benim sınıfımda ben şimdi yapıyorum gibi, diziye INI dosyasını okumak diziye XML dosyasını okumak, diziye JSON dosyasını okumak dizi ile bir PHP dosyası okumak olabilir farkındayız. Bu yüzden gelecekteki projeler için çok esnek ama ben şimdi üzerinde çalışıyorum bu özel proje için performansı hakkında daha fazla endişe duyuyorum, o facebook / myspace gibi bir sosyal ağ sitesi olacak ve ben daha önce bir oldu önce bu proje için ve bir kez ben 100.000 kullanıcının performans çok önemli oldu aldım. Yani "mikro-optimize" ya da "erken optimize" Ben stricly Bu performans göz önünde İYİ şekilde yapmak için arıyorum değilim, ben sadece bu projede ihtiyacınız olacak gibi esnek olması gerekmez.

Yani bu bilgi, her zaman işlevi diyerek mümkün olduğunca aramaları ortadan kaldırmak için çalışan insanlar hakkında okumak function calls cause more overhead. SO Ben bu konuda ne düşündüğünü daha deneyimli olan insanlardan bilmek isteyen ki? Ben bu yüzden $ config-> DB_USER çağırıyor, PHP sınıfları ve nesneleri kullanarak yeni duyuyorum; Bu getOption ('DB_USER') gibi prosedürel bir işlevini çağırarak gibi pahalı; ? Ben bunu __ get () yöntemini kullanarak bir ayarı dediğimiz her zaman olduğu gibi aynı olduğunu tahmin ediyorum.

Bu yüzden en iyi performans için ben bu konuda farklı bir yol gitmek gerekir? Sadece bir önyükleme dosyası içine benim yapılandırma dizi yükleme ve ben bu gibi onları gerektiğinde öğelere erişmesini gibi ...

$config['db_host'];
$config['db_username'];
$config['db_password'];
$config['ip'];

Bana benchmark testinde bir demet yapmak zorunda kalmadan bana sizin bu konudaki düşüncelerinizi verin

3 Cevap

Gördüğüm testler, yukarıda Alix Axel tepkisi dört yöntemden göreceli hızına göre doğru olduğuna inanıyorum. Doğrudan yöntemleri kullanarak en hızlı ve sihirli yöntemi her türlü kullanarak genellikle yavaştır.

Ayrıca, optimizasyon açısından. Eğer tarif sistemde herhangi tek bir istek için büyük performans hit muhtemelen oldukça ile gitmek için karar hangisi sözdizimi aracılığıyla bunun erişen daha, XML / INI / JSON ayrıştırma olacak. Bunu düzeltmek istiyorsanız, bunu ayrıştırmak kez, APC yüklenen verileri depolamak. Bu bir sadece bu statik verileri depolamak isteyecektir ihtar ve UTC tarih gibi dinamik değil şeyler gelecek.