어떤 getter 메소드를 사용할 수 있는지 확인하는 방법
-
29-09-2020 - |
문제
종종 저는 Magento 템플릿이나 블록 작업을 하고 변수를 찾는 동안 getter 메소드를 사용하려고 합니다.
나는 xDebug를 사용하므로 일반적으로 디버거를 통해 필요한 것을 찾고 getter 메서드를 추측하면 일반적으로 작동합니다.예를 들어:
$this->getProduct()->getId();
하지만 때로는 getter 메서드를 찾을 수 없고 PHPStorm과 함께 xDebug를 사용하여 필요한 값에 대한 표현식을 평가할 수 있습니다.
이는 일반적으로 아래와 같은 표현을 제공합니다.
$program['type']->_data['special_url_key']
이것이 작동하는 동안 최선의 방법은 아닌 것 같습니다. $program->getType();
하지만 작동하지 않습니다.
뭔가 빠졌나요?위의 예는 사용자 정의 모듈에서 가져온 것입니다. Magento의 Magic Getter & Setter 방법 그것은 여전히 작동해야합니다.하지만 이 모듈을 보면 문제의 블록은 다음에서 상속되거나 확장됩니다. Mage_Core_Block_Template
해결책
그것은 다음과 같습니다 $program
다음의 사례도 아닙니다. Varien_Object
전혀 객체도 아니므로, 오버로딩 방법 사용할 수 있습니다.
$program['type']->getSpecialUrlKey()
배열에 키가 있는 항목이 있으면 작동할 수 있습니다. type
그것이 바로 그 예이다 Varien_Object
.
개발자의 삶을 더 쉽게 만들려면 "마법의" 메서드를 제공하는 클래스에 그에 따라 주석을 달아야 합니다. Mage_Sales_Model_Order
예를 들어.