Varien_Object
(M1)およびDataObject
(M2)のマジックゲッターは一般的な方法ですが、Magento 2では使用するのが間違っているように感じます。
良い:
- 読み書きが簡単
悪い
- キーに数字を使用すると問題が発生します(Magento 2:コレクションのフィールドを取得する別の方法、またはラクダケースを使用してカスタム製品属性を取得するを参照)。
- コード分析ツールが存在しないメソッドについて文句を言う
質問
Magento 2には、2つの新しいメソッドがあります。
getDataByKey($key)
getDataByPath($path)
まだ使用する正当な理由getData($key)
や魔法のゲッターはありますか?
編集:
@Vinaiありがとう。@method
私のアプローチはかなり異なっていたので、私は方法に言及しませんでした。
IDEに役立つだけで、他のものには影響しません。
いくつかのmergedf PRがあります。これは、ループの(int)
代わりにキャストしintval()
たり、ループの外に配列サイズを取得したり(小さな配列であっても)するような「マイクロ最適化」です。
一方、
マリウスが説明したように、いくつかの「オーバーヘッド」を持つ魔法のゲッター....
strtolower(trim(preg_replace('/([A-Z]|[0-9]+)/', "_$1", $name), '_'));
getData($key)
mehtodsも2-3の追加チェックが必要です...if ('' === $key) {
if (strpos($key, '/')) {
if ($index !== null) {
独自のコードの場合、実際のメソッドを好むことに完全に同意しますが、同じケースではおそらくそうではありません...たとえば、カスタムイベントを作成しました...
$value = $observer->getVar_1();
$value = $observer->getData('var_1');
$value = $observer->getDataByKey('var_1');
3rd withを使用するの/** @var some $value */
が最適だと思います。(?)