Построение меню способом MVC в PHP - PullRequest
2 голосов
/ 28 июня 2009

Здравствуйте, я создаю свой собственный PHP MVC Framework. Не с намерением использовать это. Но я пытаюсь изучить PHP5 OO и шаблон проектирования MVC.

Я прочитал много уроков и получил основы, но теперь я застрял, потому что все становится сложнее.

Моя структура использует следующую структуру URL: / controller / action. Необязательно, за которым следует бесконечное число переменных, например, /product/view/1.

Пока у меня есть два отдельных контроллера: страница и продукт. Я не хочу включать их обоих в одно меню. Я пытаюсь установить следующую структуру меню. Соответствующий URL-адрес указан в скобках.

  • Наша компания (/ page / view / 2)
    • Werkwijze (/ page / view / 3)
    • Персонал (/ page / view / 4)
  • Наши продукты (/ product / index)
    • Хлеб (/ товар / категория / 1)
    • Банкет (/ товар / категория / 2)
    • Торт (/ товар / категория / 3)
  • Контакт (/ page / view / 5)

Так что в основном у меня есть главное меню и подменю. Для класса меню я определил несколько требований:

  • Текущий элемент должен иметь другой класс CSS в меню.
  • Если у текущего элемента есть родительский элемент, то у него также должен быть другой класс CSS.
  • Меню должно быть расширяемым, используя все виды содержимого URL.
  • И для бонусных баллов: когда я выбираю продукт из категории Хлеб. Допустим, / product / view / 1; тогда я бы хотел, чтобы также были выделены пункты меню «Наши продукты» и «Хлеб».

У меня есть копия моей 'framework', запущенная здесь: http://www.eriknijland.nl/stackoverflow/. Контент написан на голландском языке, а меню - просто статический HTML.

Исходный код доступен для скачивания также в папке:

  • / StackOverflow / источник / framework.sql

Любые другие комментарии к моему коду также приветствуются: P.

1 Ответ

1 голос
/ 28 июня 2009

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

Другим вариантом было бы спроектировать фреймворк так, чтобы он предоставлял некоторых помощников для автоматического создания меню. В этом случае все должно быть реализовано на уровне представления фреймворка.

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