Что-то, что выделялось для меня, это то, что вы создаете новый объект каждый раз, когда объект выполняется, вы должны хранить объект локально (в объекте), а затем он использует только 1 часть вашей памяти.
Вот изменения, которые я бы сделал:
class Configuration
{
private $domdocument_object;
private $domxpath_object; //+
public function __construct($filename)
{
$this->loadXML($filename);
$this->domxpath_object = new DOMXPath($this->domdocument_object); //+
}
public function get($path = '/*')
{
//Remove the following
$domxpath_object = new DOMXPath($this->domdocument_object);
}
}
, а затем измените $domxpath_object
на $this->domxpath_object
, где это необходимо.
Но это действительно нужно перенести на CoderReview , поскольку это не по теме.