Folder.php 1.4 KB
<?php

namespace Lib\Imap\Parse\Folder;


/**
 * 文件夹
 * @author:dc
 * @time 2024/9/20 9:33
 * Class Folder
 * @package Lib\Imap\Parse
 */
class Folder{

    /**
     * 文件夹名称 utf-7编码 全路径
     * @var string
     */
    public string $folder;

    /**
     * 是否可以选择
     * @var bool
     */
    public bool $isSelect;


    /**
     * 上级解析结构
     * @var Folders
     */
    protected Folders $parent;

    /**
     * 标签
     * 有些邮箱把发件箱 send 改成了 send message 这里就有send标签,代表这个文件夹是发件箱
     * 草稿,垃圾箱。回收站,等默认几个文件夹都有可能被更改
     * @var array
     */
    public array $flags;

    public function __construct(string $folder,array $flags,bool $isSelect,Folders $parent)
    {
        $this->folder = $folder;
        $this->flags = $flags;
        $this->isSelect = $isSelect;
        $this->parent = $parent;
    }

    /**
     * 把文件夹编码转换成utf8的
     * @author:dc
     * @time 2024/9/20 10:00
     */
    public function getParseFolder(){
        return mb_convert_encoding($this->folder, 'UTF-8', 'UTF7-IMAP');
    }

    /**
     * 获取子目录
     * @return static[]
     * @author:dc
     * @time 2024/9/20 11:55
     */
    public function getChild():array {
        return $this->parent->findChild($this);
    }



}