タグ付けされた質問 「code-analysis」

2
Magento ECG Coding Standardで多くのPHP関数が許可されないのはなぜですか?
Magento ECG Coding Standardは、Magento 1拡張の標準として(少なくとも一種)公式であるようです: https://github.com/magento-ecg/coding-standard しかし、私はすべてのルールの背後にある理由を理解していません。また、メッセージだけのコードスニッファールールはあまり役に立ちません。標準に関する詳細なドキュメントはありますか?一般的なベストプラクティスと開発者ガイドは知っていますが、これらのコーディング標準に関する具体的な情報は見つかりません。 私が最も悩むのは、PHP関数を使用しないことに関する厳格さです。 たとえば、PHP関数に関連するすべてのファイルシステムがすべて禁止されているのはなぜですか? 私はあなたが使用することになっている、と思うVarien_Io_File、Varien_File_Objectなどそれでもコア開発者は、すべてのVarienクラスを認識していないと、あなたは、多くの場合でのようなものを見つけますMage_ImportExport_Model_Import_Adapter_Csv: $this->_fileHandler = fopen($this->_source, 'r'); そのため、多くの場合、コアは最良の例ではありません。 他のIMHOの疑わしい禁止機能: mb_parse_str parse_str parse_url base64_decode ええ、それはバックドアで使用されていますが、禁止evalは十分であり、バイナリデータのエンコードなどの合法的なユースケースがあります。そしてjson_decode(これは禁じられていませんが)これ以外に利用できるコアヘルパーはありません。 ソース:https : //github.com/magento-ecg/coding-standard/blob/master/Sniffs/Security/ForbiddenFunctionSniff.php 基本的に、私の質問は次のように要約されます:この標準はどこに文書化されていますか?および/または「これらのネイティブPHP関数の代わりに使用するもの」のリストはありますか?

5
すべてのクラス書き換えのリストを取得するにはどうすればよいですか?
すべての構成ファイルを確認する以外に、すべてのリライトおよびその他の潜在的な競合をリストする方法はありますか?私は多くの拡張機能とカスタム変更を含むいくつかのプロジェクトを分析する必要があり、これを可能な限り自動化したいと考えています。 最も重要なことは、同じクラスを書き換える拡張機能を検出することですが、概要を維持するために、すべての書き換えのリストも用意したいと思います。現時点では、このリストをスプレッドシートで手動で管理しています。 Magento Connectでこの拡張機能( "Extension Conflict")を見つけましたが、レビューとリリースノートから判断すると、古いようです。

2
Magento 2-マジックゲッターを使用/回避するための良い習慣ですか?
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 = …

2
コメントで「#@ +」と「#@-」の文字列は何を意味しますか?
Magento 2のいくつかのクラスのコメントには、多くの「#@ +」と「#@-」の文字列があります。 \Magento\Customer\Api\Data\AttributeMetadataInterface interface AttributeMetadataInterface extends \Magento\Framework\Api\MetadataObjectInterface { /**#@+ * Constants used as keys of data array */ const ATTRIBUTE_CODE = 'attribute_code'; ... const IS_SEARCHABLE_IN_GRID = 'is_searchable_in_grid'; /**#@-*/ ... } これらのマーカーの目的は何ですか?
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.