Простое хранение контента в Zend Framework (без БД) - PullRequest
2 голосов
/ 27 октября 2010

Я работаю над существующим веб-сайтом, использующим Zend Framework, и стараюсь избегать жестко кодируемого контента, который должен быть динамичным по своему характеру.

У меня есть список статей, которые необходимо выводить в виде ссылок с описанием или без него. Каждая ссылка генерирует динамическую страницу, которая выводит полную статью с крошкой и списком ссылок других заголовков статьи, сохраняя состояние, чтобы выделить текущую статью. У меня есть готовый шаблон для каждой переменной, но сначала мне нужен источник контента.

Поскольку список несколько короткий, мы не считаем, что его следует хранить в базе данных (как бы я вообще ввел / отредактировал указанное содержимое в базе данных без CMS?).

Можно ли это сделать путем анализа XML-документа или есть другой способ, о котором я не думаю? Я использовал SimpleXML на не-Zend PHP-сайтах, но прямой вызов класса, похоже, не работает (я думаю, что это может быть проблема с путями).

РЕДАКТИРОВАТЬ: я в конечном итоге использовать решение, рекомендованное prodigitalson:

Я создал файл XML для метаданных своего контента (заголовок, хэш, описание, включаемый файл) и поместил его в папку app / modules / default / model. Затем я выложил каждую полную статью в виде фрагмента включения и поместил файлы в views / partials. Я создал пользовательский класс с необходимыми мне методами и поместил его в свою библиотечную папку, а затем создал экземпляр класса в методе контроллера init (). Затем объект был доступен для всех страниц / действий в этом контроллере.

Затем я могу вызвать любой метод из объекта, инстанцированного контроллером, в соответствующем представлении. Я могу выводить ссылки, полные статьи и все остальное, что мне нужно, используя этот подход. Я передаю текущий URL-параметр (хэш) классу перед выводом списка ссылок, чтобы выделить текущую ссылку.

Ответы [ 2 ]

3 голосов
/ 28 октября 2010

Id, вероятно, придерживается XML (или ini, если вы предпочитаете) для хранения мета-информации для статей (путь к html-файлу, заголовок nav, параметры url / url). Затем вместо идентификатора SimpleXML используйте Zend_Config_Xml (или ini).чтобы получить информацию.Оттуда это должно быть сделано для извлечения необходимых вам вариабелей и включения фактического файла содержимого (который я бы полностью отделил от конфигурации - просто сохраните путь к файлу «содержимого»).

0 голосов
/ 28 октября 2010

Использовать массив.Вы можете поместить свои данные в отдельный файл:

// in data.php
return array(
  array("data1", "data2"),
  array("data3", "data4")
);

// to access data
$data = require('data.php');

Это проще и быстрее (и уродливо, но это PHP ;-))

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...