Структура каталогов основного кода PHP

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

/var/www/веб-сайт — domain.com
/var/www/subdomain1 — subdomain1.domain.com
/var/www/subdomain2 — subdomain2.domain.com

Естественно, у меня было много проблем, когда дело доходит до дублирования общих функций, поскольку любые изменения, внесенные в одну область, также необходимо применить к другим областям. Предлагаемое мной решение — создать новый каталог в /var/www, который будет содержать все основные сценарии:

/var/www/code — основной код

Затем я бы установил каталог включения PHP в /var/www/code, чтобы сценарии могли включать эти файлы без указания абсолютного пути.

Можете ли вы придумать более эффективные способы централизации программного кода?

Большое спасибо!


person Preyes    schedule 15.04.2011    source источник
comment
До тех пор, пока ваш основной код НИКОГДА не будет специально изменен для одного из сайтов, это работает, я должен сказать, безупречно.   -  person Khez    schedule 15.04.2011
comment
Вероятно, они также будут делиться кодом на стороне клиента? JS-скрипты и прочее?   -  person Cups    schedule 15.04.2011
comment
Спасибо за ответы всем!   -  person Preyes    schedule 15.04.2011
comment
Khez — любой код, предназначенный для одного компонента, будет храниться в отдельной директории. Чашки - эти компоненты не должны совместно использовать ресурсы на стороне клиента, за исключением таких, как jQuery и т. Д., Но я не возражаю против дублирования небольшого количества статического кода, подобного этому.   -  person Preyes    schedule 15.04.2011


Ответы (3)


Ваш подход достаточно хорош для этой цели.

Небольшое предложение: храните свои интерфейсные скрипты в каталоге вида /var/www/website/www вместо /var/www/website. Будут индексные файлы, процессоры ajax и подобные скрипты. Но ваши включения на основе проекта (а также другие разные вещи) будут храниться в каталоге, таком как /var/www/website/includes. Это простая, но эффективная защита от хакерских атак на ваши файлы включения.

таким образом, ваши корни документов будут в /var/www/website/www (домен) и /var/www/website/subdomain/www/ (субдомен)

person Nemoden    schedule 15.04.2011

Похоже, вы правильно думаете:

Общий код между несколькими PHP-сайтами

person Spyros    schedule 15.04.2011

Это всего лишь предложение, но вы должны поместить общедоступный контент в /var/www/*, который может оказаться общедоступным — либо из-за вашего http-сервера, либо из-за какой-то неправильной конфигурации — и создать некоторые другие каталоги для вашего общего кода/библиотек, таких как /usr/local/lib/php/*.

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

И не забудьте указать версию своих библиотек, например:

/usr/local/lib/php/myLib-1.0
/usr/local/lib/php/myLib-1.2

и Т. Д.

Таким образом, вы сможете вносить изменения, не нарушая всего.

person avetisk    schedule 15.04.2011