Your IP : 3.144.1.100


Current Path : /home/ncdcgo/public_html/wp-content/plugins backup/erp/includes/
Upload File :
Current File : /home/ncdcgo/public_html/wp-content/plugins backup/erp/includes/Item.php

<?php

namespace WeDevs\ERP;

/**
 * Item abstract class
 *
 * Utilizes this class to get and set details about an *item*
 */
abstract class Item {

    /**
     * Initialize a item
     *
     * @param int|object  the item numeric id or a wpdb row
     */
    public function __construct( $item = null ) {
        if ( is_object( $item ) ) {
            $this->populate( $item );
        } elseif ( is_int( $item ) ) {
            $fetched = $this->get_by_id( $item );
            $this->populate( $fetched );
        }
    }

    /**
     * Magic method to get item data values
     *
     * @param  string
     *
     * @return string
     */
    public function __get( $key ) {
        if ( isset( $this->data->$key ) ) {
            return is_array( $this->data->$key ) ? stripslashes_deep( $this->data->$key ) : stripslashes( $this->data->$key );
        }
    }

    /**
     * [populate description]
     *
     * @param  object  the item wpdb object
     *
     * @return void
     */
    protected function populate( $item ) {
        $this->id   = (int) $item->id;
        $this->name = stripslashes( $item->title );
        $this->data = $item;
    }

    /**
     * Get a item by ID
     *
     * @param  int  item id
     *
     * @return object wpdb object
     */
    abstract protected function get_by_id( $item_id );
}