| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107 | 
							- <?php
 
- namespace OSS\Model;
 
- use OSS\Core\OssException;
 
- /**
 
-  * Class BucketLifecycleConfig
 
-  * @package OSS\Model
 
-  * @link http://help.aliyun.com/document_detail/oss/api-reference/bucket/PutBucketLifecycle.html
 
-  */
 
- class LifecycleConfig implements XmlConfig
 
- {
 
-     /**
 
-      * Parse the xml into this object.
 
-      *
 
-      * @param string $strXml
 
-      * @throws OssException
 
-      * @return null
 
-      */
 
-     public function parseFromXml($strXml)
 
-     {
 
-         $this->rules = array();
 
-         $xml = simplexml_load_string($strXml);
 
-         if (!isset($xml->Rule)) return;
 
-         $this->rules = array();
 
-         foreach ($xml->Rule as $rule) {
 
-             $id = strval($rule->ID);
 
-             $prefix = strval($rule->Prefix);
 
-             $status = strval($rule->Status);
 
-             $actions = array();
 
-             foreach ($rule as $key => $value) {
 
-                 if ($key === 'ID' || $key === 'Prefix' || $key === 'Status') continue;
 
-                 $action = $key;
 
-                 $timeSpec = null;
 
-                 $timeValue = null;
 
-                 foreach ($value as $timeSpecKey => $timeValueValue) {
 
-                     $timeSpec = $timeSpecKey;
 
-                     $timeValue = strval($timeValueValue);
 
-                 }
 
-                 $actions[] = new LifecycleAction($action, $timeSpec, $timeValue);
 
-             }
 
-             $this->rules[] = new LifecycleRule($id, $prefix, $status, $actions);
 
-         }
 
-         return;
 
-     }
 
-     /**
 
-      * Serialize the object to xml
 
-      *
 
-      * @return string
 
-      */
 
-     public function serializeToXml()
 
-     {
 
-         $xml = new \SimpleXMLElement('<?xml version="1.0" encoding="utf-8"?><LifecycleConfiguration></LifecycleConfiguration>');
 
-         foreach ($this->rules as $rule) {
 
-             $xmlRule = $xml->addChild('Rule');
 
-             $rule->appendToXml($xmlRule);
 
-         }
 
-         return $xml->asXML();
 
-     }
 
-     /**
 
-      *
 
-      * Add a LifecycleRule
 
-      *
 
-      * @param LifecycleRule $lifecycleRule
 
-      * @throws OssException
 
-      */
 
-     public function addRule($lifecycleRule)
 
-     {
 
-         if (!isset($lifecycleRule)) {
 
-             throw new OssException("lifecycleRule is null");
 
-         }
 
-         $this->rules[] = $lifecycleRule;
 
-     }
 
-     /**
 
-      *  Serialize the object into xml string.
 
-      *
 
-      * @return string
 
-      */
 
-     public function __toString()
 
-     {
 
-         return $this->serializeToXml();
 
-     }
 
-     /**
 
-      * Get all lifecycle rules.
 
-      *
 
-      * @return LifecycleRule[]
 
-      */
 
-     public function getRules()
 
-     {
 
-         return $this->rules;
 
-     }
 
-     /**
 
-      * @var LifecycleRule[]
 
-      */
 
-     private $rules;
 
- }
 
 
  |