Моя последняя идея сделать настройки через мой 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
)
);
?>
Пожалуйста, обратите внимание, фактический конфигурационный массив MUCH MUCH больше, еще много элементов в нем ...
Тогда у меня будет файл Config.class.php, который будет загружать мой файл массива и использовать магический метод __get ($ key). то я могу AutoLoad мой файл класса конфигурации и получить доступ все установки, как это ...
$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'];
Пожалуйста, дайте мне ваши мысли по этому поводу без меня делать кучу эталонного теста
+1 для указания доступа к файлам и синтаксического анализа является настоящим узким местом здесь и для предложения APC – Gordon