Стоимость функций более высокого порядка
Официальная документация Kotlin о стоимости функций более высокого порядка
Использование функций высшего порядка налагает определенные штрафы времени выполнения: каждая функция является объектом, и она захватывает замыкание, то есть те переменные, к которым осуществляется доступ в теле функции. Выделение памяти (как для объектов функций, так и для классов) и виртуальные вызовы приводят к накладным расходам во время выполнения.
blockquote>и если вы заменяете все свои интерфейсы на функции более высокого порядка, у вас может получиться плохая производительность.
2. Интерфейсы могут содержать несколько функций, для которых вам понадобятся отдельные параметры функций при использовании функций более высокого порядка. Рассмотрим следующий случай:
interface UserLoginInterface {
fun onLoginSuccess(loggedInUser: User)
fun onLoginFailure(error: ErrorResponse)
fun onRedirect(someOtherObjectWithDirectives: SomeDataClass)
}
Чтобы перевести это на использование функций более высокого порядка, вам придется использовать три параметра Function
.Чтобы получить информацию о текущем магазине из любого места в Magento, используйте:
<?php
$store = Mage::app()->getStore();
Это даст вам Mage_Core_Model_Store, который содержит некоторую необходимую информацию:
<?php
$name = $store->getName();
Что касается вашего другого вопроса о номере строки, я не уверен, что вы имеете в виду.Если вы имеете в виду, что хотите знать, какой номер строки в коде вы используете (например, для обработки ошибок), попробуйте:
<?php
$line = __LINE__;
$file = __FILE__;
$class = __CLASS__;
$method = __METHOD__;
$namespace = __NAMESPACE__;
идентификатор хранилища Magento: Mage::app()->getStore()->getStoreId();
название магазина Magento : Mage::app()->getStore()->getName();