| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113 | 
							- <?php
 
- namespace OSS\Model;
 
- use OSS\Core\OssException;
 
- /**
 
-  * Class CorsConfig
 
-  * @package OSS\Model
 
-  *
 
-  * @link http://help.aliyun.com/document_detail/oss/api-reference/cors/PutBucketcors.html
 
-  */
 
- class CorsConfig implements XmlConfig
 
- {
 
-     /**
 
-      * CorsConfig constructor.
 
-      */
 
-     public function __construct()
 
-     {
 
-         $this->rules = array();
 
-     }
 
-     /**
 
-      * Get CorsRule list
 
-      *
 
-      * @return CorsRule[]
 
-      */
 
-     public function getRules()
 
-     {
 
-         return $this->rules;
 
-     }
 
-     /**
 
-      * Add a new CorsRule
 
-      *
 
-      * @param CorsRule $rule
 
-      * @throws OssException
 
-      */
 
-     public function addRule($rule)
 
-     {
 
-         if (count($this->rules) >= self::OSS_MAX_RULES) {
 
-             throw new OssException("num of rules in the config exceeds self::OSS_MAX_RULES: " . strval(self::OSS_MAX_RULES));
 
-         }
 
-         $this->rules[] = $rule;
 
-     }
 
-     /**
 
-      * Parse CorsConfig from the xml.
 
-      *
 
-      * @param string $strXml
 
-      * @throws OssException
 
-      * @return null
 
-      */
 
-     public function parseFromXml($strXml)
 
-     {
 
-         $xml = simplexml_load_string($strXml);
 
-         if (!isset($xml->CORSRule)) return;
 
-         foreach ($xml->CORSRule as $rule) {
 
-             $corsRule = new CorsRule();
 
-             foreach ($rule as $key => $value) {
 
-                 if ($key === self::OSS_CORS_ALLOWED_HEADER) {
 
-                     $corsRule->addAllowedHeader(strval($value));
 
-                 } elseif ($key === self::OSS_CORS_ALLOWED_METHOD) {
 
-                     $corsRule->addAllowedMethod(strval($value));
 
-                 } elseif ($key === self::OSS_CORS_ALLOWED_ORIGIN) {
 
-                     $corsRule->addAllowedOrigin(strval($value));
 
-                 } elseif ($key === self::OSS_CORS_EXPOSE_HEADER) {
 
-                     $corsRule->addExposeHeader(strval($value));
 
-                 } elseif ($key === self::OSS_CORS_MAX_AGE_SECONDS) {
 
-                     $corsRule->setMaxAgeSeconds(strval($value));
 
-                 }
 
-             }
 
-             $this->addRule($corsRule);
 
-         }
 
-         return;
 
-     }
 
-     /**
 
-      * Serialize the object into xml string.
 
-      *
 
-      * @return string
 
-      */
 
-     public function serializeToXml()
 
-     {
 
-         $xml = new \SimpleXMLElement('<?xml version="1.0" encoding="utf-8"?><CORSConfiguration></CORSConfiguration>');
 
-         foreach ($this->rules as $rule) {
 
-             $xmlRule = $xml->addChild('CORSRule');
 
-             $rule->appendToXml($xmlRule);
 
-         }
 
-         return $xml->asXML();
 
-     }
 
-     public function __toString()
 
-     {
 
-         return $this->serializeToXml();
 
-     }
 
-     const OSS_CORS_ALLOWED_ORIGIN = 'AllowedOrigin';
 
-     const OSS_CORS_ALLOWED_METHOD = 'AllowedMethod';
 
-     const OSS_CORS_ALLOWED_HEADER = 'AllowedHeader';
 
-     const OSS_CORS_EXPOSE_HEADER = 'ExposeHeader';
 
-     const OSS_CORS_MAX_AGE_SECONDS = 'MaxAgeSeconds';
 
-     const OSS_MAX_RULES = 10;
 
-     /**
 
-      * CorsRule list
 
-      *
 
-      * @var CorsRule[]
 
-      */
 
-     private $rules = array();
 
- }
 
 
  |