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関数の代わりに使用するもの」のリストはありますか?
Zend_Db
クエリビルダはSQLクエリを生成できませんか?
select
をZend_Db
使用してステートメントを作成することはできませんか?それがgithub.com/kalenjordan/custom-reportsがバックエンドで行うことだと思いました。