Мне неизвестен (эффективный) способ загрузки только частей класса.
Я думаю, вам нужно разделить методы класса на подклассы и использовать автозагрузку для их загрузки.
Как только вы это сделаете, вы сможете подумать о том, чтобы сделать что-то вроде этого:
class myMainClass
{
function bigFatMethod($argument, $argument2)
{
return mySubClass::bigFatMethod($this, $argument, $argument2);
// (pass $this if necessary)
}
}
Это будет bigFatMethod()
вызываться внутри myMainClass
, но внутри, поскольку вы используете автозагрузку, необходимый код загружается только тогда, когда bigFatMethod()
действительно вызывается.
Очевидно, вам нужно будет переписать bigFatMethod()
, чтобы он мог вызываться статически, и вместо доступа к $this
, вам нужно было бы заставить его обращаться к объекту, переданному в его первом параметре (которому вы передаете $this
в родительский класс).
Я никогда не делал этого сам - я хотел бы разделить класс на подклассы и обращаться к ним отдельно - но я не вижу никаких огромных недостатков в таких действиях.
Если вы хотите, вы можете даже абстрагировать bigFatMethod()
, используя магический метод __call()
, который будет искать, какой подкласс он должен загрузить, выполняет метод и возвращает результат.