<?php 





/**


 * A representation of a page of resources.


 *


 * @category Services


 * @package  Services_Twilio


 * @author   Neuman Vong <neuman@twilio.com>


 * @license  http://creativecommons.org/licenses/MIT/ MIT


 * @link     http://pear.php.net/package/Services_Twilio


 */ 


class Services_Twilio_Page


    implements IteratorAggregate


{





    /**


     * The item list.


     *


     * @var array $items


     */


    protected $items;





    /**


     * Constructs a page.


     *


     * @param object $page The page object


     * @param string $name The key of the item list


     */


    public function __construct($page, $name, $next_page_uri = null)


    {


        $this->page = $page;


        $this->items = $page->{$name};


        $this->next_page_uri = $next_page_uri;


    }





    /**


     * The item list of the page.


     *


     * @return array A list of instance resources


     */


    public function getItems()


    {


        return $this->items;


    }





    /**


     * Magic method to allow retrieving the properties of the wrapped page.


     *


     * @param string $prop The property name


     *


     * @return mixed Could be anything


     */


    public function __get($prop)


    {


        return $this->page->$prop;


    }





    /**


     * Implementation of IteratorAggregate::getIterator().


     *


     * @return Traversable


     */


    public function getIterator()


    {


        return $this->getItems();


    }


}





