Ответы пользователя по тегу ООП
  • Как избавиться от переменных при вызове методов?

    @ipokos
    а в чем проблема передавать переменные в метод?
    Как избавиться от переменных при вызове методов?

    сетать их в конструкторе.

    class MyClass{
    
    protected $imgObj;
    
        public function __construct(){
            $this->imgObj = new Image();
        }
    
        public function otherFunction(){
            $name = $this->imgObj->getName();
        }
    }

    Но это плохой способ, т.к. таким образом жестко делается привязка и может понадобиться заново конфижить объект который пришел .

    Лучше будет такой вариант:
    public function __construct(Image $image){
            $this->imgObj = $image;
        }

    нужный объект приходит уже в класс
    Ответ написан
    Комментировать
  • Можно ли вот так разделять класс?

    @ipokos
    Работать это будет. Если опишите в чем цель, возможно будет более адекватное решение. (например трейты)
    Но если вы "разделяете" класс, т.к. в нем много методов и вы хотите их структурировать, это значит изначально что-то пошло не так.
    Ответ написан
    3 комментария
  • Зачем статические методы в классе(PHP)?

    @ipokos
    можно обращаться без создания объекта Class::statikFunk

    Правильно.

    Что это мне дает?

    то что не нужно постоянно инициализировать класс с его конструктором.
    т.е. не создаются лишние объекты.

    Просто удобное обращение?

    это тоже..

    Когда объявлять статики?

    Например есть хелпер который решает разные мелкие вопросы.
    где-то массив перебрать, где то дату вернуть, где-то с строкой что то сделать
    (т.е. это простые задачи, которые не требуют сложной логики, подключения моделей и т.п., а могут быть выполнены в пределах локальной области видимости данного метода)
    вот такие методы можно объявлять статическими.
    Ответ написан
    Комментировать
  • Какую книгу взять для полнейшего понимания ооп в php?

    @ipokos
    Если как вы говориье, в общих чертах понимание теории есть, попробуйте взять любой ооп движок, и на нем смотреть как что работает. На php например можно попробовать магенто или симфони
    Ответ написан
    Комментировать