rjm / blackhole-framework
Small REST PHP framework base on ADR pattern
Package info
gitlab.com/rjamessp2003/blackhole-framework
Type:project
pkg:composer/rjm/blackhole-framework
Requires
- php: >=8.3
- ext-json: *
- composer/xdebug-handler: ^3.0
- filp/whoops: ^2.15
- guzzlehttp/guzzle: ^7.8
- haydenpierce/class-finder: ^0.5.3
- laminas/laminas-diactoros: ^3.3
- monolog/monolog: ^3.6
- nikic/fast-route: ^1.3
- nyholm/psr7: ^1.8
- php-di/php-di: ^7.0
- psr/http-server-middleware: ^1.0
- spiral/roadrunner-cli: ^2.6
- spiral/roadrunner-http: ^3.5
- symfony/console: ^7.1
- vlucas/phpdotenv: ^5.6
This package is not auto-updated.
Last update: 2026-04-03 11:27:18 UTC
README
Hi there, I'm Eugene !
HSE student, Web Developer π·πΊ
BlackHole FrameWork

ADR ΡΡΠ΅ΠΉΠΌΠ²ΠΎΡΠΊ Π΄Π»Ρ REST API.
ΠΠΎΠ΄ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ Π½Π°Ρ ΠΎΠ΄ΠΈΡΡΡ Π² Π΄ΠΈΡΠ΅ΠΊΡΠΎΡΠΈΠΈ /app.
ΠΡΠΈΠΌΠ΅ΡΡ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ Π½Π°Ρ ΠΎΠ΄ΡΡΡΡ Π² Π΄ΠΈΡΠ΅ΠΊΡΠΎΡΠΈΠΈ app
ΠΠΈΡΠ΅ΠΊΡΠΎΡΠΈΡ core ΡΠ²Π»ΡΠ΅ΡΡΡ ΡΠ΄ΡΠΎΠΌ ΠΏΡΠΎΠ΅ΠΊΡΠ°, ΡΠ΅Π΄Π°ΠΊΡΠΈΡΡΠΉΡΠ΅ Ρ Π°ΠΊΠΊΡΡΠ°ΡΠ½ΠΎΡΡΡΡ!
ADR
ΠΠ»Ρ Π±Π°Π·ΠΎΠ²ΠΎΠ³ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ Π½ΡΠΆΠ½ΠΎ
1) Π‘ΠΎΠ·Π΄Π°ΡΡ Action, ΠΈΠΌΠΏΠ»Π΅ΠΌΠ΅Π½ΡΠΈΡΡΠ΅ΠΌΡΠΉ Π² BlackHole\Interfaces\ActionInterface Π² Π΄ΠΈΡΠ΅ΠΊΡΠΎΡΠΈΠΈ app/Actions 2) Π‘ΠΎΠ·Π΄Π°ΡΡ Domain, ΠΈΠΌΠΏΠ»Π΅ΠΌΠ΅Π½ΡΠΈΡΡΠ΅ΠΌΡΠΉ Π² BlackHole\Interfaces\DomainInterface Π² Π΄ΠΈΡΠ΅ΠΊΡΠΎΡΠΈΠΈ app/Domains 3) Π‘ΠΎΠ·Π΄Π°ΡΡ ΡΠΎΡΡ Π² app/routes.php, Ρ Ρ Π΅Π½Π΄Π»Π΅ΡΠΎΠΌ Π² Π²ΠΈΠ΄Π΅ ΡΠΎΠ·Π΄Π°Π½Π½ΠΎΠ³ΠΎ Action
Middleware
ΠΡΠΈ ΠΏΠΎΡΡΠ΅Π±Π½ΠΎΡΡΠΈ, ΠΌΠΎΠΆΠ½ΠΎ ΡΠΎΠ·Π΄Π°ΡΡ Handler Π² Π΄ΠΈΡΠ΅ΠΊΡΠΎΡΠΈΠΈ app/Middleware ΠΈΠΌΠΏΠ»Π΅ΠΌΠ΅Π½ΡΠΈΡΡΠ΅ΠΌΡΠΉ ΠΎΡ BlackHole\Interfaces\HandlerInterface
ΠΠΎΠ³Π³ΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅
ΠΠΎΠ³Π³Π΅Ρ ΡΠΎΠ·Π΄Π°Π΅Ρ Π΄ΠΈΡΠ΅ΠΊΡΠΎΡΠΈΠΈ Π² Π»ΠΎΠ³ΠΈ Π² app/Logs ΠΏΡΠΈ Π½Π°ΡΡΡΠΎΠΉΠΊΠ΅ Π² ΡΠ°ΠΉΠ»Π΅ .env LOGGER_ON="true"
(ΠΠ΅ Π·Π°Π±ΡΠ΄ΡΡΠ΅ Π΄ΠΎΠ±Π°Π²ΠΈΡΡ .env ΡΠ°ΠΉΠ» ΡΠΊΠΎΠΏΠΈΡΠΎΠ²Π°Π² ΡΠΎΠ΄Π΅ΡΠΆΠΈΠΌΠΎΠ΅ ΠΈΠ· dev.env)
CLI ΠΏΠΎΠΌΠΎΡΠ½ΠΈΠΊ
BlackHole ΠΈΠΌΠ΅Π΅Ρ Π²ΡΡΡΠΎΠ΅Π½Π½ΠΎΠ³ΠΎ cli ΠΏΠΎΠΌΠΎΡΠ½ΠΈΠΊΠ° hawking
ΠΡΠΈΠΌΠ΅ΡΠ°Π½ΠΈΠ΅: hawking ΡΠΎΠ·Π΄Π°Π΅Ρ ΡΠ°ΠΉΠ»Ρ ΡΠΎΠΎΡΠ²Π΅ΡΡΠ²Π΅Π½Π½ΠΎ ΠΊΠ°Π½ΠΎΠ½ΠΈΡΠ΅ΡΠΊΠΈΠΌ namespace Π² ΠΊΠ°Π½ΠΎΠ½ΠΈΡΠ΅ΡΠΊΠΈΡ Π΄ΠΈΡΠ΅ΠΊΡΠΎΡΠΈΡΡ ,Π° ΡΠ°ΠΊΠΆΠ΅ ΠΈΠ·ΠΌΠ΅Π½ΡΠ΅Ρ ΠΈΠΌΡ ΡΠ°ΠΉΠ»Π°, Π΅ΡΠ»ΠΈ ΠΎΠ½ΠΎ Π½Π΅ΠΊΠΎΡΡΠ΅ΠΊΡΠ½ΠΎΠ΅
ΠΡΠΈΠΌΠ΅ΡΡ
ΠΈΠΌΡ ActionTest, ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΡΠ΅ΡΡΡ Π² TestAction, ΠΈΠΌΡ Test ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΡΠ΅ΡΡΡ Π² TestAction
Test\TestAction ΡΠΎΠ·Π΄Π°Π΅ΡΡΡ Π² app\Actions\Test\TestAction.php c ΡΠΎΠΎΡΠ²Π΅ΡΡΠ²ΡΡΡΠΈΠΌ namespace
ΠΡΠΈΠΌΠ΅ΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΡΡ ΠΊΠΎΠΌΠ°Π½Π΄ 1) Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ Action
php hawking create:action ExampleAction
php hawking create:action Example\ExampleAction
2) Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ Domain
php hawking create:domain ExampleDomain
php hawking create:domain Example\ExampleAction
3)Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ Middleware handler Π΄Π»Ρ request ΠΈ response
php hawking create:handler:request ResponseHandler
php hawking create:handler:response Example\ExampleHandler
4) Π‘ΡΠ°ΡΡ ΡΠ΅ΡΠ²Π΅ΡΠ°
php hawking serve