Olyan projektekre kell gondolnunk, amelyek egy webhelynek nem a főoldalát alkotják, hanem valamilyen alkönyvtárban egy kisebb program, ami lehet például egy regisztrációs felület egy eseményre.
Legyen egy webhely, amely zold.lan címen érhető el. Ennek egy pr01 nevű alkönyvtárában szeretnénk egy regisztrációs felületet. A weboldal így lesz elérhető:
http://zold.lan/pr01/
A következő könyvtárszerkezetet tervezzük:
projekt01 |-.git/ |-database/ |-draft/ |-pr01/ | |-css/ | |-js/ | |-includes/ | |-libs/ | |-templates/ | |-views/ | `-index.php | |-.gitignore |-changelog.txt `-readme.txt
mkdir projekt01 cd projekt01 mkdir pr01 php -S localhost:8000 -t .
A böngészőben viszont ezt írjuk:
localhost:8000/pr01
A tárolót a projekt01 könyvtárban hozzuk létre.
git init
A felöltéshez a git verziókövetőt fogjuk használni, SSH protokollon keresztül. Ezért állítsuk be a távoli szervert.
Host webhost Hostname zold.lan User git IdentityFile ~/.ssh/webhost_rsa IdentitiesOnly yes
A .gitignore fájlban írjuk fel azokat a könyvtárakat és fájlokat, amelyeket nem szeretnénk verzió követni.
A routinghoz szükség van egy .htaccess fájlra:
RewriteEngine On RewriteBase /projekt01/ RewriteCond %{REQUEST_FILENAME} !-d RewriteCond %{REQUEST_FILENAME} !-f RewriteRule ^(.+)$ /projekt01/index.php [QSA,L]
A .htaccess fájl Apache webszerveren bármilyen kérést átirányít a /projekt01/index.php állományra.
Hozzuk létre a routing fájlt:
<?php $requestUri = explode('?', $_SERVER['REQUEST_URI'], 2); switch($requestUri[0]) { case '/projekt01': case '/projekt01/': require 'views/home.php'; break; case '/projekt01/regform': require 'views/regForm.php'; break; case '/projekt01/reg': require 'views/reg.php'; break; case '/projekt01/confirmreg': require 'views/confirmreg.php'; break; case '/projekt01/terms': require 'views/terms.php'; break; case '/projekt01/list': require 'views/list.php'; break; case '/projekt01/privacy': require 'views/privacy.php'; break; default: header('HTTP/1.0 404 Not Found'); require 'views/404.php'; }
A kiinduló oldalt a home.php szolgáltatja. De valójában csak három PHP kódot tartalmaz. A tényleges HTML kódok a következő fájlokban találhatók:
A head.tpl és a foot.tpl állományokat a többi weboldalhoz is felhasználjuk. Így minden weblapnak egységes fej és lábrésze lesz.
A CSS és JavaScript fájlokra így hivatkozzunk:
/pr01/css/style.css /pr01/js/script.js
A template oldal beemelése PHP scriptből:
<?php echo file_get_contents('templates/head.tpl'); echo file_get_contents('templates/home.tpl'); echo file_get_contents('templates/foot.tpl');
Tartalom cseréje a template fájlban:
<?php echo file_get_contents('templates/head.tpl'); $page = file_get_contents('templates/akarmi.tpl'); $page = str_replace('{{label}}', 'Cím', $page); echo $page; echo file_get_contents('templates/foot.tpl');