Есть ли способ найти в каком файле - файл включен - PullRequest
0 голосов
/ 03 марта 2011

Уверен, что вопрос неопределенный.

Позвольте мне попытаться объяснить.

Предположим, что Zend работает с фреймом - PHP - JQuery.

Я включаю файлы jquery в layout.phtml.

Я включаю некоторые файлы в controller.php.

какой-то файл в view.phtml

Atlast, когда я бегу и просматриваю страницу. Есть ли какой-либо способ или какой-либо инструмент, чтобы найти, какой файл включен через какой файл (контроллер макета или представление) ??

Кроме того, кто-нибудь может объяснить, как лучше всего включить js-файлы и где. использование Zend Framework в макете, контроллере или представлении

Ответы [ 3 ]

1 голос
/ 03 марта 2011

«Включить» файл означает совершенно разные вещи в PHP (где это аналогично копированию и вставке исходного кода из другого файла в текущий файл) и HTML / JavaScript (где вы ссылаетесь на другой файл, что браузер должен сделать отдельный HTTP-запрос на скачивание). Что вы считаете "в том числе"? Являются ли теги изображений "включающими" изображения? По крайней мере, мы можем легко сосчитать эти ссылки, изучив HTTP-запросы; со стороны клиента невозможно сказать, что include() s вошло в исходный код за обработанным выводом. Даже наивный поиск по исходному коду не мог сказать вам благодаря автозагрузке. Ваш вопрос недостаточно четко определен, чтобы дать четкий ответ.

1 голос
/ 03 марта 2011

Единственный способ найти, куда включен общедоступный статический актив (JS, CSS, изображение и т. Д.), - это перелистать исходный код (использование чего-то, что может «найти в файлах», сэкономит время).

Что касается того, как и где включать такие ресурсы ... для глобальных включений (общие таблицы стилей, сценарии и т. Д.), Включите их в свои макеты.

Для определенных страниц, включите их в свои представления.

Лучший способ включить статический актив - использовать соответствующий помощник вида. Они обычно отображаются в вашем файле макета, например

<?php echo $this->doctype() ?>
<html>
    <head>
        <?php

        echo $this->headMeta()->prependHttpEquiv('Content-Type', 'text/html; charset=' . $this->getEncoding());

        // I use "prepend" here so it comes before any page specific stylesheets
        echo $this->headLink()->prependStylesheet($this->baseUrl('/css/common.css'));

        echo $this->headScript();

        ?>
    </head>
    <body>

        <!-- content -->

        <?php echo $this->inlineScript() ?>
    </body>
</html>

Затем вы можете добавить эти заполнители в свои скрипты вида, например

<?php
// index/index.phtml
$this->inlineScript()->appendFile('https://ajax.googleapis.com/ajax/libs/jquery/1.5.1/jquery.min.js')
                     ->appendFile($this->baseUrl('/js/my-jquery-script.js'));
0 голосов
/ 03 марта 2011

Спорный ответ:

  • Вам это не нужно.
  • Если вам это нужно, то с вашим дизайном что-то не так.

Примечание: Я узнал (методом проб и ошибок), что 90% вещей, которые я не знаю, как сделать, и это кажется невозможным в ZFявляются результатом неправильного дизайна приложения.

...