Cum să faci un site în php de la zero - Forum

[ Mesaje noi · Membrii · Regulamentul forumului · Căutare · RSS ]
Pagina 1 din 11
Forum » Tutoriale si Resurse (T&R) » T&R php » Cum să faci un site în php de la zero ([Tutorial])
Cum să faci un site în php de la zero
GravediggerData: Duminică, 2012-05-13, 11:03 PM | Mesaj # 1
Gravedigger
Administrator
Grup: Administratori
Mesaje: 542
Premii: 10
Reputatie: 5
Stare: Offline
Dacă va-ţi pus acestă intrebare vreodată presupun că sunteţi cunoscuţi cît de cît cu HTML-ul. Asta ar înseamna că stiţi principiul de funcţionare a unei pagini sau cel puţin înţelegeţi cum are loc navigarea dintr-o pagină în alta.
În mod obişnuit, de exemplu, eu primele pagini web scrise in php le organizam în modul urmator (se bazau pe acelaşi principiu ca în HTML-ul pur).
ex:


Cod
<html>
      <head>
          <title>Home Page</title>
      </head>
      <body>
          home |
          <a href="services.php">Services</a> |
          <a href="about.php">About</a>
            
          More about this site, about services and lorem ipsus.
            
          <?php
          // partea dinamica
          // adica cea ce tine de php
          .....
          ?>
            
      </body>
</html>


Cod
<html>
      <head>
          <title>Services Page</title>
      </head>
        
      <body>
          <a href="home.php">home</a> |
          Services |
          <a href="about.php">About</a>
            
          <?php
          print "Service 1";
          //.....
          ?>
            
          <?php
          print "Service 2";
          //.....
          ?>
            
          .........
            
      </body>
</html>


etc.

Însă aşa o organizare este de multe ori incomodă pentru un site mai dinamic. De exemplu, dacă trebuie de modificat sau de adaugat un link atunci va trebui să modificăm toate paginile.

Iata de ce eu propun să facem aşa un mecanizm care ne va usura munca. Mecanizmul constă în apelarea resurselor într-o singură pagină. Pentru a realiza acest lucru trebuie să specificăm nişte lucruri:

1. resursele vor fi intr-un directoriu aparte ex : “dinamic/” , si le vom numi “părţi dinamice”
2. carcasele paginilor (template) sau structurile de organizare, cum vreţi aşa numiţile, vor fi în alt directoriu aprte ex: “template/”
3. template-ul de bază se va numi ex: “default.phtml”;
template-ul de baza va fi implementat astfel incat sa fie setat ca implicit pentru o anumită parte dinamică din “dinamic/” care nu va avea un template specificat.
4. partea dinamică implicită o vom numi ex: “default.php”
toate aceste specificări le vom plasa in fisierul pentru config (config.php)

NOTĂ : fisierele phtml nu se deosebesc cu nimic de fisierele html, sau html, sau php1, php2, php3, etc. însă în dependenţă de modul de configurare ale unor servere web ( WAMP, LAMP, MAMP etc.), codul php scris în fişierele html sau htm nu se execută ci se afişează ca text.

NOTĂ : recomand ca pe viitor, pentru facilitate, resursele de acelas tip să fie stocate în directorii cu nume reprezentative.

