Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/magento/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Magento 什么是马根托的?_Magento - Fatal编程技术网

Magento 什么是马根托的?

Magento 什么是马根托的?,magento,Magento,我已经用xDebug运行了一些代码,并不断注意到_下划线ecache是一个k-v对数组: object collection is_default default_group_id front store_id action session_hosts controller_action request secure visitor_data website quote items_collection parent_item_id quote_id item_id product_id cod

我已经用xDebug运行了一些代码,并不断注意到_下划线ecache是一个k-v对数组:

object
collection
is_default
default_group_id
front
store_id
action
session_hosts
controller_action
request
secure
visitor_data
website
quote
items_collection
parent_item_id
quote_id
item_id
product_id
code
attributes
website_id
attribute_set_id
additional_attribute_table
attribute_codes
is_global
skip_confirmation_if_email
confirmation
visibility
is_salable
stock_item
udropship_vendor
custom_vars_combined
password_enc
vendor_name
use_local_stock
is_recurring
customer_group_id
date
product_collection
product_name
product_type_id
product_status_changed
is_changed_websites
product_changed_websites
license_key
license_key
license_status
license_expire
server_restriction
products
module_name
use_config_manage_stock
is_in_stock
stock_status
product_type
sku
name
weight
tax_class_id
cost
base_cost
is_qty_decimal
quote_item
product
message
item
is_super_mode
qty_to_add
is_child_item
has_error
item_is_qty_decimal
has_qty_option_update
item_qty
orig_qty
use_config_min_sale_qty
use_config_max_sale_qty
suppress_check_qty_increments
use_config_enable_qty_increments
use_config_min_qty
item_use_old_qty
item_backorders
ignore_old_qty
use_old_qty
skip_check_required_option
ud_skip_quote_load_after_event
order
has_children
vendor_sku
address_type
address
postcode
limit_zipcode
country_id
allowed_countries
stockcheck_method
true_stock
udropship_stock_levels
stock_result
quote_currency_code
currency_code
customer_id
prefix
customer_prefix
firstname
customer_firstname
middlename
customer_middlename
lastname
customer_lastname
suffix
customer_suffix
email
customer_email
dob
customer_dob
taxvat
customer_taxvat
gender
customer_gender
customer_tax_class_id
remote_ip
x_forwarded_for
items_count
checkout_method
checkout_state
collect_shipping_rates
totals_collected_flag
extra_tax_amount
base_extra_tax_amount
subtotal
base_subtotal
subtotal_with_discount
base_subtotal_with_discount
grand_total
base_grand_total
quote_address
is_multi_shipping
total_qty
base_virtual_amount
virtual_amount
subtotal_incl_tax
base_subtotal_incl_tax
applied_rule_ids
shipping_tax_amount
base_shipping_tax_amount
applied_taxes_reset
free_shipping
free_method_weight
region_id
customer_class_id
store
parent_id
product_class_id
shipping_amount
base_shipping_amount
shipping_incl_tax
base_shipping_incl_tax
shipping_taxable
base_shipping_taxable
is_shipping_incl_tax
base_cod_fee
cod_fee
cod_tax_amount
base_cod_tax_amount
method
prev_quote_customer_group_id
discount_amount
base_discount_amount
base_calculation_price
calculation_price
base_original_price
original_custom_price
rate
row_total
base_row_total
coupon_code
no_discount
coupon_type
uses_per_customer
is_primary
uses_per_coupon
use_auto_generation
usage_limit
operator_option
operator_by_input_type
value_option
operator_options
type
aggregator
value
actions
aggregator_option
aggregator_options
rule
conditions_serialized
attribute_option
attribute
operator
is_value_parsed
value_parsed
actions_serialized
simple_free_shipping
stop_rules_processing
tax_percent
custom_price
base_price
price_incl_tax
base_price_incl_tax
row_total_incl_tax
base_row_total_incl_tax
taxable_amount
base_taxable_amount
is_price_incl_tax
rounding_deltas
weee_tax_applied
base_weee_tax_disposition
weee_tax_disposition
base_weee_tax_row_disposition
weee_tax_row_disposition
base_weee_tax_applied_amount
base_weee_tax_applied_row_amount
weee_tax_applied_amount
weee_tax_applied_row_amount
row_weight
all_items
dest_country_id
dest_region_id
dest_region_code
dest_street
city
dest_city
dest_postcode
package_value
package_value_with_discount
package_weight
package_qty
package_physical_value
base_currency
package_currency
limit_carrier
orig
path
cipher
mode
handler
init_vector
active_flag
error
weight_type
full_row_weight
carrier_code
zip
ups_pickup
ups_container
ups_dest_type
udropship_calculate_rates
calculate_rates_by_group_flag
requests
website_ids
system_methods
这是什么? 我在想,这将是一个进入js下划线的窗口,类似于mage注册表? 如何使用它?
它是如何填充的?

简短版本:如果您不知道它的用途,您就不需要使用它

长版本如下

这与underscoe.js完全无关。在javascript框架出现之前,下划线是一个简单的ASCII字符

在Magento的系统中,大多数对象从基础继承

Varien_Object 
班级。该对象为Magento的对象提供了特殊功能。例如,在Magento对象中,不需要定义setter和getter。你可以这样做

$object = new SomeObject; //which inherits form Varien_Object

$object->setSomeValue('Our Value');

echo $object->getSomeValue('Our Value');
echo $object->getData('our_value');

$data = $object->getData();
echo $data['our_value'];
在上面的示例中,没有名为
setSomeValue
的具体方法。Magento神奇地知道我们只想设置一个数据属性。这是在PHP magic方法
\uu调用中实现的

#File: lib/Varien/Object.php
public function __call($method, $args)
{
    ...
}
调用
setSomeValue
时,Magento会在对象的数据数组上设置一个名为
some\u value
的键。也就是说,它需要将驼峰大小写的
SomeValue
转换为非驼峰大小写的
someu值
。您可以在这里的magic
\u call
实现中看到这一点

#File: lib/Varien/Object.php
public function __call($method, $args)
{
    case 'set' :
        //Varien_Profiler::start('SETTER: '.get_class($this).'::'.$method);
        $key = $this->_underscore(substr($method,3));
        $result = $this->setData($key, isset($args[0]) ? $args[0] : null);
        //Varien_Profiler::stop('SETTER: '.get_class($this).'::'.$method);
        return $result;
}
\u下划线
方法获取字符串
SomeValue
,并使用以下行将其转换为
SomeValue

#File: lib/Varien/Object.php
$result = strtolower(preg_replace('/(.)([A-Z])/', "$1_$2", $name));
在某种程度上,Magento开发人员通过分析或直觉意识到,每次在对象上获取或设置数据都会调用
strToLower
preg\u replace
,这意味着性能瓶颈。为了解决这个问题,他们引入了
\u缓存
。这是一个数组,是
Varien\u对象
类上的一个静态属性

#File: lib/Varien/Object.php
/**
 * Setter/Getter underscore transformation cache
 *
 * @var array
 */
protected static $_underscoreCache = array();
如果您查看整个
\u下划线
方法,您可以看到它是如何使用的

protected function _underscore($name)
{
    if (isset(self::$_underscoreCache[$name])) {
        return self::$_underscoreCache[$name];
    }
    #Varien_Profiler::start('underscore');
    $result = strtolower(preg_replace('/(.)([A-Z])/', "$1_$2", $name));
    #Varien_Profiler::stop('underscore');
    self::$_underscoreCache[$name] = $result;
    return $result;
}
也就是说,Magento仍将执行
strToLower
preg_replace
转换,但它只会对每个唯一字符串执行一次。完成后,键/值(
SomeValue
someu值
)被放置在
\u下划线缓存中

self::$_underscoreCache[$name] = $result;
这样,下次调用该方法时,将从缓存返回一个值

if (isset(self::$_underscoreCache[$name])) {
    return self::$_underscoreCache[$name];
}

这避免了对常用引用变量调用
strToLower
preg\u replace

完美的澄清,但我无法从前端夯实系统获取var。 即使我在$里看到了它

我使用:

Mage::getSingleton('core/session')->getCartWasUpdated();
我想取在 cartcontroller.php

 $this->_getSession()->setCartWasUpdated(true);

听起来你想问一个新问题,但我猜_getSession返回一个不同的session对象。i、 e不是
core/session
YES!:)谢谢你,我看过了!它使用checkout/session,然后我找到了我的var:d有时我开始阅读这样的答案,我知道作者将是谁而不去看。