mirror of
				https://github.com/Chouchen/shorturl.git
				synced 2018-06-07 06:34:38 +02:00 
			
		
		
		
	
		
			
				
	
	
		
			47 lines
		
	
	
		
			1.4 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
			
		
		
	
	
			47 lines
		
	
	
		
			1.4 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
<?
 | 
						|
include 'XMLSQL.php';
 | 
						|
class ShortURL extends XMLSQL{
 | 
						|
 | 
						|
	const DATABASE         		= "db/database.xml";
 | 
						|
	const STATE_ALREADY_EXIST 	= "This shortcut already exists. ";
 | 
						|
	const STATE_FIELD_MISSING	= "Don't leave any field blank ! ";
 | 
						|
	const STATE_ERROR			= "Error. ";
 | 
						|
	const STATE_CREATED			= "Shortcut created ";
 | 
						|
	public $_debug = false;
 | 
						|
       
 | 
						|
    public function __construct($path = ''){
 | 
						|
		parent::__construct($path.self::DATABASE);
 | 
						|
    }
 | 
						|
 | 
						|
    public function shortThisUrl($longUrl, $shortName){
 | 
						|
		if($this->pkAlreadyExists($shortName, 'url')){
 | 
						|
			return self::STATE_ALREADY_EXIST;
 | 
						|
		}else{
 | 
						|
			return $this->insert(array('url'=>$longUrl,'hit'=>'0'), rawurlencode($shortName))->into('url')->query();
 | 
						|
		}
 | 
						|
	}
 | 
						|
	
 | 
						|
	public function findThisUrl($shortName){
 | 
						|
		if($this->pkAlreadyExists(rawurlencode($shortName), 'url')){
 | 
						|
			$this->_incrementStatFor($shortName);
 | 
						|
			return $this->select(array('url'))->from('url')->where(rawurlencode($shortName))->query();
 | 
						|
		}else{
 | 
						|
			return;
 | 
						|
		}
 | 
						|
	}
 | 
						|
	
 | 
						|
	public function extractEverything(){
 | 
						|
		return $this->select()->from('url')->query();
 | 
						|
	}
 | 
						|
	
 | 
						|
	
 | 
						|
	/**
 | 
						|
	 * Considering the table with $shortname already exist
 | 
						|
	 */
 | 
						|
	private function _incrementStatFor($shortName){
 | 
						|
		$currentHit = $this->select(array('hit'))->from('url')->where(rawurlencode($shortName))->query();
 | 
						|
		$currentHit = $currentHit[0];
 | 
						|
		return $this->update('url')->set(array('hit'=>$currentHit+1))->where(rawurlencode($shortName))->query();
 | 
						|
	}
 | 
						|
	
 | 
						|
} |