1: <?php
2: /**
3: * @filesource Kotchasan/Files.php
4: *
5: * @copyright 2016 Goragod.com
6: * @license http://www.kotchasan.com/license/
7: *
8: * @see http://www.kotchasan.com/
9: */
10:
11: namespace Kotchasan;
12:
13: use Kotchasan\Http\UploadedFile;
14:
15: /**
16: * รายการ File รูปแบบ Array.
17: *
18: * @author Goragod Wiriya <admin@goragod.com>
19: *
20: * @since 1.0
21: */
22: class Files implements \Iterator
23: {
24: /**
25: * แอเรย์เก็บรายการ UploadedFile.
26: *
27: * @var array
28: */
29: private $datas = array();
30:
31: /**
32: * เพื่ม File ลงในคอลเล็คชั่น.
33: *
34: * @param string $name ชื่อของ Input
35: * @param string $path ไฟล์อัปโหลด รวมพาธ
36: * @param string $originalName ชื่อไฟล์ที่อัปโหลด
37: * @param string $mimeType MIME Type
38: * @param int $size ขนาดไฟล์อัปโหลด
39: * @param int $error ข้อผิดพลาดการอัปโหลด UPLOAD_ERR_XXX
40: */
41: public function add($name, $path, $originalName, $mimeType = null, $size = null, $error = null)
42: {
43: $this->datas[$name] = new UploadedFile($path, $originalName, $mimeType, $size, $error);
44: }
45:
46: /**
47: * คืนค่า UploadedFile รายการปัจจุบัน.
48: *
49: * @return \Kotchasan\Http\UploadedFile
50: */
51: public function current()
52: {
53: $var = current($this->datas);
54:
55: return $var;
56: }
57:
58: /**
59: * อ่าน File ที่ต้องการ.
60: *
61: * @param string|int $key รายการที่ต้องการ
62: *
63: * @return \Kotchasan\Http\UploadedFile
64: */
65: public function get($key)
66: {
67: return $this->datas[$key];
68: }
69:
70: /**
71: * คืนค่าคีย์หรือลำดับของ UploadedFile ในลิสต์รายการ.
72: *
73: * @return string
74: */
75: public function key()
76: {
77: $var = key($this->datas);
78:
79: return $var;
80: }
81:
82: /**
83: * คืนค่า UploadedFile รายการถัดไป.
84: *
85: * @return \Kotchasan\Http\UploadedFile
86: */
87: public function next()
88: {
89: $var = next($this->datas);
90:
91: return $var;
92: }
93:
94: /**
95: * inherited from Iterator.
96: */
97: public function rewind()
98: {
99: reset($this->datas);
100: }
101:
102: /**
103: * @return bool
104: */
105: public function valid()
106: {
107: $key = key($this->datas);
108:
109: return $key !== null && $key !== false;
110: }
111: }
112: