# alex-afk-ux/exercicis_php architecture

> Architecture diagram of the GitHub repository alex-afk-ux/exercicis_php, generated by GitDiagram from its file tree, README and a sample of source files (last updated 2026-11-11). It is an AI-made overview: check details against the source.

- Interactive diagram: https://gitdiagram.com/alex-afk-ux/exercicis_php
- Repository: https://github.com/alex-afk-ux/exercicis_php

## Overview

This repository is a collection of PHP learning exercises, not a single deployed application. Its clearest end-to-end workflow is the account-registration exercise: a visitor submits the form, the processor cleans and validates fields, and the page displays errors or a registration summary before offering a thank-you page. Separate exercises demonstrate functions, variables, arrays, and forms; they appear to run independently. The registration flow is supported by excerpts; the README is empty, so links between the standalone lessons are not inferred.

Main entry points: [`Funciones/M0613_ACT06/processa.php`](https://github.com/alex-afk-ux/exercicis_php/blob/main/Funciones/M0613_ACT06/processa.php) (Form processor), [`Funciones/M0613_ACT06/registre.php`](https://github.com/alex-afk-ux/exercicis_php/blob/main/Funciones/M0613_ACT06/registre.php) (Registration form), [`Funciones/M0613_ACT06/gracies.php`](https://github.com/alex-afk-ux/exercicis_php/blob/main/Funciones/M0613_ACT06/gracies.php) (Thank-you page), [`Funciones/M0613_ACT06/config.php`](https://github.com/alex-afk-ux/exercicis_php/blob/main/Funciones/M0613_ACT06/config.php) (Site configuration)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_registration["Registration exercise"]
  node_registration_form["Registration form<br/>[registre.php]"]
  node_processor["Form processor<br/>[processa.php]"]
  node_helpers["Input and labels<br/>[funcions.php]"]
  node_config["Site configuration<br/>[config.php]"]
  node_header["Page header<br/>[header.php]"]
  node_footer["Page footer<br/>[footer.php]"]
  node_thanks["Thank-you page<br/>[gracies.php]"]
end

subgraph group_functions["PHP functions lessons"]
  node_function_theory["Function theory"]
  node_function_examples["Function examples<br/>[apartat1.php]"]
  node_function_challenge["Function challenge<br/>[repte.php]"]
end

subgraph group_forms["Variables and forms lessons"]
  node_form_exercises["Form exercises<br/>[EX01.php]"]
  node_array_exercises["Array exercises<br/>[index.php]"]
  node_product_example["Product and tax<br/>[index.php]"]
  node_student_example["Student arrays<br/>[index.php]"]
  node_game_example["Character calculations<br/>[index.php]"]
  node_receipt_example["Receipt exercise<br/>[index.php]"]
  node_multi_step_forms["Form steps"]
end

node_visitor(("Visitor"))

node_visitor -.->|"opens"| node_registration_form
node_registration_form -->|"posts to"| node_processor
node_processor -->|"uses"| node_helpers
node_registration_form -->|"loads"| node_config
node_registration_form -->|"includes"| node_header
node_registration_form -->|"includes"| node_footer
node_processor -->|"loads"| node_config
node_processor -->|"includes"| node_header
node_processor -->|"includes"| node_footer
node_processor -->|"links to"| node_thanks
node_thanks -->|"loads"| node_config
node_thanks -->|"includes"| node_header
node_thanks -->|"includes"| node_footer
node_visitor -.->|"studies"| node_function_theory
node_visitor -.->|"runs"| node_function_examples
node_visitor -.->|"runs"| node_function_challenge
node_visitor -.->|"runs"| node_form_exercises
node_visitor -.->|"runs"| node_array_exercises
node_visitor -.->|"runs"| node_product_example
node_visitor -.->|"runs"| node_student_example
node_visitor -.->|"runs"| node_game_example
node_visitor -.->|"runs"| node_receipt_example
node_visitor -.->|"runs"| node_multi_step_forms

click node_registration_form "https://github.com/alex-afk-ux/exercicis_php/blob/main/Funciones/M0613_ACT06/registre.php"
click node_processor "https://github.com/alex-afk-ux/exercicis_php/blob/main/Funciones/M0613_ACT06/processa.php"
click node_helpers "https://github.com/alex-afk-ux/exercicis_php/blob/main/Funciones/M0613_ACT06/funcions.php"
click node_config "https://github.com/alex-afk-ux/exercicis_php/blob/main/Funciones/M0613_ACT06/config.php"
click node_header "https://github.com/alex-afk-ux/exercicis_php/blob/main/Funciones/M0613_ACT06/header.php"
click node_footer "https://github.com/alex-afk-ux/exercicis_php/blob/main/Funciones/M0613_ACT06/footer.php"
click node_thanks "https://github.com/alex-afk-ux/exercicis_php/blob/main/Funciones/M0613_ACT06/gracies.php"
click node_function_theory "https://github.com/alex-afk-ux/exercicis_php/blob/main/Funciones/teoriaFunciones.php"
click node_function_examples "https://github.com/alex-afk-ux/exercicis_php/blob/main/Funciones/apartat1.php"
click node_function_challenge "https://github.com/alex-afk-ux/exercicis_php/blob/main/Funciones/repte.php"
click node_form_exercises "https://github.com/alex-afk-ux/exercicis_php/blob/main/Variables%2CArrays%2CFormularios/EX01.php"
click node_array_exercises "https://github.com/alex-afk-ux/exercicis_php/blob/main/Variables%2CArrays%2CFormularios/EX07/index.php"
click node_product_example "https://github.com/alex-afk-ux/exercicis_php/blob/main/Variables%2CArrays%2CFormularios/EX06/index.php"
click node_student_example "https://github.com/alex-afk-ux/exercicis_php/blob/main/Variables%2CArrays%2CFormularios/EX08/index.php"
click node_game_example "https://github.com/alex-afk-ux/exercicis_php/blob/main/Variables%2CArrays%2CFormularios/EXERCICI3/index.php"
click node_receipt_example "https://github.com/alex-afk-ux/exercicis_php/blob/main/Variables%2CArrays%2CFormularios/EXERCICI2/index.php"
click node_multi_step_forms "https://github.com/alex-afk-ux/exercicis_php/blob/main/Variables%2CArrays%2CFormularios/formularios/pas4-formularis.php"

classDef toneNeutral fill:#f8fafc,stroke:#334155,stroke-width:1.5px,color:#0f172a
classDef toneBlue fill:#dbeafe,stroke:#2563eb,stroke-width:1.5px,color:#172554
classDef toneAmber fill:#fef3c7,stroke:#d97706,stroke-width:1.5px,color:#78350f
classDef toneMint fill:#dcfce7,stroke:#16a34a,stroke-width:1.5px,color:#14532d
classDef toneRose fill:#ffe4e6,stroke:#e11d48,stroke-width:1.5px,color:#881337
classDef toneIndigo fill:#e0e7ff,stroke:#4f46e5,stroke-width:1.5px,color:#312e81
classDef toneTeal fill:#ccfbf1,stroke:#0f766e,stroke-width:1.5px,color:#134e4a
class node_registration_form,node_processor,node_helpers,node_config,node_header,node_footer,node_thanks toneBlue
class node_function_theory,node_function_examples,node_function_challenge toneAmber
class node_form_exercises,node_array_exercises,node_product_example,node_student_example,node_game_example,node_receipt_example,node_multi_step_forms toneMint
class node_visitor toneIndigo
```

## Components

### Registration exercise

- [Registration form](https://github.com/alex-afk-ux/exercicis_php/blob/main/Funciones/M0613_ACT06/registre.php): `Funciones/M0613_ACT06/registre.php`
- [Form processor](https://github.com/alex-afk-ux/exercicis_php/blob/main/Funciones/M0613_ACT06/processa.php): `Funciones/M0613_ACT06/processa.php`
- [Input and labels](https://github.com/alex-afk-ux/exercicis_php/blob/main/Funciones/M0613_ACT06/funcions.php): `Funciones/M0613_ACT06/funcions.php`
- [Site configuration](https://github.com/alex-afk-ux/exercicis_php/blob/main/Funciones/M0613_ACT06/config.php): `Funciones/M0613_ACT06/config.php`
- [Page header](https://github.com/alex-afk-ux/exercicis_php/blob/main/Funciones/M0613_ACT06/header.php): `Funciones/M0613_ACT06/header.php`
- [Page footer](https://github.com/alex-afk-ux/exercicis_php/blob/main/Funciones/M0613_ACT06/footer.php): `Funciones/M0613_ACT06/footer.php`
- [Thank-you page](https://github.com/alex-afk-ux/exercicis_php/blob/main/Funciones/M0613_ACT06/gracies.php): `Funciones/M0613_ACT06/gracies.php`

### PHP functions lessons

- [Function theory](https://github.com/alex-afk-ux/exercicis_php/blob/main/Funciones/teoriaFunciones.php): `Funciones/teoriaFunciones.php`
- [Function examples](https://github.com/alex-afk-ux/exercicis_php/blob/main/Funciones/apartat1.php): `Funciones/apartat1.php`
- [Function challenge](https://github.com/alex-afk-ux/exercicis_php/blob/main/Funciones/repte.php): `Funciones/repte.php`

### Variables and forms lessons

- [Form exercises](https://github.com/alex-afk-ux/exercicis_php/blob/main/Variables%2CArrays%2CFormularios/EX01.php): `Variables,Arrays,Formularios/EX01.php`
- [Array exercises](https://github.com/alex-afk-ux/exercicis_php/blob/main/Variables%2CArrays%2CFormularios/EX07/index.php): `Variables,Arrays,Formularios/EX07/index.php`
- [Product and tax](https://github.com/alex-afk-ux/exercicis_php/blob/main/Variables%2CArrays%2CFormularios/EX06/index.php): `Variables,Arrays,Formularios/EX06/index.php`
- [Student arrays](https://github.com/alex-afk-ux/exercicis_php/blob/main/Variables%2CArrays%2CFormularios/EX08/index.php): `Variables,Arrays,Formularios/EX08/index.php`
- [Character calculations](https://github.com/alex-afk-ux/exercicis_php/blob/main/Variables%2CArrays%2CFormularios/EXERCICI3/index.php): `Variables,Arrays,Formularios/EXERCICI3/index.php`
- [Receipt exercise](https://github.com/alex-afk-ux/exercicis_php/blob/main/Variables%2CArrays%2CFormularios/EXERCICI2/index.php): `Variables,Arrays,Formularios/EXERCICI2/index.php`
- [Form steps](https://github.com/alex-afk-ux/exercicis_php/blob/main/Variables%2CArrays%2CFormularios/formularios/pas4-formularis.php): `Variables,Arrays,Formularios/formularios/pas4-formularis.php`

### Other components

- **Visitor**

## Connections

- Visitor → Registration form: opens
- Registration form → Form processor: posts to (evidence: `Funciones/M0613_ACT06/registre.php`)
- Form processor → Input and labels: uses (evidence: `Funciones/M0613_ACT06/processa.php`)
- Registration form → Site configuration: loads (evidence: `Funciones/M0613_ACT06/registre.php`)
- Registration form → Page header: includes (evidence: `Funciones/M0613_ACT06/registre.php`)
- Registration form → Page footer: includes (evidence: `Funciones/M0613_ACT06/registre.php`)
- Form processor → Site configuration: loads (evidence: `Funciones/M0613_ACT06/processa.php`)
- Form processor → Page header: includes (evidence: `Funciones/M0613_ACT06/processa.php`)
- Form processor → Page footer: includes (evidence: `Funciones/M0613_ACT06/processa.php`)
- Form processor → Thank-you page: links to (evidence: `Funciones/M0613_ACT06/processa.php`)
- Thank-you page → Site configuration: loads (evidence: `Funciones/M0613_ACT06/gracies.php`)
- Thank-you page → Page header: includes (evidence: `Funciones/M0613_ACT06/gracies.php`)
- Thank-you page → Page footer: includes (evidence: `Funciones/M0613_ACT06/gracies.php`)
- Visitor → Function theory: studies
- Visitor → Function examples: runs
- Visitor → Function challenge: runs
- Visitor → Form exercises: runs
- Visitor → Array exercises: runs
- Visitor → Product and tax: runs
- Visitor → Student arrays: runs
- Visitor → Character calculations: runs
- Visitor → Receipt exercise: runs
- Visitor → Form steps: runs
