Issues (144)

examples/custom_attachment_mask.php (4 issues)

1
<?php
2
/*
3
* File: custom_message_mask.php
4
* Category: Example
5
* Author: M.Goldenbaum
6
* Created: 14.03.19 18:47
7
* Updated: -
8
*
9
* Description:
10
*  -
11
*/
12
13
class CustomAttachmentMask extends \Webklex\PHPIMAP\Support\Masks\AttachmentMask {
14
15
    /**
16
     * New custom method which can be called through a mask
17
     * @return string
18
     */
19
    public function token(){
20
        return implode('-', [$this->id, $this->getMessage()->getUid(), $this->name]);
0 ignored issues
show
Bug Best Practice introduced by
The property name does not exist on CustomAttachmentMask. Since you implemented __get, consider adding a @property annotation.
Loading history...
Bug Best Practice introduced by
The property id does not exist on CustomAttachmentMask. Since you implemented __get, consider adding a @property annotation.
Loading history...
The method getMessage() does not exist on CustomAttachmentMask. Since you implemented __call, consider adding a @method annotation. ( Ignorable by Annotation )

If this is a false-positive, you can also ignore this issue in your code via the ignore-call  annotation

20
        return implode('-', [$this->id, $this->/** @scrutinizer ignore-call */ getMessage()->getUid(), $this->name]);
Loading history...
21
    }
22
23
    /**
24
     * Custom attachment saving method
25
     * @return bool
26
     */
27
    public function custom_save() {
28
        $path = "foo".DIRECTORY_SEPARATOR."bar".DIRECTORY_SEPARATOR;
29
        $filename = $this->token();
30
31
        return file_put_contents($path.$filename, $this->getContent()) !== false;
0 ignored issues
show
The method getContent() does not exist on CustomAttachmentMask. Since you implemented __call, consider adding a @method annotation. ( Ignorable by Annotation )

If this is a false-positive, you can also ignore this issue in your code via the ignore-call  annotation

31
        return file_put_contents($path.$filename, $this->/** @scrutinizer ignore-call */ getContent()) !== false;
Loading history...
32
    }
33
34
}
35
36
/** @var \Webklex\PHPIMAP\Client $client */
37
$cm = new \Webklex\PHPIMAP\ClientManager('path/to/config/imap.php');
38
$client = $cm->account('default');
39
$client->connect();
40
$client->setDefaultAttachmentMask(CustomAttachmentMask::class);
41
42
/** @var \Webklex\PHPIMAP\Folder $folder */
43
$folder = $client->getFolder('INBOX');
44
45
/** @var \Webklex\PHPIMAP\Message $message */
46
$message = $folder->query()->limit(1)->get()->first();
47
48
/** @var \Webklex\PHPIMAP\Attachment $attachment */
49
$attachment = $message->getAttachments()->first();
50
51
/** @var CustomAttachmentMask $masked_attachment */
52
$masked_attachment = $attachment->mask();
53
54
echo 'Token for uid ['.$masked_attachment->getMessage()->getUid().']: '.$masked_attachment->token();
55
56
$masked_attachment->custom_save();