PageRenderTime 50ms CodeModel.GetById 25ms RepoModel.GetById 1ms app.codeStats 0ms

/modules/email/vendor/swift/classes/Swift/Mime/SimpleHeaderFactory.php

https://bitbucket.org/seyar/ari100krat.local
PHP | 197 lines | 96 code | 17 blank | 84 comment | 8 complexity | be2c81ae4bec960ef00e5a88bce24bf2 MD5 | raw file
Possible License(s): BSD-3-Clause, LGPL-2.1
  1. <?php
  2. /*
  3. Factory for creating MIME Headers in Swift Mailer.
  4. This program is free software: you can redistribute it and/or modify
  5. it under the terms of the GNU General Public License as published by
  6. the Free Software Foundation, either version 3 of the License, or
  7. (at your option) any later version.
  8. This program is distributed in the hope that it will be useful,
  9. but WITHOUT ANY WARRANTY; without even the implied warranty of
  10. MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
  11. GNU General Public License for more details.
  12. You should have received a copy of the GNU General Public License
  13. along with this program. If not, see <http://www.gnu.org/licenses/>.
  14. */
  15. //@require 'Swift/Mime/HeaderFactory.php';
  16. //@require 'Swift/Mime/HeaderEncoder.php';
  17. //@require 'Swift/Encoder.php';
  18. //@require 'Swift/Mime/Headers/MailboxHeader.php';
  19. //@require 'Swift/Mime/Headers/DateHeader.php';
  20. //@require 'Swift/Mime/Headers/UnstructuredHeader.php';
  21. //@require 'Swift/Mime/Headers/ParameterizedHeader.php';
  22. //@require 'Swift/Mime/Headers/IdentificationHeader.php';
  23. //@require 'Swift/Mime/Headers/PathHeader.php';
  24. /**
  25. * Creates MIME headers.
  26. * @package Swift
  27. * @subpackage Mime
  28. * @author Chris Corbyn
  29. */
  30. class Swift_Mime_SimpleHeaderFactory implements Swift_Mime_HeaderFactory
  31. {
  32. /** The HeaderEncoder used by these headers */
  33. private $_encoder;
  34. /** The Encoder used by parameters */
  35. private $_paramEncoder;
  36. /** The charset of created Headers */
  37. private $_charset;
  38. /**
  39. * Creates a new SimpleHeaderFactory using $encoder and $paramEncoder.
  40. * @param Swift_Mime_HeaderEncoder $encoder
  41. * @param Swift_Encoder $paramEncoder
  42. * @param string $charset
  43. */
  44. public function __construct(Swift_Mime_HeaderEncoder $encoder,
  45. Swift_Encoder $paramEncoder, $charset = null)
  46. {
  47. $this->_encoder = $encoder;
  48. $this->_paramEncoder = $paramEncoder;
  49. $this->_charset = $charset;
  50. }
  51. /**
  52. * Create a new Mailbox Header with a list of $addresses.
  53. * @param string $name
  54. * @param array|string $addresses
  55. * @return Swift_Mime_Header
  56. */
  57. public function createMailboxHeader($name, $addresses = null)
  58. {
  59. $header = new Swift_Mime_Headers_MailboxHeader($name, $this->_encoder);
  60. if (isset($addresses))
  61. {
  62. $header->setFieldBodyModel($addresses);
  63. }
  64. $this->_setHeaderCharset($header);
  65. return $header;
  66. }
  67. /**
  68. * Create a new Date header using $timestamp (UNIX time).
  69. * @param string $name
  70. * @param int $timestamp
  71. * @return Swift_Mime_Header
  72. */
  73. public function createDateHeader($name, $timestamp = null)
  74. {
  75. $header = new Swift_Mime_Headers_DateHeader($name);
  76. if (isset($timestamp))
  77. {
  78. $header->setFieldBodyModel($timestamp);
  79. }
  80. $this->_setHeaderCharset($header);
  81. return $header;
  82. }
  83. /**
  84. * Create a new basic text header with $name and $value.
  85. * @param string $name
  86. * @param string $value
  87. * @return Swift_Mime_Header
  88. */
  89. public function createTextHeader($name, $value = null)
  90. {
  91. $header = new Swift_Mime_Headers_UnstructuredHeader($name, $this->_encoder);
  92. if (isset($value))
  93. {
  94. $header->setFieldBodyModel($value);
  95. }
  96. $this->_setHeaderCharset($header);
  97. return $header;
  98. }
  99. /**
  100. * Create a new ParameterizedHeader with $name, $value and $params.
  101. * @param string $name
  102. * @param string $value
  103. * @param array $params
  104. * @return Swift_Mime_ParameterizedHeader
  105. */
  106. public function createParameterizedHeader($name, $value = null,
  107. $params = array())
  108. {
  109. $header = new Swift_Mime_Headers_ParameterizedHeader($name,
  110. $this->_encoder, (strtolower($name) == 'content-disposition')
  111. ? $this->_paramEncoder
  112. : null
  113. );
  114. if (isset($value))
  115. {
  116. $header->setFieldBodyModel($value);
  117. }
  118. foreach ($params as $k => $v)
  119. {
  120. $header->setParameter($k, $v);
  121. }
  122. $this->_setHeaderCharset($header);
  123. return $header;
  124. }
  125. /**
  126. * Create a new ID header for Message-ID or Content-ID.
  127. * @param string $name
  128. * @param string|array $ids
  129. * @return Swift_Mime_Header
  130. */
  131. public function createIdHeader($name, $ids = null)
  132. {
  133. $header = new Swift_Mime_Headers_IdentificationHeader($name);
  134. if (isset($ids))
  135. {
  136. $header->setFieldBodyModel($ids);
  137. }
  138. $this->_setHeaderCharset($header);
  139. return $header;
  140. }
  141. /**
  142. * Create a new Path header with an address (path) in it.
  143. * @param string $name
  144. * @param string $path
  145. * @return Swift_Mime_Header
  146. */
  147. public function createPathHeader($name, $path = null)
  148. {
  149. $header = new Swift_Mime_Headers_PathHeader($name);
  150. if (isset($path))
  151. {
  152. $header->setFieldBodyModel($path);
  153. }
  154. $this->_setHeaderCharset($header);
  155. return $header;
  156. }
  157. /**
  158. * Notify this observer that the entity's charset has changed.
  159. * @param string $charset
  160. */
  161. public function charsetChanged($charset)
  162. {
  163. $this->_charset = $charset;
  164. $this->_encoder->charsetChanged($charset);
  165. $this->_paramEncoder->charsetChanged($charset);
  166. }
  167. // -- Private methods
  168. /** Apply the charset to the Header */
  169. private function _setHeaderCharset(Swift_Mime_Header $header)
  170. {
  171. if (isset($this->_charset))
  172. {
  173. $header->setCharset($this->_charset);
  174. }
  175. }
  176. }