From: LeonardoBizzoni Date: Sun, 17 Apr 2022 12:49:46 +0000 (+0200) Subject: Documentazione controller model X-Git-Url: http://git.leonardobizzoni.com/?a=commitdiff_plain;h=c12d6ecc70108c9e4c53dea334d0a351b9197043;p=highschool-graduation-project Documentazione controller model --- diff --git a/README.org b/README.org index 5b618f5..2a60d36 100644 --- a/README.org +++ b/README.org @@ -12,7 +12,6 @@ - [[#entry-point---indexphp][Entry point - index.php]] - [[#core][Core]] - [[#models][Models]] - - [[#views][Views]] - [[#controllers][Controllers]] * Descrizione del progetto @@ -66,60 +65,9 @@ Se l'idol non è attualmente live viene mostrata una pagina che notifica l'utent ** Configurazione ed installazione server *** Server web - Nginx Ho deciso di utilizzare Nginx come web server per le performance nettamente migliori e leggerezza in confronto ad altri web server. -L'installazione viene effettuata tramite un docker container e la seguente container image: -#+begin_src dockerfile :tangle dockerfiles/web/Dockerfile -FROM php:8.1.4-fpm-alpine3.14 -WORKDIR /var/www/html - -RUN apk update && apk add --no-cache \ - php8 \ - php8-fpm \ - php8-mysqli \ - nginx - -RUN docker-php-ext-install pdo pdo_mysql mysqli -RUN docker-php-ext-enable pdo_mysql - -RUN curl -sS https://getcomposer.org/installer | php -- --install-dir=/usr/local/bin --filename=composer -RUN php-fpm & - -COPY nginx.conf /etc/nginx/nginx.conf -CMD php-fpm -D && nginx -g "daemon off;" -#+end_src - -Nginx utilizza il seguente file di configurazione: -#+begin_src conf :tangle dockerfiles/web/nginx.conf -user nginx; -worker_processes 4; - -error_log /var/log/nginx/error.log warn; - -events { - worker_connections 1024; -} - -http { - server { - listen 80 default_server; - listen [::]:80 default_server; - - root /var/www/html/pub; - index index.php index.html index.htm index.nginx-debian.html; - server_name _; - - location / { - try_files $uri $uri/ /index.php?$args; - } - - location ~ \.php$ { - fastcgi_pass 127.0.0.1:9000; - fastcgi_index index.php; - include fastcgi.conf; - } - } -} -#+end_src +L'installazione viene effettuata tramite un docker container e la seguente [[./dockerfiles/web/Dockerfile][container image]]. +Nginx utilizza il seguente [[./dockerfiles/web/nginx.conf][file di configurazione]]. *** Server database - MariaDB L'installazione del database server mariadb viene anch'essa eseguita tramite un docker container e la container image disponibile su [[https://hub.docker.com/_/mariadb][hub.docker]] per cui non ha bisogno di alcuna configurazione. @@ -138,7 +86,7 @@ La web app è strutturata seguendo il *Model View Controller* framework. Per gestire le dipendenze e namespaces di PHP viene utilizzato *composer*. ** Entry point - index.php -La home page, si occupa di inizializzare l'applicazione ed impostare le route con annessa funzione di callback o *View*. +La home page, si occupa di inizializzare l'applicazione ed impostare le route con annesso array [Controller, metodo]. #+begin_src php :tangle www/pub/index.php run(); ** Core *** Main application class -La classe principale, si occupa di instanziare il Router e la Request helper class. +La classe principale, si occupa di istanziare: +- la Router class +- la Request helper class +- la Response helper class + +Rappresenta il fulcro della web app. +Rende possibile l'accesso a tutte le classi da essa istaziate tramite la viariabile statica "$app". + +Gestisce tutti i controller tramite "BaseController". #+begin_src php :tangle www/core/Application.php #+end_src *** Response class +Semplice helper class con il compiti di gestire dei parametri della response da inviare all'utente. + #+begin_src php :tangle www/core/Response.php #+end_src -** Views -*** Home -#+begin_src php :tangle www/views/home.php -

Hello, World!

-

Welcome, !

-#+end_src - -*** Contact -#+begin_src php :tangle www/views/contact.php -

Contact page

- -
-
-
- - -
We'll never share your email with anyone else.
-
-
- - -
-
- - -
- -
-
-#+end_src - -*** Login -#+begin_src php :tangle www/views/login.php -

Login page

- -
-
-
- - -
We'll never share your email with anyone else.
-
-
- - -
-
- - -
- -
-
-#+end_src - -*** Register -#+begin_src php :tangle www/views/register.php -

Registration page

- -
-
-
- - -
-
- - -
-
- - -
-
- - -
-
- - -
-
- - -
-
- -
-
-
-#+end_src - -*** 404 -#+begin_src php :tangle www/views/404.php -

404 - File not found!

-#+end_src - ** Controllers +Le classi "Controller" svolgono il ruolo di ponte. +Esse permettono ai dati di apparire nella View richiesta dall'utente una volta prelevati dal database o di venirvi inseriti tramite una form. + *** General controller +Generico controller, probabilmente da eliminare. + #+begin_src php :tangle www/controllers/SiteController.php