nimblephp / framework
NimblePHP MVC Framework
Requires
- php: >=8.3
- ext-mbstring: *
- dragonmantank/cron-expression: ^v3.6.0
- filp/whoops: ^2.18
- krzysztofzylka/console: ^1.1.0
- krzysztofzylka/database-manager: ^1.1.18
- krzysztofzylka/env: ^2.0.2
- krzysztofzylka/file: ^1.0.6
Requires (Dev)
- phpunit/phpunit: ^11.5.55
- dev-main
- 0.4.10
- 0.4.9
- 0.4.8
- 0.4.7
- 0.4.6
- 0.4.5
- 0.4.4
- 0.4.3
- 0.4.2
- 0.4.1
- 0.4.0
- 0.3.11
- 0.3.10
- 0.3.9
- 0.3.8
- 0.3.7
- 0.3.6
- 0.3.5
- 0.3.4
- 0.3.3
- 0.3.2
- 0.3.1
- 0.3.0
- 0.2.7
- 0.2.6
- 0.2.5
- 0.2.4
- 0.2.3
- 0.2.2
- 0.2.1
- 0.2.0
- 0.1.25
- 0.1.24
- 0.1.23
- 0.1.22
- 0.1.21
- 0.1.20
- 0.1.19
- 0.1.18
- 0.1.17
- 0.1.16
- 0.1.15
- 0.1.14
- 0.1.13
- 0.1.12
- 0.1.11
- 0.1.10
- 0.1.9
- 0.1.8
- 0.1.7
- 0.1.6
- 0.1.5
- 0.1.4
- 0.1.3
- 0.1.2
- 0.1.1
- 0.1.0
- dev-2106-events
- dev-2108-refaktoryzacja-cache
- dev-2107-ogolne-poprawki
- dev-1349-klasa-konfiguracji
- dev-1875-obsluga-kill-w-procesach-cronow
- dev-2091-refaktor-klasy-route
- dev-2090-rozszerzenie-testow
- dev-1986-czyszczenie-kodu
- dev-1606-uruchamianie-cronow-z-modulow
- dev-1033-usprawnienie-ladowania-kontrolerow
- dev-cursor/dokumentacja-kodu-w-j-zyku-polskim-5ea7
- dev-documentation
This package is auto-updated.
Last update: 2026-05-16 11:17:18 UTC
README
NimblePHP
NimblePHP to lekki framework skupiający się na prostocie. Zapewnia wzorzec MVC oraz automatyczne połączenie z bazą danych, dostarczając wszystko, czego potrzebujesz do rozpoczęcia pracy. Jeśli potrzebujesz dodatkowych funkcji, po prostu zainstaluj odpowiedni moduł i zacznij z niego korzystać.
Dokumentacja projektu dostępna jest pod linkiem: https://nimblemvc.github.io/documentation/
Dlaczego NimblePHP?
- Prostota Brak modułów które dodatkowo ociążają kod
- Rozszerzenia Wszystkie oficjalne rozszerzenia dosępne w jednym miejsciu (pod tym linkiem)
- Szybki start Szybka konfiguracja i pierwsze uruchomienie
Instalacja
Na samym początku należy zaimportować repozytorium composer
composer require nimblephp/framework
Następnie należy utworzyć folder public a w nim plik index.php o treści:
<?php require('../vendor/autoload.php'); $route = new \NimblePHP\Framework\Routes\Route(new \NimblePHP\Framework\Request()); $kernel = new \NimblePHP\Framework\Kernel($route); $kernel->handle();
oraz plik .htaccess z zawartością:
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.+)$ index.php?url=$1 [QSA,L]
Teraz należy uruchomić plik index.php, pierwsze uruchomienie spowoduje utworzenie folderów wymaganych przez projekt
CLI
Czyszczenie cache
php vendor/bin/nimble cache:clear
Uruchamianie wersji developerskiej aplikacji
php vendor/bin/nimble serve <host:127.0.0.1> <port:8080>
Event listeners
Framework udostępnia teraz EventDispatcher, który działa równolegle do obecnego systemu middleware.
Nowe rozszerzenia aplikacji warto budować już na eventach:
use App\Event\AfterTaskAdd; use NimblePHP\Framework\Kernel; Kernel::getEventDispatcher()->addListener(AfterTaskAdd::class, function (AfterTaskAdd $event): void { // np. webhook, mail, aktualizacja statystyk });
Następnie w aplikacji można wyemitować własny event:
Kernel::dispatchEvent(new AfterTaskAdd($taskId, $payload));
Framework dispatchuje też własne eventy m.in. dla:
- bootstrapu kernela,
- rozwiązywania requestu i routingu,
- dispatchu kontrolera,
- wysyłania response,
- logów,
- renderowania widoków,
- modeli i ORM,
- lifecycle create/update/delete modeli,
- operacji na service containerze,
- rozwiązywania serwisów z kontenera.
MiddlewareManageri interfejsy middleware pozostają dostępne dla kompatybilności, ale są traktowane jako deprecated / legacy. Nowy kod powinien używać event listenerów.
Benchmark Route
Ręczny benchmark routera można uruchomić poleceniem:
php bin/route-benchmark
Skrypt wypisuje średni koszt reload() dla tras statycznych i dynamicznych oraz porównanie registerRoutes() dla cold cache i warm cache.
Benchmark Cache
Ręczny benchmark cache można uruchomić poleceniem:
php bin/cache-benchmark
Skrypt mierzy koszt podstawowych operacji set(), get(), has() i clear() dla cache plikowego.
Współtworzenie
Zachęcamy do współtworzenia! Masz sugestie, znalazłeś błędy, chcesz pomóc w rozwoju? Otwórz issue lub prześlij pull request.
Pomoc
Wszelkie problemy oraz pytania należy zadawać przez zakładkę discussions w github pod linkiem: https://github.com/NimbleMVC/Framework/discussions