<?php
require_once('vendor/autoload.php');
/* Start to develop here. Best regards https://php-download.com/ */
tourze / wechat-mini-program-user-contracts example snippets
use Tourze\WechatMiniProgramUserContracts\UserInterface;
use Tourze\WechatMiniProgramAppIDContracts\MiniProgramInterface;
interface UserInterface
{
/**
* Get the associated mini program
*/
public function getMiniProgram(): MiniProgramInterface;
/**
* Get the user's Open ID
*/
public function getOpenId(): string;
/**
* Get the user's Union ID (optional)
*/
public function getUnionId(): ?string;
/**
* Get the user's avatar URL (optional)
*/
public function getAvatarUrl(): ?string;
}
use Tourze\WechatMiniProgramUserContracts\UserLoaderInterface;
use Tourze\WechatMiniProgramAppIDContracts\MiniProgramInterface;
interface UserLoaderInterface
{
/**
* Load a user by their Open ID
*/
public function loadUserByOpenId(string $openId): ?UserInterface;
/**
* Load a user by their Union ID
*/
public function loadUserByUnionId(string $unionId): ?UserInterface;
/**
* Create a new user
*/
public function createUser(MiniProgramInterface $miniProgram, string $openId, ?string $unionId = null): UserInterface;
}
use Tourze\WechatMiniProgramUserContracts\UserInterface;
use Tourze\WechatMiniProgramUserContracts\UserLoaderInterface;
use Tourze\WechatMiniProgramAppIDContracts\MiniProgramInterface;
class MyUser implements UserInterface
{
public function __construct(
private MiniProgramInterface $miniProgram,
private string $openId,
private ?string $unionId = null,
private ?string $avatarUrl = null
) {}
public function getMiniProgram(): MiniProgramInterface
{
return $this->miniProgram;
}
public function getOpenId(): string
{
return $this->openId;
}
public function getUnionId(): ?string
{
return $this->unionId;
}
public function getAvatarUrl(): ?string
{
return $this->avatarUrl;
}
}
class MyUserService implements UserLoaderInterface
{
public function __construct(
private UserRepository $userRepository
) {}
public function loadUserByOpenId(string $openId): ?UserInterface
{
return $this->userRepository->findByOpenId($openId);
}
public function loadUserByUnionId(string $unionId): ?UserInterface
{
return $this->userRepository->findByUnionId($unionId);
}
public function createUser(MiniProgramInterface $miniProgram, string $openId, ?string $unionId = null): UserInterface
{
$user = new MyUser($miniProgram, $openId, $unionId);
$this->userRepository->save($user);
return $user;
}
}
Loading please wait ...
Before you can download the PHP files, the dependencies should be resolved. This can take some minutes. Please be patient.