{"id":567,"title":"php\u8bbe\u8ba1\u6a21\u5f0f-\u88c5\u9970\u5668\u6a21\u5f0f\u53ca\u5e94\u7528\u573a\u666f\u4e3e\u4f8b","good":0,"bad":0,"hit":1172,"created_at":"2023-01-19 06:21:40","content":"

<?php<\/p>

\/**<\/p>

 * \u88c5\u9970\u5668\u6a21\u5f0f,\u4e0d\u6539\u53d8\u539f\u6765\u7684\u7a0b\u5e8f\uff0c\u5728\u5916\u9762\u518d\u5957\u4e00\u5c42\uff0c\u6709\u70b9\u50cf\u5957\u5a03<\/p>

 * \u5e94\u7528\u4e3e\u4f8b\uff1a\u539f\u6765\u7684\u65b9\u6cd5\u539f\u6837\u8fd4\u56de\u6570\u636e\uff0c\u73b0\u5728\u5c06\u539f\u6765\u7684\u6570\u636e\u88c5\u9970\u6210xml\u6216json\u4f46\u4e0d\u6539\u53d8\u539f\u56e0\u7684\u7a0b\u5e8f<\/p>

 *\/<\/p>

<\/p>

\/\/\u5b9a\u4e49\u63a5\u53e3<\/p>

interface renderInterface<\/p>

{<\/p>

    public function renderData(): string;<\/p>

}<\/p>

<\/p>

\/\/service:\u539f\u6765\u7684\u5b9e\u73b0<\/p>

class service implements renderInterface<\/p>

{<\/p>

    private $data;<\/p>

<\/p>

    public function __construct($data)<\/p>

    {<\/p>

        $this->data = $data;<\/p>

    }<\/p>

<\/p>

    public function renderData(): string<\/p>

    {<\/p>

        return $this->data;<\/p>

    }<\/p>

}<\/p>

<\/p>

\/\/\u540e\u6765\u8981\u5c06\u6570\u636e\u8f6c\u6210json\u6216xml\u683c\u5f0f<\/p>

abstract class newService implements renderInterface<\/p>

{<\/p>

    protected $wrapped;<\/p>

<\/p>

    \/\/\u5c06\u539f\u6765\u7684service\u4f20\u8fdb\u6765\uff0c\u56e0\u4e3a\u5176\u5b9e\u73b0\u4e86renderInterface,\u6240\u4ee5\u8fd9\u91cc\u7684\u7c7b\u578b\u63d0renderInterface<\/p>

    public function __construct(renderInterface $renderer)<\/p>

    {<\/p>

        $this->wrapped = $renderer;<\/p>

    }<\/p>

}<\/p>

<\/p>

class jsonService extends newService<\/p>

{<\/p>

    public function renderData(): string<\/p>

    {<\/p>

        return json_encode(['old' => $this->wrapped->renderData()], JSON_UNESCAPED_UNICODE);<\/p>

    }<\/p>

<\/p>

}<\/p>

<\/p>

\/\/\u8c03\u7528<\/p>

$service = new service('\u539f\u59cb\u6570\u636e');<\/p>

echo $service->renderData() . "<br\/>";<\/p>

$jsonService = new jsonService($service);<\/p>

echo $jsonService->renderData();<\/p>

<\/p>

\u8fd0\u884c\u7ed3\u679c\uff1a<\/p>

\u539f\u59cb\u6570\u636e<\/span>{"old":"\u539f\u59cb\u6570\u636e"}<\/span><\/p>

<\/p>"}