2010-07-12 5 views
0

Je travaille avec PHP depuis quelques années maintenant mais je ne me considère pas plus qu'un programmeur modéré. Lors de la création de certains sites Web (allant des sites de présentation à quelques CMS simples), j'ai pris 2 approches dont je parlerai plus loin. Ma question est simple: quelle est la meilleure en termes de personnalisation (elle doit être aussi personnalisable que possible) et de rapidité (chargement le plus rapide possible).Structure de fichier PHP pour un site web simple?

Premier choix

fichiers: header.php, content1.php, content2.php, footer.php

idée: tous les fichiers de contenu comprennent l'en-tête au début de le fichier et le pied de page à la fin.


Deuxième choix

fichiers: index.php, content1.php, content2.php

idée: basée sur une variable GET ou quelque chose de similaire, index.php inclut le fichier php pertinent


Merci d'avance pour la réponse!

Répondre

2

Je voudrais aller avec le 2ème. C'est l'approche adoptée par de nombreux cadres et une très bonne. Vous avez un seul endroit qui est toujours appelé, vous pouvez donc effectuer un traitement comme nettoyer l'URL, vérifier une session valide, ...

En outre, vous pouvez stocker des options de base dans l'index.php (puisque c'est un petit site je vois un problème de cette façon de le faire mais avec de plus gros projets, les fichiers de configuration sperate sont le meilleur moyen IMO) qui peut être accédé par toutes les pages qui sont appelées depuis le fichier index.php .

La vitesse ne devrait pas être un problème avec un petit site, quelle que soit la solution que vous puissiez choisir à la fin aura de bons résultats.

+0

+1 pour un point d'entrée à votre application, il présente de nombreux avantages (http://stackoverflow.com/questions/604046/having-a-single-entry-point-to-a-website-bad-good-non -issue) .. Je choisirais probablement une façon plus MVCish même sur les petites applications ... – Kuchen

+0

Je ne peux qu'élever l'opinion de DrColossos, puisque je l'utilise moi-même. Mais vous devez faire attention à quelque chose. Si vous essayez de définir l'inclusion en fonction d'un paramètre GET, vous devez créer un tableau de pages autorisées, juste pour protéger votre site Web, ou essayer de rechercher si le fichier existe sur le serveur ... – 3rgo

+0

j'aime cette solution le plus mais j'ai juste quelques problèmes en ce qui concerne quelqu'un accédant à un des fichiers inclus directement (je ne suis pas vraiment sûr comment je devrais faire réagir le serveur à cette tentative) –

0

Si le site Web est vraiment simple et n'a pas besoin d'utilité supplémentaire, j'irais avec le deuxième choix. La plupart du temps le HTML n'est pas si compliqué, il doit être divisé en plusieurs fichiers, la magie de la présentation doit rester dans le fichier CSS de toute façon ... Avec le deuxième choix, vous avez votre - simple - site web en un seul endroit et don ' Je dois regarder dans plusieurs fichiers si vous voulez éditer quelque chose.

3

J'ai un framework génial qui fonctionne aussi bien pour les petits sites que pour les grands. La structure est à peu près la même dans tous les cas et ma structure de répertoire se présente comme suit:

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

Le travail de index.php est de déterminer quel fichier à charger, où une logique de programmation se déroule dans des fichiers dans le répertoire inc, et les modèles sont d'aide dans le répertoire tpl. Par exemple, index.php pourrait être aussi simple que cela:

<?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; 
} 

Couplé avec les .htaccess règles suivantes:

RewriteEngine on 

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

Espérons que logique. Si non, laissez-moi savoir ce qui ne fonctionne pas et je serai heureux d'expliquer plus loin.

+0

Ceci est vraiment utile pour moi en tant que développeur Web à partir. Pourriez-vous nous donner un aperçu un peu plus approfondi de la façon dont vous gérez l'inc/et le tpl /? Je devine que les TPL contiennent le html réel et l'inc/a juste la logique de php pour peupler les variables? Je vais adopter votre structure car je la trouve très facile à retenir. Merci! – errorprone

+1

Oui. Les fichiers du répertoire ** inc ** (includes) contiennent une logique, puis les variables sont "spat" dans un modèle principalement HTML du répertoire ** tpl **. –

0

Victorelu - pas vraiment une réponse à votre question. Mais vous pourriez être conseillé de commencer à regarder certains des cadres de PHP MVC de poids plus léger (je ne parle pas de CI, kohana, gâteau etc, plus les très légers tels que la caféine). J'ai fait une petite démonstration de concept en utilisant la caféine (un framework MVC léger basé sur quelques fichiers core) qui répond parfaitement à l'exigence que vous énoncez:

'... personnalisation'.

jim

[modifier] - lien vers la caféine: http://code.google.com/p/caffeine-php/ il y a peu agreat pdf qui marche l'ensemble du processus: http://code.google.com/p/caffeine-php/downloads/list

+0

Jim, merci de poster ce lien. La caféine a l'air plutôt sucrée! –

+0

Martin - oui, je l'ai trouvé une super petite application, d'autant plus que je suis plus asp.net mvc. il y avait beaucoup de similitudes. en interne, nous avons tendance à utiliser .net et pour les sites linux, nous personnalisons joomla, donc la caféine est très rafraichissante après joomla :) –

0

i na pas utiliser tout cadre pour mes projets. mais tout le monde me conseille d'utiliser un cadre. i maintenir une structure fichier/répertoire de mon

INTÉRIEUR ROOT DIR

  • /sauvegardes
  • /config
  • /bibliothèque
  • /media
  • /modèles
  • /modules
  • /templates
  • /fichiers sql
  • index.php
0

d'information Vérifier MOFE sur la structure de la page du site. La partie la plus importante et la plus basique du site php est la structure de la page du site php car elle aide lorsque vous voulez reconcevoir le site ou que vous voulez éditer du code, alors assurez-vous de connaître la structure de page du site.

Vérifier le détail complet here

Questions connexes