Стандарт кодирования ЭКГ Magento кажется (по крайней мере, официальным) стандартом для расширений 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');
Итак, ядро не лучший пример, как часто.
Другие ИМХО сомнительные запрещенные функции:
mb_parse_str
parse_str
parse_url
base64_decode
- да, он используется в бэкдорах, но запрета
eval
должно быть достаточно, и существуют законные варианты использования, такие как кодирование двоичных данных. И кромеjson_decode
(что не запрещено), для этого нет основного помощника.
- да, он используется в бэкдорах, но запрета
По сути, мой вопрос сводится к следующему: где задокументирован этот стандарт? И / или есть ли список «вещей, которые нужно использовать вместо этих собственных функций PHP»?
Zend_Db
конструктор запросов не должен генерировать какие-либо SQL-запросы?
select
оператор, Zend_Db
используя в качестве входных данных сырой SQL? Я предположил, что именно это делает github.com/kalenjordan/custom-reports в бэкэнде.