Функция класса в отдельном файле

Статус
В этой теме нельзя размещать новые ответы.

pavel.dolinin

Новичок
Функция класса в отдельном файле

Добрый день Всем.
Как я могу вынести фуркцию класса в отдельный фаил.
 

pavel.dolinin

Новичок
class A {
function b(){
//что-то сделать
}
}

как можно и можно ли вообще разместить function b() в отдельном файле???
 

Sender

Новичок
pavel.dolinin
а зачем?


boombick
видимо имеется ввиду реализовать функцию класса не в файле где реализован класс :)
 

pavel.dolinin

Новичок
boombick точно !!!
для облегчения, так сказать, понимания кода и разделения между несколькими разработчиками.
 

Sender

Новичок
pavel.dolinin
ты думаешь от этого второму разработчику станет легче? и понимать его станет легче? спроси у него сначала :)
 

pavel.dolinin

Новичок
понимаешь ... так должна быть довольно большая функция класса, типо handler которая модет и меняться ... по этому что бы не трогать весь класс данную функцию было решено поместить в отдельный фаил, что бы обезопасить сам класс от ошибочного редактирования.
 

Sender

Новичок
pavel.dolinin
понимаю... но и ты пойми, через год человек который будет сопровождать твой код начнет искать эту функцию именно в файле, где реализован этот класс, потому что обычно "один класс->один файл", а то что ты хочешь сделать это неудобно и не очевидно -> будет усложнять и путать...
 

boombick

boombick.org
для облегчения, так сказать, понимания кода и разделения между несколькими разработчиками.
Выносите метод из класса в отдельный класс. И подключайте его как угодно. Ибо как было сказано - "один класс - один файл". И разработчикам от таких ваших фантазий легче не станет
 

tf

крылья рулят
Выносите метод из класса в отдельный класс. И подключайте его как угодно. Ибо как было сказано - "один класс - один файл". И разработчикам от таких ваших фантазий легче не станет
неа, если так то лучше отдельную несвязанная фунция - зачем нам класс, где только одна функция и ничего более?
 

tf

крылья рулят
просто достало в одно время
когда много их - очень плохо работает
файл инклудитcя нару микросекунд
а вот обумывает то что он там наинглудил в порядок больше времени :(
 

hermit_refined

Отшельник
tf
что-то вы путаете. autoload - совершенно безобидная вещь.

грубо говоря, в обычном случае - если функция нахождения класса по его имени (zend_lookup_class_ex) не находит последнего в таблице классов - возвращает облом.
когда имеется autoload - если имени в таблице классов нет, запускает autoload, и потом вновь ищет в таблице классов (плюс там ещё используется таблица для предотвращения рекурсивных вызовов).

действия совершенно пустяковые (не считая функции __autoload, которую пишите сами), а "обдумывание наиклюденного" - (не знаю, правда, что это такое) - с этим связано быть не может.

и, кстати, *_once - обходятся как правило дороже, особенно при относительных путях.
 

kostya.sys

Новичок
можно создать отдельный файлик с функцией, а в вункцию передавать как параметр указатель на экземпляр объект класса
таким образом ты получишь внешний метод класса, правда будешь иметь доступ только к public методам и свойствам

можно настроить автовызов таких методов используя в классе метод __call

иногда такой подход вполне оправдан так как может быть куча тяжелых методов, которые используются редко и в коде только мешаются постоянно. ИМХО мало кайфа ворочить файлы в несколько тыщ строк
 
Статус
В этой теме нельзя размещать новые ответы.
Сверху