@choupa
Архитектор (обычный, который строит)

Как добавить в класс методы из отдельных файлов?

Есть класс, в нём, кроме всего прочего, должно быть 4 громоздких по виду метода, которые являются по сути большими HTML-шаблонами с незначительным PHP-вставками. Хочу эти методы поместить каждый в отдельный файл.

Но вот так с помощью include, конечно, не работает:

class My_class  {
   public ...
   public ...

   function My_class()  { ... }
   function some_ordinary_method()  { ... }

   include 'bulk_method_1.php';
   include 'bulk_method_2.php';
   include 'bulk_method_3.php';
   include 'bulk_method_4.php';
}


bulk_method_1.php:

function bulk_method_1()   {
      ...
   }


Можно конечно насоздавать классы-потомки в этих отдельных файлах, в каждом добавляя по одному громоздкому методу. Но может быть можно как-то просто?
  • Вопрос задан
  • 226 просмотров
Решения вопроса 1
Вообще, хотя тут уже есть хороший ответ с трейтами, мне кажется, что композиция тут подойдет лучше. Создайте в файлах функции, а в классах создайте методы, которые эти функции вызывают. Потом, при необходимости, сможете с легкостью изменить содержимое этих методов, если таки решите использовать шаблонизаторы. Из дополнительных преимуществ - в классе будет виден его интерфейс, без необходимости переходить в другие файлы.

include 'bulk_function_1.php';

class My_class  {
   public ...
   public ...

   function My_class()  { ... }
   function some_ordinary_method()  { ... }

   function bulk_method_1 ($arg) {
	   return bulk_function_1($arg);
   }
}
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
Наследование
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы