Прежде всего скажу, что я новичок в Magento, но не новичок в PHP.Вопрос, который у меня возник, заключается в том, почему запускаются и останавливаются вызовы PHP для каждой строки в файлах шаблонов в Magento, и есть ли снижение производительности для этого.
Вот пример:
<ul class="links<?php if($iecheckout):?> <?php echo $iecheckout ?><?php endif;?>"<?php if($this->getName()): ?> id="<?php echo $this->getName() ?>"<?php endif;?>>
<?php foreach($_links as $_link): ?>
<?php if ($_link instanceof Mage_Core_Block_Abstract):?>
<?php echo $_link->toHtml() ?>
<?php else: ?>
<li<?php if($_link->getIsFirst()||$_link->getIsLast()): ?> class="<?php if($_link->getIsFirst()): ?>first<?php endif; ?><?php if($_link->getIsLast()): ?> last<?php endif; ?>"<?php endif; ?> <?php echo $_link->getLiParams() ?>><?php echo $_link->getBeforeText() ?><a href="<?php echo $_link->getUrl() ?>" title="<?php echo $_link->getTitle() ?>" <?php echo $_link->getAParams() ?>><?php echo $_link->getLabel() ?></a><?php echo $_link->getAfterText() ?></li>
<?php endif;?>
<?php endforeach; ?>
</ul>
, поэтому в этом примере много стартов и остановок вокруг секций, которые не нужно разбивать.например, с последними двумя строками, зачем вызывать «поставить» в каждой строке?Это отдельно от того, как система читает эти файлы?Хотя я знаю, что это должно увеличить файловое пространство (все это будет минимально, но с 18k-файлами, которые он складывает), PHP занимает больше времени для интерпретации этих файлов, когда вы запускаете теги PHP и останавливаете их снова и снова.Magento - огромная система, и я уверен, что любое повышение производительности может быть полезным.
не имеет ли смысла иметь блок
<?php foreach($_links as $_link): ?>
<?php if ($_link instanceof Mage_Core_Block_Abstract):?>
<?php echo $_link->toHtml() ?>
<?php else: ?>
<li<?php if($_link->getIsFirst()||$_link->getIsLast()): ?> class="<?php if($_link->getIsFirst()): ?>first<?php endif; ?><?php if($_link->getIsLast()): ?> last<?php endif; ?>"<?php endif; ?> <?php echo $_link->getLiParams() ?>><?php echo $_link->getBeforeText() ?><a href="<?php echo $_link->getUrl() ?>" title="<?php echo $_link->getTitle() ?>" <?php echo $_link->getAParams() ?>><?php echo $_link->getLabel() ?></a><?php echo $_link->getAfterText() ?></li>
<?php endif;?>
<?php endforeach; ?>
, похожий на
<?php
foreach($_links as $_link):
if ($_link instanceof Mage_Core_Block_Abstract):
echo $_link->toHtml()
else:
?>
<li<?php if($_link->getIsFirst()||$_link->getIsLast()): ?> class="<?php if($_link->getIsFirst()): ?>first<?php endif; ?><?php if($_link->getIsLast()): ?> last<?php endif; ?>"<?php endif; ?> <?php echo $_link->getLiParams() ?>><?php echo $_link->getBeforeText() ?><a href="<?php echo $_link->getUrl() ?>" title="<?php echo $_link->getTitle() ?>" <?php echo $_link->getAParams() ?>><?php echo $_link->getLabel() ?></a><?php echo $_link->getAfterText() ?></li>
<?php
endif;
endforeach; ?>
Имеет ли это смысл?Это просто для имитации какого-то макета типа HTML?По мере того, как я все больше привыкаю к этой системе, я должен писать шаблоны в этой усадьбе, даже если она выглядит сложнее для чтения?
Спасибо за любую информацию, которую может дать каждый.