public function register() { $def = new EntityDefinition(Session::class); $def->id(Sha256StrongHash::class)->mapsTo('token'); $def->required('data', Text::class); $def->timestamps(); $this->remodel->register($def); $this->ioc->singleton(SessionGateway::class, SessionGateway::class); $this->ioc->singleton(SessionRepository::class, SessionRepository::class); $this->ioc->singleton(SessionManager::class, function () { $manager = new SessionManager(); $manager->setHandler($this->ioc->make(DatabaseSessionStorage::class)); return $manager; }); }
use Illuminate\Database\Query\Processors\MySqlProcessor; // Grab filesystem directories $persist = new LocalDriver(__DIR__ . '/..'); $cache = $persist->getDirectory('/cache'); $registry = new Registry($ioc, $cache); $connection = new RemodelConnection(new PDO('mysql:host=localhost;dbname=test', 'root', ''), new MySqlGrammar(), new MySqlProcessor()); use BapCat\Values\Email; use BapCat\CoolThing\User; use BapCat\CoolThing\UserId; use BapCat\CoolThing\UserGateway; use BapCat\CoolThing\UserRepository; use BapCat\CoolThing\UserNotFoundException; $def = new EntityDefinition(User::class); $def->required('email', Email::class); $def->optional('name', Text::class); $def->timestamps(); $registry->register($def); $user_repo = new UserRepository(Phi::instance(), new UserGateway($connection)); Phi::instance()->bind(UserRepository::class, $user_repo); $router = new BapCat\Router\Router($ioc); $router->get('', '/', function () { return 'Test'; }); require __DIR__ . '/TestValidatedRequest.php'; $router->get('', '/landing/:site', function (TestValidatedRequest $test, Text $site) { if (!$test->validated) { echo "Validation failed!<br>\n"; foreach ($test->validation_errors as $err) { echo "{$err}<br>\n"; } return;