Support creating repository by file.
interface UserRepositoryInterface
{
function find(UserId $id): ?User;
function save(User $user): void;
}
use nrslib\RepositorySupports\FileRepository;
class FileUserRepository implements UserRepositoryInterface
{
use FileRepository;
function find(UserId $id): ?User
{
$user = $this->load($id->getValue());
if (is_null($user)) {
return null;
} else {
return $user;
}
}
public function save(User $user): void
{
$id = $user->getId()->getValue();
$this->store($id, $user);
}
}
use nrslib\RepositorySupports\FileRepositoryConfig;
class AppServiceProvider extends ServiceProvider
{
...
/**
* Bootstrap any application services.
*
* @return void
*/
public function boot()
{
// set directory here
$debugPersistenceDirectoryFullPath = storage_path("debug\\persistence");
FileRepositoryConfig::$basicDirectoryFullPath = $debugPersistenceDirectoryFullPath;
}
}