<?php
class UserEntity{
protected $record = null;
public function __construct(array $record){
$this->record = $record;
}
public function getEMail(){
return $this->record['email'];
}
}
class UserRepository{
protected $pdo = null;
public function __construct(?PDO $pdo){
$this->pdo = $pdo;
}
public function byId(int $id){
//faking. should probably be moved to a ::make method or something.
return new UserEntity([
'name' => 'John',
'email' => 'blah@blah.com',
]);
}
public function add(UserEntity $user){
//...
}
}
$userRepository = new UserRepository(null);
$user = $userRepository->byId(34);
var_dump($user->getEMail());
Warning: PHP Startup: Unable to load dynamic library 'sodium.so' (tried: /usr/lib/php/8.3.5/modules/sodium.so (libsodium.so.23: cannot open shared object file: No such file or directory), /usr/lib/php/8.3.5/modules/sodium.so.so (/usr/lib/php/8.3.5/modules/sodium.so.so: cannot open shared object file: No such file or directory)) in Unknown on line 0
string(13) "blah@blah.com"
Output for 5.6.38
Parse error: syntax error, unexpected '?', expecting variable (T_VARIABLE) in /in/RPVQ3 on line 18
Process exited with code 255.