ex :
fişierele pentru stil (stylesheet), css/ *.css,
fişierele grafice (*.jpeg,*.gif,*.png, etc) images/*.*, sau gfx/*.*,
etc.

Şi deci avem aşa o structura în directoriul părinte al site-ului nostru :

index.php
config.php
dinamic/*.php
template/*.phtml

Specificările din config.php :


Cod
<?php
// constanta pentru resursa de implicita
define('BASE','home.php');
// daca pagina home este mai speciala
// si necesita un template aparte
// îl definim cu BASET;
define('BASET','home.phtml'); // ! daca este necesar
// template-ul care va fi utiliza în cazurile generale
define('DEF','default.phtml');
// pagina cu erore 404 în caz ca URI este cules de mîna
// si este cules gresit
define('ERRORT','error.php');
// template-ul pentru pagina cu erore 404
define('ERROR','error.phtml');
// directoriu pentru stocarea templat-urilor
define('TEMPLATE','template/');
// directoriu pentru stocarea partilor dinamice
define('RESOURCE','dinamic/');
?>


Daca mai sunt chestii care le veţi utiliza des în situl vostru puteţi să le specificaţi în config.php

în index vom scrie cod pentru prelucrarea URI şi anume cea ce se va transmite prin variabila GET. In dependenţă de valoarea acestei variabile vom apela template-ul şi partea dinamică necesară.


Cod
<?php
      include "config.php";

      //prelucram GET - ul, URI va avea forma
      //index.php?resource=nume_resursa¶ms=param1,p2,p3,etc
      if ( isset( $_GET[ 'resource' ] ) ) {
          if ( strlen( $_GET[ 'resource' ] ) > 0) {
              // verificam daca exista o astfel de parte dinamica
              if ( is_file( RESOURCE . $_GET[ 'resource' ].'.php' ) ) {
                  $resource = $_GET['resource'].'.php';

                  // verificam daca pentru aceasta parte dinamica
                  // este specificat un template special
                  if(is_file(TEMPLATE . $_GET['resource'].'.phtml'))
                  {
                      $template = $_GET['resource'].'.phtml';
                  } else {
                      $template = DEF;
                  }
        
                  // identificam parametri suplimentari
                  if ( isset( $_GET[ 'params' ] ) ) {
                      if( strlen( $_GET[ 'params' ] ) > 0 ) {
                          $params = explode( ',', $_GET['params'] );
                      } else {
                          $params = array();
                      }
                  } else {
                      $params = array();
                  }
              }
          } else {
              $resource = ERROR;
              $template = ERRORT;
          }
      } else {
          $resource  = BASE;
          $template = BASET;
      }
        
      include TEMPLATE . $template;
?>


Dacă aţi observat numele template-ului specificat trebuie să fie identic cu numele parţii dinamice pentru care dorim să specificăm un template special

În continuare vom arăta conţinutul template/home.phtml


Cod
<html>
      <head>
          <title> Home Page </title>
      </head>

      <body>
          Home |
          <a href="index.php?resurce=services">Services</a> |
          <a href="index.php?resurce=services">About</a>
            
          <div id="page">
              <?php include RESOURCE . $resource; ?>
          </div>
      </body>
</html>


În continuare vom arăta conţinutul template/default.phtml

Cod
<html>
      <head>
          <title><?php print $_GET['resource']; ?> Page </title>
      </head>
        
      <body>
          <div id="header">
          ......
          </div>
            
          <a href="index.php?resurce=home">Home</a> |
          <a href="index.php?resurce=services">Services</a> |
          <a href="index.php?resurce=about">About</a>
            
          <div id="page">
              <?php include RESOURCE . $resource; ?>
          </div>
      </body>
</html>


Dacă aţi observat doar în pagina home nu se va afişa regiunea div header.

din acestă cauză şi s-a specificat un template aparte.

În continuare dinamic/home.php


Cod
<?php
      if ( @$params[0] == 'red' ) {
          print '<div style="color:red;">';
          print 'This is a Home Page';
          print '</div>';
      } else {
          print '<div style="color:black;">';
          print 'This is a Home Page';
          print '</div>';
      }
?>


etc.

părţile dinamice Services şi About la fel se construiesc, adică în services.php şi about.php scriem codul care ţine doar de paginile services respectiv de about

Astfel în “dinamic/” vom plasa doar parţile care se vor modifica.

NOTĂ : este de menţionat, mai ales pentru începători, că variabilele dintr-un fişier la includerea altor fişiere se transmit în fişierul inclus cu valoarea de la momentul includerii.

sursele sunt verificate !!!

Dacă sunt întrebări îndrazniţi.


 
Forum » Tutoriale si Resurse (T&R) » T&R php » Cum să faci un site în php de la zero ([Tutorial])
Pagina 1 din 11
Căutare: