# Dogstats dingsi

https://gitea.haschek.at/Crispi/dogstats

## Techstack

- [HTMX](https://htmx.org/docs/)
- [Bootstrap 5](https://getbootstrap.com/docs/5.3/layout/breakpoints/)
- [Font Awesome 5 Pro](https://fontawesome.com/v5/search)
- [Animate.css](https://animate.style/)

## Start Dev

### Beim ersten Start

Config file erstellen bzw kopieren

1. `cd web/inc`
2. Datei `example.config.inc.php` umbenennen auf `config.inc.php`
3. Gegebenenfalls Werte anpassen in der Config

### Jedes Mal

Im Terminal dann Webserver starten

1. `cd web`
2. `php -S localhost:8080`
3. Browser auf http://localhost:8080 öffnen

## oder mit Xdebug

0. php server vom vorherigen schritt darf nicht laufen
1. xdebug installieren (`sudo apt install php-xdebug` oder `sudo apk add php82-pecl-xdebug`)
2. So oder so ähnlich muss die config aussehen `/etc/php82/conf.d/50_xdebug.ini`

```ini
[Xdebug]
zend_extension=xdebug
xdebug.mode=debug,develop
xdebug.client_host=host.docker.internal
xdebug.client_port=5902 #same port as in launch.json
```

3. Dann im VScode auf debugging -> Grünen pfeil `Xdebug server` drücken

## Ordnerstruktur

```
.
├── tools               Tools halt
└── web
    ├── css             CSS files, braucht man eigentlich nicht weil tailwind macht das schon
    ├── imgs            Statische Bilder hier rein
    ├── inc             Paar Sachen, die wichtig sind, damit das backend überhaupt funktioniert
    │   ├── classes     Allgemeine Klassen für die Seite
    │   └── vendor      Composer pakete
    ├── js              JS Libraries
    ├── pages           Alle Ordner hier drinnen sind automatisch dann endpoints. zB wenn man /home
    │   ├── auth          aufrufen können möchte, muss man einen home Ordner erstellen und drinnen eine PHP Datei namens 
    │   ├── err           controller.php haben. Die wiederum muss eine Klasse sein, die den Namen des Ordners hat (nur großer Anfangsbuchstabe)
    │   └── home          Am einfachsten einen bestehenden anschauen oder kopieren 😁
    └── templates       Allgemeine Templates, mal schauen ob benötigt
        └── partials
```