[[oktatas:programozás:php|< PHP]]
====== PHP routing ======
* **Szerző:** Sallai András
* Copyright (c) Sallai András, 2019, 2020
* [[https://creativecommons.org/licenses/by-sa/4.0/|CC Attribution-Share Alike 4.0 International]]
* Web: http://szit.hu
===== Egyszerű routing =====
Az apache számára szükséges:
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.+)$ index.php [QSA,L]
A működéshez szükség van az Apache-ban
AllowOverride FileInfo
Főoldal
Névjegy
Kapcsolat
Az oldal nem található!
===== Az explode =====
Az explode akkor hasznos, ha vannak paraméterek, amiket szeretnénk
leválasztani.
===== Header =====
A header('HTTP/1.0 404 Not Found') utasításnak látszólag nincs hatása.
De egy curl paranccsal megtekintve:
curl -D /dev/stdout http://localhost:8000/vmi
HTTP/1.0 404 Not Found
Host: localhost:8000
Connection: close
X-Powered-By: PHP/7.0.33-0+deb9u3
Content-type: text/html; charset=UTF-8
Nincs ilyen oldal
===== Az includes =====
Az includes könyvtár a php függvények tárhelye, amelyet
olyan alkönyvtárban is használhatunk, amelyekben külön
routing van. Ilyen esetben nem mindegy, hogyan kezdődik
egy include(), include_once() függvény paramétere.
Ajánlott például:
include_once($_SERVER['DOCUMENT_ROOT']."/mysql.php");
===== Alkönyvtárhoz .htaccess =====
RewriteEngine On
RewriteBase /info/
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.+)$ /info/index.php [QSA,L]
Alkönyvtár esetén fejlesszünk így:
projekt01
|-.git/
|-database/
|-draft/
|-projekt01/
| |-css/
| |-js/
| |-includes/
| |-libs/
| |-templates/
| |-views/
| `-index.php
|
|-.gitignore
|-changelog.txt
`-readme.txt
mkdir projekt01
cd projekt01
mkdir projekt01
php -S localhost:8000 -t .
A CSS és JavaScript fájlokra így hivatkozzunk:
projekt01/css/style.css
projekt01/js/script.js
===== Források =====
* https://www.taniarascia.com/the-simplest-php-router/ (2019)
* https://joshtronic.com/2015/05/24/basic-page-routing-in-php/ (2019)
* https://thisinterestsme.com/404-not-found-header-php/ (2019)