PHP Classes
elePHPant
Icontem

File: storage/storageObject.file.php

Recommend this page to a friend!
Stumble It! Stumble It! Bookmark in del.icio.us Bookmark in del.icio.us
  Classes of Aziz S. Hussain  >  Netflix API Wrapper  >  storage/storageObject.file.php  >  Download  
File: storage/storageObject.file.php
Role: Class source
Content type: text/plain
Description: File Storage Object
Class: Netflix API Wrapper
Retrieve NetFlix Web services using its API
Author: By
Last change:
Date: 4 years ago
Size: 3,526 bytes
 

Contents

Class file image Download
<?php
/**
 * This is a sample implementation for storage of keys
 * In File storage
 *
 * NOTE: If you are using any other file storage types than regular files, you can resuse this file,
 * just make sure that all methods are implemented using your fav file manager object
 *
 * License: LGPL
 *
 * @copyright 2011 Aziz Hussain
 * @version 1.0
 * @link http://azizsaleh.com
 * @email azizsaleh@gmail.com
 */
class storageObject
{
   
/* Variable holders */
   
private $token_file;
    private
$newLine = PHP_EOL;
   
   
/*
    Construct DB
   
    @param array configs
   
    @return null
    */
   
public function __construct($configs)
    {
       
$this->token_file = BASE_DIR . $configs->token_dir . DIRECTORY_SEPARATOR;
       
        if (!
is_readable ($this->token_file)) {
            die (
'Unable to read from folder: ' . $this->file_name);
        }
       
        if (!
is_writable ($this->token_file)) {
            die (
'Unable to write to folder: ' . $this->file_name);
        }
    }
   
   
/*
    Function to add user token record
   
    @param string user_token
    @param string token_secret
    @param int step_id
    @param string netflix_user_id
   
    @return boolean
    */
   
public function addUserToken ($user_token = '', $token_secret = '', $step_id = 1, $netflix_user_id = '')
    {
       
settype($step_id, "integer");
       
       
// Write info to the file
       
$this->_my_write($this->token_file . '.' . session_id(), $user_token . ',' . $token_secret . ',' . $step_id . ',' . $netflix_user_id, 'w');
    }
   
   
/*
    Function to retrieve user token
   
    @return array
    */
   
public function getUserToken()
    {
        if (!
file_exists($this->token_file . '.' . session_id())) {
            return
false;
        }
       
$file = fopen ($this->token_file . '.' . session_id(), 'r');
       
        if (!
$file){
            die (
'Unable to read from file: ' . session_id());
        }
       
       
$user_info = explode(',', fgets($file));
           
       
$user_token = trim($user_info[0]);
       
$token_secret = trim($user_info[1]);
       
$step_id = trim($user_info[2]);
       
$netflix_user_id = trim($user_info[3]);
           
        return array(
$user_token, $token_secret, $step_id, session_id(), $netflix_user_id);
    }
   
   
/*
    This function will check if user exists in file
    if so, remove so we insert new token
   
    @return true
    */
   
public function removeUserToken()
    {
        if (!
is_file($this->token_file . '.' . session_id())) {
            return
true;
        }
       
        return
unlink($this->token_file . '.' . session_id());
    }
   
   
/*
    Get step id for a user
   
    @return int
    */
   
public function getStepID()
    {
       
$info = $this->getUserToken();

        return
$info[2];
    }
   
   
/*
    Set step id for a user
   
    @param int step_id
   
    @return boolean
    */
   
public function setStepID($step_id)
    {
       
settype($step_id, "integer");
       
       
$info = $this->getUserToken();
       
        return
$this->addUserToken($info[0], $info[1], $step_id, $info[3]);
    }
   
   
/*
    This function acts as a wrapper to fopen
   
    @param string file_name
    @param string file_info
    @param string access_type
   
    @return boolean
    */
   
private function _my_write($file_name, $file_info, $access_type)
    {
       
$f = fopen($file_name, $access_type);
        if (!
$f) {
            die(
"Unable to access ($access_type) to $file_name");
        }
       
fwrite($f, $file_info);
       
fclose($f);
       
        return
true;
    }
   
   
/*
    This function escapes inputs before inserting
   
    @param string variable
   
    @return string
    */
   
private function escape_string($variable)
    {
        return
preg_replace('/[^0-9a-zA-Z\.\-\_\+]/','',$variable);
    }
}