Моя последняя идея для создания настроек в моем 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, и у меня был один до этого проекта, и как только яполучил около 100 000 пользователей производительность стала очень важной.Так что я не «микрооптимизирую» или «преждевременно оптимизирую». Я очень стараюсь сделать это ЛУЧШИМ способом с точки зрения производительности, он не должен быть гибким, поскольку он мне понадобится только в этом проекте.
Таким образом, с этой информацией я всегда читаю о людях, пытающихся как можно больше исключать вызовы функций, говоря, что вызовы функций вызывают дополнительные издержки .Так что я хочу узнать от более опытных людей, что вы думаете об этом?Я новичок в использовании классов и объектов в PHP, поэтому вызывает $ config-> db_user;столь же дорогой, как и вызов функции в процедурном порядке, как этот getOption ('db_user');?Я предполагаю, что это то же самое, что каждый раз, когда я вызываю параметр, он использует метод __get ().
Так что для лучшей производительности я должен пойти по-другому?Например, просто загрузить мой конфигурационный массив в файл начальной загрузки и получить доступ к элементам, когда они мне нужны, например так ...
$config['db_host'];
$config['db_username'];
$config['db_password'];
$config['ip'];
Пожалуйста, дайте мне свои мысли по этому поводу без необходимости делать кучу тестов производительности