![]() |
Пишем свой портал php
Хай челы))))
С вами опять я а то есть .::Sim[B]ioZ::. Пишем портал на php Я попытаюсь тут разъяснить то, как я подхожу к написанию сайтов, где могут применять подключаемые модули. Пример тому известный скрипт PHPNuke. Как бы не ругали его, подход, примененный в нем, к модульному программированию очень удобен. Но из-за корявости общего кода применять такой скрипт на серьезных сайтах, точнее скажем порталах, с большим количеством посетителей, не рекомендуется. Почему? Скрипт работает медленно, очень большая нагрузка на базу данных. Можно еще очень много чего описать, но это уже материал для другой статьи. Если кому интересно , то в интернете полно описаний этого движка. В <неудобоваримости> PHPNuke я убедился сам. Мой основной проект NVIDIA BIOS Collection в начала базировался на PHPNuke, но постоянные проблемы с хостингом заставили меня начать разработку своей система портала с нуля. Из PHPNuke я взять только суть модулей, все остальное же делал сам. И так для начала. Прежде всего, надо продумать систему каталогов, что и где будет лежать. Вот примерный вариант. * /mods/ - каталог для хранения модулей * /img/ - картинки * /include/ - каталог вспомогательных файлов Это что нам сейчас пока надо. Применять блоки и скины мы пока не будем. В моем портале также были другие каталоги * /blocks/ - Тоже своего рода модули, но не выводящие сами информацию, а возвращающие заполненную переменную. * /js/ - каталог для Java скриптов * /theme/ - каталог выбора тем или, грубо говоря, набор скинов для сайта. * /files/ - файлы для скачивания ну и другие каталоги. В корневом каталоге храниться всего один файл index.php и вся работа идет через него. Теперь надо решить как будет выглядеть сам сайт. Для нашего примера подойдет наипростейший вариант дизайна , верх сайта , низ сайта, а в середине наша информация из модулей. Для этого в каталоге include создадим два файла top.php и bottom.php, что соответственно будет верхней частью дизайна и нижней частью дизайна. top.php Код:
<?phpbottom.php Код:
<phpКод:
<?phpmod1.php Код:
<?phpКод:
if (!eregi("index.php", $PHP_SELF)) { die ("Access denied"); }Вот в принципе очень грубая схема реализации модулей. Можно добавить любой модуль, просто положив его в каталог mods/ и придерживаясь общей концепции работы, построить очень сложный сайт. В чем удобства работы? По сути вы отодвигаете от себя основную заботу по натягиванию кода на дизайн. Это делает один раз в index.php. Сам же модуль должен только работать и приносить пользу. Централизация сбора основной информации из базы или конфигурационного файла, глобальные переменные сайта, информация о пользователе и т.д. С другой стороны есть недостатки (хотя при определенном взгляде они не кажутся недостатками), скажем надо четко следить за тем какие имена переменных используются до модуля, чтобы не перезаписать, случайно, их внутри модуля. Один раз у меня такое случилось. После такого случая, я взял для себя за правило называть системные переменные в таком виде $sys_имя переменной. Другой очевидный недостаток это трудность реализации разных вариантов дизайна для разных модулей. Но! Тут есть выход тоже. Если взять за правило, что каждый модуль обязан сам вывести шапку и низ сайта, то вам уже предоставляется свобода по выбору что и как выводить. К примеру, наши простые модули можно модифицировать в таком варианте. Код:
<?php |
Скопипащено с какого-то известного ресурса=) модульная система не визде применяется восновном в phpnuke поэтому видимо это от туда. Вообще, статей подобных никто по моему не писал (:
|
Отстрелите ему руки...
|
Кажется парнишка добьется бана =) почему нельзя создать одну тему и в ней все свои наработки кидать?
|
Цитата:
|
мде
http://www.codenet.ru/webmast/php/modules.php Автор: Ray Adams |
n1†R0x))))
форбидден линк http://www.codenet.ru/webmast/php/modules.php не успел я=\ |
Автору оторвать руки. До жопы.
Закрыто. |
| Время: 01:18 |