-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathphox
More file actions
46 lines (36 loc) · 1.2 KB
/
phox
File metadata and controls
46 lines (36 loc) · 1.2 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
#!/usr/bin/env php
<?php
declare(strict_types=1);
use Elephox\Builder\Whoops\AddsWhoopsHandler;
use Elephox\Console\ConsoleApplicationBuilder;
use Elephox\DI\Contract\Resolver;
use Elephox\Docs\Routes;
use Elephox\Web\Routing\ClassRouteLoader;
use Elephox\Web\Routing\Contract\Router;
use Elephox\Web\Routing\RegexRouter;
require_once 'vendor/autoload.php';
const APP_ROOT = __DIR__;
class ConsoleBuilder extends ConsoleApplicationBuilder {
use AddsWhoopsHandler;
}
// Build console application
$builder = ConsoleBuilder::create();
$builder->addLogging();
$builder->addWhoops();
// Load app commands
$builder->commands->loadFromNamespace("App\\Commands");
// Add the request router, so we can use it in commands
$builder->services->addSingleton(Router::class, RegexRouter::class, function (Resolver $resolver): RegexRouter {
$router = new RegexRouter();
$router->addLoader(new ClassRouteLoader(Routes::class, $resolver));
return $router;
});
// Load commands
$builder->commands->loadFromNamespace("Elephox\\Web\\Commands");
$builder->commands->loadFromNamespace("Elephox\\Plane\\Commands");
$app = $builder->build();
try {
$app->run();
} catch (Throwable $e) {
$app->exceptionHandler()->handleException($e);
}