2010-07-12 3 views
0

Я работаю с PHP уже пару лет, но я не считаю себя более чем умеренным программистом.Структура файла PHP для простого веб-сайта?

При создании некоторых веб-сайтов (варьируя от веб-сайтов презентации до некоторых простых CMS'ов), я принял два подхода, о которых я расскажу ниже. Мой вопрос прост: какой из них лучше с точки зрения настройки (он должен быть как можно более настраиваемым) и скоростью (для загрузки как можно быстрее).

Первый выбор

файлы: header.php, content1.php, content2.php, footer.php

идея: все файлы содержимого включает заголовок в начале файл и нижний колонтитул в конце.


Второй выбор

файлы: index.php, content1.php, content2.php

идея: на основе переменной GET или что-то подобное, index.php включает соответствующий файл php


Заранее благодарим за ответ!

ответ

2

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

Кроме того, вы можете сохранить некоторые основные параметры внутри индекса.php (поскольку это небольшой сайт, который я вижу в этой проблеме, но с большими проектами, конфигурационные файлы сперва - это лучший способ ИМО), к которым могут обращаться все страницы, которые вызываются (включены) из файла index.php ,

Скорость не должна быть проблемой с небольшим сайтом, поэтому любое решение, которое вы можете выбрать в конце, будет иметь хорошие результаты.

+0

+1 для точки входа в приложение - у нее много преимуществ (http://stackoverflow.com/questions/604046/having-a-single-entry-point-to-a-website-bad-good-non -issue) .. Я бы выбрал более MVCish-способ даже на небольших приложениях ... – Kuchen

+0

Я могу только думать о DrColossos, так как я использую его сам. Но вы должны быть осторожны. Если вы попытаетесь установить включение в зависимости от параметра GET, вы должны создать массив авторизованных страниц, чтобы защитить свой веб-сайт или попытаться выполнить поиск, если файл существует на сервере ... – 3rgo

+0

Мне нравится это решение больше всего, но у меня есть некоторые проблемы с тем, кто имеет доступ к одному из включенных файлов напрямую (я не совсем уверен, как я должен заставить сервер реагировать на эту попытку) –

0

Если сайт действительно прост и не нуждается в дополнительной утилите, я бы пошел со вторым выбором. В основном HTML не настолько сложный, что он должен быть разделен на несколько файлов, магия представления должна оставаться в файле CSS в любом случае ... Со вторым выбором у вас есть свой простой сайт в одном месте и не наденьте, t нужно оглядываться в нескольких файлах, если вы хотите что-то редактировать.

3

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

.htaccess 
inc/ 
tpl/ 
    css/ 
    images/ 
    js/ 
index.php 

Работа index.php, чтобы определить, какой файл для загрузки, где любая логика программирования проводится в файлах в каталоге inc, и шаблоны помогают в каталоге tpl. Например, index.php может быть столь же простым, как это:

<?php 
switch ($_GET['filename']) { 
    case 'news': 
     require('inc/news.php');  // your news functions 
     include('tpl/news.tpl.php'); // your news template 
    break; 
    case 'events': 
     require('inc/events.php'); 
     include('tpl/events.tpl.php'); 
    break; 
    case 'contact': 
     require('inc/contact.php'); 
     include('tpl/contact.tpl.php'); 
    break; 
    default: 
     if ($_GET['filename'] == '') { 
      include('tpl/home.tpl.php'); 
     } 
     else { 
      header('HTTP/1.0 404 Not Found'); 
      include('tpl/page_not_found.tpl.php'); 
     } 
    break; 
} 

В сочетании со следующими правилами .htaccess:

RewriteEngine on 

RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule ^(.+) index.php?filename=$1 

Надеется, что имеет смысл. Если нет, сообщите мне, что нет, и я буду рад объяснить дальше.

+0

Это действительно полезно для меня как начинающего веб-разработчика. Не могли бы вы дать немного глубже понять, как вы обрабатываете inc/и tpl /? Я предполагаю, что в TPL есть фактический html и inc/имеет только php-логику для заполнения переменных? Я буду принимать вашу структуру, поскольку мне очень легко ее запомнить. Благодаря! – errorprone

+1

Да. Файлы в каталоге ** inc ** (includes) содержат логику, а затем переменные «сплетаются» в основном HTML-шаблон из каталога ** tpl **. –

0

Victorelu - на самом деле ответ на ваш вопрос. Но вам может посоветовать приступить к рассмотрению некоторых фреймворков MVC с более легким весом (я не говорю о CI, кохане, пироге и т. Д., Более легкие, такие как кофеин). Я сделал небольшое доказательство концепции с использованием кофеина (легкая структура MVC, основанная на нескольких файлах ядра), которая аккуратно удовлетворяет требованию, которое вы указываете:

«... настройка».

джим

[править] - ссылка на кофеин: http://code.google.com/p/caffeine-php/ есть agreat мало PDF, который идет весь процесс: http://code.google.com/p/caffeine-php/downloads/list

+0

Джим, спасибо, что разместили эту ссылку. Кофеин выглядит довольно сладким! –

+0

Martin - да, я нашел это отличное приложение, тем более, что я больше asp.net mvc. было много сходства. в доме мы склонны использовать .net и для сайтов linux, мы настраиваем joomla, поэтому кофеин очень освежает после joomla :) –

0

я не использовал какие-либо рамки для моих проектов. но все советуют мне использовать рамки. я поддерживать структуру файлов/каталогов собственного

ВНУТРИ ROOT DIR

  • /подпорки
  • /конфигурации
  • /библиотека
  • /СМИ
  • /модели
  • /модули
  • /шаблоны
  • /SQL файлы
  • index.php
0

Проверить mofe информацию о структуре сайта страницы.

Самая важная и очень простая часть веб-сайта php - это структура страницы веб-сайта php, поскольку она помогает, когда вы хотите перепроектировать веб-сайт или хотите отредактировать код, а затем убедитесь, что вам нужно знать структуру страницы веб-сайта.

Проверить полный деталь here

Смежные вопросы