Zacznijmy więc!
Dframe to Framework PHP do tworzenia aplikacji internetowych, serwisów API oraz mikroserwisów. Stworzony do szybkiego tworzenia stron posiada wiele przydatnych komponentów takich jak:
Głowne założenie to szybkość budowania aplikacji.
Projekt jest rozwijany przez grupę programistów oraz społecznośc GITHUB.
Dframe jest kompatybilny z PHP 7.x.
Postawowa Struktura plików
Bootstrap.php - znajdują się globalny dostępne zmienne. Jest to podstawowa klasa która jest dostępna w całym projekcje i jest ładowana na starcie. Dostęp poprzez zmienną $this->baseClass. W przykładowym projecie znajduje się tu przedewyszystkim ładowanie sesji, tokenów i załadowanie bazy danych.
Config - folder zawiera pliki konfiguracyjne w postaci
return [
'klucz' -> 'Wartość',
'innyKlucz' => 'Inna Wartość'
];
W naszym przypadku znaduje się jeszcze router.php gdyż przykładowa aplikacja używa Dframe\Router oraz folder view z plikiem smarty.php bo w przykładzie użyliśmy silnik S.M.A.R.T.Y jednak do renderowania html można użyć dowolnego systemu np: Twig, Mustache ewenualnie czysty php
Controller - kluczowym plikiem jest tutaj Controller.php Łączy on ze sobą Router i wymieniony wcześniej $this->baseClass
Uwaga!
extention Controller\Controller
__construct()
używamy metody init()
działa ona w takim sam sposóbView - folder ten odpowiada za warstwę widoku niedostępną bezpośrednio z adresu.
$this->assign('auth', new auth());
W łatwy sposób można np określać wyświetlane treści. W templatce na przykładzie używanego silnika przestawia się sposób {if $auth->isLogin()} Treść Tylko dla zalogowanej osoby {/if}
| composer.json
| composer.lock
| LICENSE
|
+---app
| | Bootstrap.php
| |
| +---Config
| | | router.php
| | |
| | \---view
| | smarty.php
| |
| +---Controller
| | Controller.php
| | Page.php
| |
| \---View
| | Index.php
| | View.php
| |
| +---templates
| | footer.html.php
| | header.html.php
| | index.html.php
| |
| +---errors
| | 404.html.php
| |
| +---page
| test.html.php
|
+---vendor
\---web
| config.php
| index.php
|
+---assets
W wersji produkcyjnej dla samego nawet bezpieczeństwa warto używać.
RewriteEngine On
#Deny access for hidden folders and files
RewriteRule (^|/)\.([^/]+)(/|$) - [L,F]
RewriteRule (^|/)([^/]+)~(/|$) - [L,F]
# Ustawia folder web jako katalog głowny
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ web/$1
# Przekazuje zapytanie na index.php
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ web/index.php [QSA,L]
# Ustawia folder web jako katalog głowny
location / {
root /home/[project_path]/htdocs/web;
index index.html index.php index.htm;
if (!-e $request_filename) {
rewrite ^/(.*)$ /index.php?q=$1 last;
}
}
# Przekazuje zapytanie na index.php
location ~ .php$ {
try_files $uri = 404;
fastcgi_pass 127.0.0.1:9000;
#fastcgi_pass unix:/run/php/php7.1-fpm.sock;
fastcgi_index web/index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}