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();
|
|
}
|
|
|
|
} |