Отправка переменных к расположению в Платформе Зенда

Это составляет приблизительно 7 МБ стекового пространства. В Visual Studio Вы использовали бы/STACK:###,### для отражения размера, который Вы хотите. Если Вы истинно хотите огромный стек (могло бы быть серьезное основание, с помощью LISP или чего-то :), даже "куча" ограничена small'sh выделениями прежде, чем вынудить Вас использовать VirtualAlloc), можно также хотеть установить PE для создания с/LARGEADDRESSAAWARE (Компоновщик Visual Studio снова), но заголовок PE этого configure, чтобы позволить скомпилированному двоичному файлу обращаться к полным 4 ГБ 32'bit адресное пространство (при выполнении в WOW64). При создании истинно значительных двоичных файлов необходимо было бы также обычно настраивать/bigobj как дополнительный компоновщик пара-Мертер.

И если Вам все еще нужно больше пространства, можно радикально нарушить конвенцию при помощи чего-то средство моделирования к (снова ссылка MSVC) / слияние: который позволит Вам упаковывать один раздел в другого, таким образом, можно будет использовать каждый байт для единственного общего раздела кода/данных. Естественно необходимо было бы также настроить полномочия РАЗДЕЛОВ в файле определения или с #pgrama.

38
задан Charles 6 April 2011 в 03:09
поделиться

3 ответа

Макет представляет собой представление, поэтому метод присвоения переменных такой же. В вашем примере, если бы вы повторили $ this-> что угодно в вашем макете, вы должны увидеть тот же результат.

Одна из распространенных проблем заключается в том, как назначить переменные, которые вы используете на каждой странице, в свой макет, как вы бы не ' Я не хочу дублировать код в каждом действии контроллера. Одним из решений этого является создание плагина, который назначает эти данные перед визуализацией макета. Например:

<?php

class My_Layout_Plugin extends Zend_Controller_Plugin_Abstract
{
   public function preDispatch(Zend_Controller_Request_Abstract $request)
   {
      $layout = Zend_Layout::getMvcInstance();
      $view = $layout->getView();

      $view->whatever = 'foo';
   }
}

затем зарегистрируйте этот плагин на переднем контроллере, например

Zend_Controller_Front :: getInstance () -> registerPlugin (new My_Layout_Plugin ());

46
ответ дан 27 November 2019 в 03:13
поделиться

Я реализовал базовый контроллер, который расширяют все остальные контроллеры.

Итак, у меня есть контроллер ...

<?php
class BaseController extends Zend_Controller_Action
{
  public function init()
  {
    $this->view->foo = "bar";
  }
}

и в макете и / или представлении

<?= $this->foo ?>
7
ответ дан 27 November 2019 в 03:13
поделиться

Без использования помощников или подключаемых модулей выполните:

Zend_Layout::getMvcInstance()->assign('whatever', 'foo');

После этого вы можете использовать следующее в своем макете:

<?php echo $this->layout()->whatever; ?>

Это напечатает «foo».

43
ответ дан 27 November 2019 в 03:13
поделиться
Другие вопросы по тегам:

Похожие вопросы: