У меня есть несколько статических шаблонов фабрики в моей библиотеке PHP. Однако объем памяти уменьшается, и мы хотим уменьшить количество файлов, необходимых во время выполнения. Вот пример того, где мы находимся сегодня:
require_once('Car.php');
require_once('Truck.php');
abstract class Auto
{
// ... some stuff ...
public static function Create($type)
{
switch ($type) {
case 'Truck':
return new Truck();
break;
case 'Car':
default:
return new Car();
break;
}
}
}
Это нежелательно, поскольку необходимо будет добавить Car.php AND Truck.php, даже если может понадобиться только один или другой. Насколько я знаю, require / include и их ... однажды вариация включают библиотеки в той же области, что и вызов. Это правда?
Если это так, я считаю, что это приведет к утечке памяти:
abstract class Auto
{
// ... some stuff ...
public static function Create($type)
{
switch ($type) {
case 'Truck':
require_once('Truck.php');
return new Truck();
break;
case 'Car':
default:
require_once('Car.php');
return new Car();
break;
}
}
}
Мне кажется, что во втором примере многократные вызовы Create () приведут к множественным требованиям из-за объема вызова, даже если используется аромат require_once.
Это правда? Каков наилучший способ динамически включать библиотеки в php в такой пример?
Спасибо!