Projekt »skinny«

Projekt
skinny
Kategorie
php (3)
Tags
php(2), css(1), javascript(2), apparate(14), server(2), minifier(1)
Gestartet
06/01/20 11:44:28
RelDate
04-01-21
Released
skinny.1
Maintainer
Pieli

skinny ist ein asset preprocessor. Er kann keine Sprachen, dafür aber Dateien packen und mischen.

Damit kann man linkarm Web-Assets zusammenfassen und gepackt übertragen.

Dafür implementiert er ein paar Klassen aus Übersee, den guten Minifier von Matthias Mullie

Sinn

Was ist ein Minifier? Dem sagt man ein Bündel Dateien an (wahrscheinlich CSS-/oder JS-Dateien) und möchte daraus - just in time - eine Datei gemacht haben. Damit reduziert man Streß für den Web Server und kann diese außerdem - so der Client es versteht - auch noch packen und cachen, so hat man noch weniger Arbeit. Der Trick ist dabei natürlich zu merken, ob sich die Dateien bei vorhandener Cache-Version geändert haben.

Features

  • Handling des Request-Gezerres

    • ob Kompression beim Nutzer unterstützt wird, wird geprüft
    • E-Tags werden versandt
    • Request- und
    • Response-Headers (die richtigen! ;) werden versandt
    • Quelle abgelaufen wird berücksichtigt
    • Cache abgelaufen wird berücksichtigt und kann konfiguriert werden
    • => wir bauen!
    • Debug-Ansicht zur leichteren Fehlersuche in den Quelldateien
    • dabei anstängige Annotation
  • also das ganze so anordnen, dass ein nachvollziehbares Framework entsteht mit

    • Konfigurationen für die einzelnen Versände
    • Einsatz verschiedener Versionen derselben

Aufbau im Dateisystem

skinny Dateisystem
./skinny/
└── build
    ├── bin
    │   ├── minifycss
    │   └── minifyjs
    ├── cfgs.d
    ├── class_build.php
    ├── class_debug.php
    ├── class_request.php
    ├── class_serve.php
    ├── data
    │   └── js
    │       ├── keywords_after.txt
    │       ├── keywords_before.txt
    │       ├── keywords_reserved.txt
    │       ├── operators.txt
    │       ├── operators_after.txt
    │       └── operators_before.txt
    ├── index.php
    ├── sources
    │   ├── css
    │   └── js
    ├── src
    │   ├── CSS.php
    │   ├── Converter.php
    │   ├── ConverterInterface.php
    │   ├── Exception.php
    │   ├── Exceptions
    │   │   ├── BasicException.php
    │   │   ├── FileImportException.php
    │   │   └── IOException.php
    │   ├── JS.php
    │   ├── Minify.php
    │   ├── NoConverter.php
    │   ├── bin
    │   ├── mime.conf
    │   └── mimer.sh
    └── srv
        ├── favicon.ico
        └── index.html

Darüber hinaus

Sollte man seinen Webserver der Wahl anweisen, gepackte, ungezippte Dokumenten-MIME-Typen im vorgesehenen Content-Type auszuliefern.

Ein Blick in die mime.conf im dortigen Konfigurationsverzeichnis scheint lohnend.

Alle 1 Releases für Projekt »skinny«