Контрольные заметки для сертификационного экзамена Мадженто-разработчика – ч.10
Расширенные возможности – доля в экзамене: 13%.
Виджеты
Виджеты – это настраиваемые блоки интерфейса, которые могут быть включены и настроены в блоках или на CMS страницах. Архитектура виджетов в основном руководствуется моделью Mage_Widget_Model_Widget
, тогда как блоки интерфейса, используемые виджетами, реализуют интерфейс Mage_Widget_Block_Interface
.
Виджеты определяются в файле конфигурации widget.xml модуля, используя следующий синтаксис:
<widgets> <{widget_identifier} type="{grouped_class_name}" translate="{fields}" module="{module_name}"> <name>{widget_name}</name> <description>{widget_description}</description> <parameters> <{parameter_identifier} type="{type}" translate="{fields}"> <visible>{0|1}</visible> <required>{0|1}</required> <label>{parameter_label}</label> <type>{parameter type}</type> <value>{value}</value> <values>{possible_values}</values> <helper_block>{helper_block_definition}</helper_block> <sort_order>{order}</sort_order> </{parameter_identifier}> ... </parameters> </{widget_identifier}> </widgets>
В зависимости от типа, параметры виджетов могут иметь одно значение, выбор из нескольких значений, или могут включать сложные процедуры, например, выбор галереи изображений, чтобы определить их значение, управляемое хелпер блоком.
API
Magento содержит встроенные API SOAP, XML-RPC и REST для дистанционного управления магазином.
API SOAP является типичным и распространенным. WSDL для него находится в:
{base_url}/api/?wsdl
{base_url}/api/v2.soap?wsdl
Ресурсы API определяются в файлах конфигурации api.xml или api2.xml. В этих файлах для каждого ресурса определено модель для обработки вызовов. Методы API публикуются методом определения их в файлах конфигурации wsdl.xml или wsdl2.xml. Методы размечают карту методов на ресурсных моделях. Ресурсы API включают ACL, чтобы ограничивать API методы для определенных пользователей/ролей.
Файлы конфигурации wsdl.xml загружаются с помощью модели Mage_Core_Model_Config
. Она также отвечает за загрузку конфигурации модуля Magento, поэтому это работает точно так же, как загрузка config.xml, если речь идет о расширении и переопределении конфигурации API метода.
Методы API определяются API моделями, которые инстанциируются с помощью фабричных методов Magento класса. Поэтому они могут быть перезаписаны, как обычные модели Magento, для переопределения API методов. Дополнительные методы могут быть добавлены к перезаписанным классам или с помощью добавления новых API моделей к wsdl.xml.
API против API2
Разница между двумя версиями SOAP API заключается в том, что в версии 1 все операции выполняются, передавая их методам call()
и multicall()
, например:
<?php $client->call($session, "sales_order.list"); ?>
Между тем в версии 2 каждая операция имеет свой собственный метод, например:
<?php $client->salesOrderList(); ?>
Внутренний обработчик API версии 2 использует ту же конфигурацию API метода, что и версия 1. При вызове метода API 2 версии, например, catalogProductCreate()
, обработчик ищет префикс, который соответствует методу в
<v2> <resources_function_prefix> </resources_function_prefix> </v2>
разделе конфигурации, например catalogProduct
для поиска ресурса метода и вызывает метод {resource}.{method_suffix}
API 1 версии.
Перевод: SebWeo