Лучший способ загрузить только специальные функции в PHP - PullRequest
2 голосов
/ 17 декабря 2009

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

Мой план состоит в том, чтобы иметь отдельные разделы, в основном первый некорневой каталог, который будет иметь собственный скрипт и будет напрямую контролировать все его подстраницы. Я хочу, чтобы все контролировалось из index.php в корневом каталоге, используя mod_rewrite, чтобы сделать это прозрачным.

Как лучше всего загрузить только то, что нужно для этого раздела, а не для каждого другого раздела? Я думал об использовании отдельного файла для каждого раздела и названии его на основе URL-адреса, который я использую, чтобы я мог включить только это. Но это вряд ли кажется элегантным. Есть ли лучший способ сделать это?

Ответы [ 3 ]

4 голосов
/ 17 декабря 2009

Посмотрите на шаблон MVC и шаблон Front Controller . Это может быть реализовано несколькими способами с очень различной сложностью. По сути, ваш FrontController будет принимать любые входящие запросы и отправлять их на соответствующие контроллеры (ваши разделы). Затем ваши контроллеры будут извлекать любые данные из вашей модели, например, ваши бизнес-объекты и подтолкнуть их к просмотру. Представление - это то, что возвращается клиенту.

2 голосов
/ 18 декабря 2009

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

__ autoload - это магический метод, который вызывает PHP, если вы пытаетесь получить доступ к классу, который в данный момент не включен. Затем он выполняет любое действие, указанное в функции, затем снова пытается выполнить тот же вызов этого класса. Реализация автозагрузчика позволила сократить средний объем памяти экземпляра моего приложения MVC примерно на 75% ... ознакомьтесь с документацией здесь:

http://us3.php.net/autoload

0 голосов
/ 17 декабря 2009

Что вы обычно видите, так это то, что правило перезаписи будет либо просто выполнять простой перезапись в /index.php - это затем вызовет некоторые функции / классы, которые будут сортировать желаемую конечную точку (контроллер ) и параметры для этой конечной точки. тогда в этом контроллере (скажем, /mysection/index.php) вы настроите все ресурсы и вызовете все, что нужно для отображения данной страницы для раздела.

...