Magento 2コーディング標準を確認するために使用できるすべてのツールは何ですか?


回答:


9

Magento 2はECGM2コーディング標準を使用します

こちらからダウンロードできます

https://github.com/magento-ecg/coding-standard

ECG Magento Code Sniffer Coding Standardは、PHP_CodeSnifferツールのルールとスニフのセットです。

以下のような、MagentoおよびPHPの一般的なコーディングの問題に対してコードを自動的にチェックできます。

  1. 生のSQLクエリ。ループ内のSQLクエリ。
  2. MageおよびEnterpriseクラスの直接インスタンス化。
  3. 不要なコレクションの読み込み。
  4. 過度のコードの複雑さ。
  5. 危険な機能の使用; PHPスーパーグローバルの使用。

その他多数。

  1. MagentoのEcg
  2. Magento 2用EcgM2

MagentoとMagento 2の両方がサポートされています。


このツールは、Magento 2のコードチェック全体を拡張するためのものですか?
ラマチャンドランM

あなたはECGM2をインストールした後、このコマンド「phpcs --standard = EcgM2 /パス/に/モジュール」でMagentoの2モジュールを確認することができます
プリンス・パテル

確かにパテル。利用可能な他のツールはコメントに追加してください。
ラマチャンドランM

Magento 2のコード検証にW3C検証の必要性を知っていますか?
ラマチャンドランM

W3C検証はMagento Webページプレゼンテーション用であり、コーディング標準ではありません。Magentoは、拡張コーディング標準のチェックにMagento 1と2の両方にECGのみを使用します。
パテル王子

12

Magento 2はECGM2コーディング標準を使用します。

  1. Coding Standardをインストールします。

    cd to/your/magento/install/directory
    composer create-project --repository=https://repo.magento.com magento/marketplace-eqp magento-coding-standard
    composer require magento/marketplace-eqp
    cd magento-coding-standard

    エラーが発生した場合:

    PHP致命的エラー:キャッチされていないPHP_CodeSniffer_Exception:参照されたスニフ「MEQP1.Exceptions.Namespace」が存在しません

    vendor/bin/phpcs --config-set installed_paths ../../..
    vendor/bin/phpcs --config-set m2-path <path-to-magento2> ( for eg. sudo vendor/bin/phpcs --config-set m2-path  /var/www/html/magento2 )
  2. M2拡張機能をテストします。

    エラーを自動修正するには、phpcbfを使用します。

    vendor/bin/phpcbf <path-to-magento2>/app/code/Vendor/Module/Block/ --standard=MEQP2 --no-patch --extensions=php,phtml,xml,css,js

    ビューファイル用

    vendor/bin/phpcbf <path-to-magento2>/app/code/Vendor/Module/view/frontend/templates --standard=MEQP2 --extensions=php,phtml 

    エラー/警告を確認するには:

    vendor/bin/phpcs <path-to-magento2>/app/code/Vendor/Module/Block/ --standard=MEQP2 --extensions=phtml,xml,css,js,php

    ビューファイル用

    vendor/bin/phpcbf <path-to-magento2>/app/code/Vendor/Module/view/frontend/templates --standard=MEQP2 --extensions=php,phtml

    ここで利用可能ないくつかの警告の解決策:

    Magento Marketplaceテクニカルレビューレポートで発生した警告/エラーの修正方法

  3. マーケットプレイステクニカルレビュー:

    vendor/bin/phpcs /path/to/your/extension --standard=MEQP2 --severity=10
  4. Magento 2拡張機能を検証します。

    https://gist.github.com/alankent/fcf280dd9c599921b71d#file-validate_m2_package_v2-phpから「validate_m2_package.php」をダウンロードし、magentoのルートに配置します

    cd <path-to-magento2>
    php validate_m2_package.php Vendor_Module.zip

実行composer require magento/marketplace-eqpする前に、これで修正しますcomposer config repositories.magento-eqp git https://github.com/magento/marketplace-eqpgithub.com/magento/marketplace-eqp/issues/2
不明瞭

8

プリンス・パテルスの答えに加えて...

Magento 2 はPSR-2コーディング標準も使用しているため、を実行することもできますphpcs --standard=PSR2 /path/to/module。PSR-2の「エラー」を修正するには、「PHP Code Beautifier and Fixer(phpcbf)」を使用できます

私にとってこれは非常にうまくいきます...

  • PSR2エラーを自動的に修正
  • レポートを作成する
  • レポートを1つのファイルにマージする

コマンド:

phpcbf --standard=PSR2 ./app/
phpcs --report-gitblame=CS-blame --report-source=CS-code --report-full=CS-full ./app/
cat CS-* >> ECG-PSR2 ; rm CS-*

を使用する場合、変更をコミットする前に/を自動的に実行gitするpre-commit フックを追加できます。phpcsphpcbf


更新:

magentoコーディング標準のために特別にではありませんが、良い習慣です...

  • で実行phpcbfPSR2MEQP2標準
  • phpcs -s両方の標準で実行
  • 走る phpmd -s
  • 走る phpstan -l 7
    • magento 2.2の場合は、バージョンを使用する必要があります 0.8.5

-s オプションはスニフ名を表示することです...警告を抑制したい場合はおそらくfulを使用してください

素晴らしいレポートのために、phpdoxをお勧めします。それはからのデータを集約します...

  • phploc
  • phpcs
  • phpmd
  • phpunit コードカバレッジ
  • git log
  • ...

サンプル(コードカバレッジなし):http : //phpdox.de/demo/PHPUnit/index.xhtml

その他のツール:


ありがとう@ sv3n。セキュリティをチェックするためのツールはありますか?
ラマチャンドランM

1
セキュリティのためにツールはありません。コーディング標準に従う(生のクエリなどを避ける)ことは最初の良いステップだと思います。
sv3n

2

M2アプリケーションの脆弱性を検証するには、次を使用できます。

ZAP(Zed Attack Proxy).
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.