我對在我的PHP項目我建立做設置最新的想法是,我所有的設置保存在配置PHP文件,PHP文件只會返回一個這樣的數組...在PHP中加載設置的最佳性能?
<?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
)
);
?>
請注意實際配置數組要大得多,其中有很多項...
然後我會有一個Config.class.php文件,它會加載我的數組文件並使用魔術方法__get($ key)。然後我就可以自動加載我的配置類文件,並訪問任何這樣的網站設置...
$config->ip;
$config->db_host;
$config->db_name;
$config->db_user;
所以我知道這偉大工程,是非常靈活的,在我的課,我可以把它在數組的PHP文件閱讀就像我現在正在做的那樣,將INI文件讀入數組,將XML文件讀入數組,將JSON文件讀入數組。所以對於未來的項目來說它非常靈活,但我更關心的是我現在正在開發的這個特定項目的性能,它將是一個像facebook/myspace這樣的社交網站,並且在此項目之前我有一個社區網站,並且一旦我大約有10萬用戶的表現變得非常重要。因此,我不是「微觀優化」或「過早優化」。我非常希望在考慮到性能的情況下以最佳方式實現這一目標,但不需要靈活,因爲我只需要在此項目中使用它。
因此,有了這些信息,我總是閱讀有關儘可能消除函數調用的人說,函數調用導致更多開銷。所以我想從更有經驗的人那裏瞭解你對此的看法?我在PHP中使用類和對象是新手,所以調用$ config-> db_user;因爲像這樣在過程中調用函數的代價高昂getOption('db_user'); ?我猜測它和每次我使用__get()方法調用它的設置都是一樣的。
因此,爲了獲得最佳性能,我應該採用不同的方法來解決這個問題嗎?像剛纔裝我的配置陣列爲引導文件和訪問項目時,我需要他們這樣的...
$config['db_host'];
$config['db_username'];
$config['db_password'];
$config['ip'];
請給我你對這個想法有沒有我做了一堆基準測試的
+1用於指出文件訪問和解析是這裏真正的瓶頸,並且提示APC – Gordon 2010-01-26 08:20:11