PHP - Будет ли синглтон-класс для синтаксического анализа XML анализировать XML только один раз? - PullRequest
1 голос
/ 07 июня 2011

У меня есть класс, который читает некоторые настройки из файла XML с simplexml.Если я построю его в одноэлементном стиле и сохраню эти настройки в общедоступном массиве, означает ли это, что он будет эффективно извлекать файл только один раз?

В упрощенном виде это выглядит так:

class myClass {
    public $_requestConfiguration;
    public $_conditions;
    public $_requestSets;

    private static $_instance;

    private function __construct() {
        $configFile = simplexml_load_file(APPLICATION_PATH.'/configs/chapter_requests.xml');
        $this->_requestConfiguration = $configFile->requests->request;
        $this->_conditions = $configFile->conditions;
        $this->_requestSets = $configFile->request_sets;
    }

    public static function getInstance() {
        if (null === self::$_instance) {
            self::$_instance = new self();
        }
        return self::$_instance;
    }
}

Ответы [ 2 ]

3 голосов
/ 07 июня 2011

У вас действительно будет только один экземпляр, и XML-файл будет прочитан только один раз для выполнения сценария .

Когда выполнение сценария завершено, все будет удалено из памятии при следующем запуске ваш 'singleton' снова начнет читать XML, потому что статический экземпляр больше не сохраняется в памяти.

Я несколько задавал тот же вопрос здесь .

0 голосов
/ 07 июня 2011

Да.

Добавление комического подшучивания для достижения минимум 30 символов.

...