mirror of
https://github.com/shlinkio/shlink.git
synced 2025-03-27 20:11:34 +03:00
Created entities
This commit is contained in:
parent
b20654ee2d
commit
b436edb991
6 changed files with 323 additions and 12 deletions
|
@ -18,7 +18,7 @@
|
||||||
"zendframework/zend-expressive-aurarouter": "^1.0",
|
"zendframework/zend-expressive-aurarouter": "^1.0",
|
||||||
"zendframework/zend-servicemanager": "^3.0",
|
"zendframework/zend-servicemanager": "^3.0",
|
||||||
"zendframework/zend-expressive-twigrenderer": "^1.0",
|
"zendframework/zend-expressive-twigrenderer": "^1.0",
|
||||||
"acelaya/expressive-slim-router": "^2.0"
|
"doctrine/orm": "^2.5"
|
||||||
},
|
},
|
||||||
"require-dev": {
|
"require-dev": {
|
||||||
"phpunit/phpunit": "^4.8",
|
"phpunit/phpunit": "^4.8",
|
||||||
|
|
15
config/autoload/cli-routes.global.php
Normal file
15
config/autoload/cli-routes.global.php
Normal file
|
@ -0,0 +1,15 @@
|
||||||
|
<?php
|
||||||
|
return [
|
||||||
|
|
||||||
|
'routes' => [
|
||||||
|
[
|
||||||
|
'name' => 'cli',
|
||||||
|
'path' => '/command-name',
|
||||||
|
'middleware' => function ($req, $resp) {
|
||||||
|
|
||||||
|
},
|
||||||
|
'allowed_methods' => ['CLI'],
|
||||||
|
],
|
||||||
|
],
|
||||||
|
|
||||||
|
];
|
|
@ -7,20 +7,10 @@ return [
|
||||||
'name' => 'home',
|
'name' => 'home',
|
||||||
'path' => '/',
|
'path' => '/',
|
||||||
'middleware' => function ($req, $resp) {
|
'middleware' => function ($req, $resp) {
|
||||||
$resp->getBody()->write('Hello world');
|
|
||||||
return $resp;
|
|
||||||
},
|
},
|
||||||
'allowed_methods' => ['GET'],
|
'allowed_methods' => ['GET'],
|
||||||
],
|
],
|
||||||
[
|
|
||||||
'name' => 'cli',
|
|
||||||
'path' => '/command-name',
|
|
||||||
'middleware' => function ($req, $resp) {
|
|
||||||
$resp->getBody()->write('Hello world from cli');
|
|
||||||
return $resp;
|
|
||||||
},
|
|
||||||
'allowed_methods' => ['CLI'],
|
|
||||||
],
|
|
||||||
],
|
],
|
||||||
|
|
||||||
];
|
];
|
||||||
|
|
33
src/Entity/AbstractEntity.php
Normal file
33
src/Entity/AbstractEntity.php
Normal file
|
@ -0,0 +1,33 @@
|
||||||
|
<?php
|
||||||
|
namespace Acelaya\UrlShortener\Entity;
|
||||||
|
|
||||||
|
use Doctrine\ORM\Mapping as ORM;
|
||||||
|
|
||||||
|
abstract class AbstractEntity
|
||||||
|
{
|
||||||
|
/**
|
||||||
|
* @var int
|
||||||
|
* @ORM\Id
|
||||||
|
* @ORM\GeneratedValue(strategy="IDENTITY")
|
||||||
|
* @ORM\Column(name="id", type="bigint", options={"unsigned"=true})
|
||||||
|
*/
|
||||||
|
protected $id;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @return int
|
||||||
|
*/
|
||||||
|
public function getId()
|
||||||
|
{
|
||||||
|
return $this->id;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @param int $id
|
||||||
|
* @return $this
|
||||||
|
*/
|
||||||
|
public function setId($id)
|
||||||
|
{
|
||||||
|
$this->id = $id;
|
||||||
|
return $this;
|
||||||
|
}
|
||||||
|
}
|
118
src/Entity/ShortUrl.php
Normal file
118
src/Entity/ShortUrl.php
Normal file
|
@ -0,0 +1,118 @@
|
||||||
|
<?php
|
||||||
|
namespace Acelaya\UrlShortener\Entity;
|
||||||
|
|
||||||
|
use Doctrine\Common\Collections\ArrayCollection;
|
||||||
|
use Doctrine\Common\Collections\Collection;
|
||||||
|
use Doctrine\ORM\Mapping as ORM;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Class ShortUrl
|
||||||
|
* @author
|
||||||
|
* @link
|
||||||
|
*
|
||||||
|
* @ORM\Entity
|
||||||
|
* @ORM\Table(name="short_urls")
|
||||||
|
*/
|
||||||
|
class ShortUrl extends AbstractEntity
|
||||||
|
{
|
||||||
|
/**
|
||||||
|
* @var string
|
||||||
|
* @ORM\Column(name="original_url", type="string", nullable=false, length=1024, unique=true)
|
||||||
|
*/
|
||||||
|
protected $originalUrl;
|
||||||
|
/**
|
||||||
|
* @var string
|
||||||
|
* @ORM\Column(name="short_code", type="string", nullable=false, length=10, unique=true)
|
||||||
|
*/
|
||||||
|
protected $shortCode;
|
||||||
|
/**
|
||||||
|
* @var \DateTime
|
||||||
|
* @ORM\Column(name="date_created", )
|
||||||
|
*/
|
||||||
|
protected $dateCreated;
|
||||||
|
/**
|
||||||
|
* @var Collection|Visit[]
|
||||||
|
* @ORM\OneToMany(targetEntity=Visit::class, mappedBy="shortUrl", fetch="EXTRA_LAZY")
|
||||||
|
*/
|
||||||
|
protected $visits;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* ShortUrl constructor.
|
||||||
|
*/
|
||||||
|
public function __construct()
|
||||||
|
{
|
||||||
|
$this->visits = new ArrayCollection();
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @return string
|
||||||
|
*/
|
||||||
|
public function getOriginalUrl()
|
||||||
|
{
|
||||||
|
return $this->originalUrl;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @param string $originalUrl
|
||||||
|
* @return $this
|
||||||
|
*/
|
||||||
|
public function setOriginalUrl($originalUrl)
|
||||||
|
{
|
||||||
|
$this->originalUrl = $originalUrl;
|
||||||
|
return $this;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @return string
|
||||||
|
*/
|
||||||
|
public function getShortCode()
|
||||||
|
{
|
||||||
|
return $this->shortCode;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @param string $shortCode
|
||||||
|
* @return $this
|
||||||
|
*/
|
||||||
|
public function setShortCode($shortCode)
|
||||||
|
{
|
||||||
|
$this->shortCode = $shortCode;
|
||||||
|
return $this;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @return \DateTime
|
||||||
|
*/
|
||||||
|
public function getDateCreated()
|
||||||
|
{
|
||||||
|
return $this->dateCreated;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @param \DateTime $dateCreated
|
||||||
|
* @return $this
|
||||||
|
*/
|
||||||
|
public function setDateCreated($dateCreated)
|
||||||
|
{
|
||||||
|
$this->dateCreated = $dateCreated;
|
||||||
|
return $this;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @return Visit[]|Collection
|
||||||
|
*/
|
||||||
|
public function getVisits()
|
||||||
|
{
|
||||||
|
return $this->visits;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @param Visit[]|Collection $visits
|
||||||
|
* @return $this
|
||||||
|
*/
|
||||||
|
public function setVisits($visits)
|
||||||
|
{
|
||||||
|
$this->visits = $visits;
|
||||||
|
return $this;
|
||||||
|
}
|
||||||
|
}
|
155
src/Entity/Visit.php
Normal file
155
src/Entity/Visit.php
Normal file
|
@ -0,0 +1,155 @@
|
||||||
|
<?php
|
||||||
|
namespace Acelaya\UrlShortener\Entity;
|
||||||
|
|
||||||
|
use Doctrine\ORM\Mapping as ORM;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Class Visit
|
||||||
|
* @author
|
||||||
|
* @link
|
||||||
|
*
|
||||||
|
* @ORM\Entity
|
||||||
|
* @ORM\Table(name="visits")
|
||||||
|
*/
|
||||||
|
class Visit extends AbstractEntity
|
||||||
|
{
|
||||||
|
/**
|
||||||
|
* @var string
|
||||||
|
* @ORM\Column(type="string", length=256)
|
||||||
|
*/
|
||||||
|
protected $referer;
|
||||||
|
/**
|
||||||
|
* @var \DateTime
|
||||||
|
* @ORM\Column(type="datetime", nullable=false)
|
||||||
|
*/
|
||||||
|
protected $date;
|
||||||
|
/**
|
||||||
|
* @var string
|
||||||
|
* @ORM\Column(type="string", length=256)
|
||||||
|
*/
|
||||||
|
protected $country;
|
||||||
|
/**
|
||||||
|
* @var string
|
||||||
|
* @ORM\Column(type="string", length=256)
|
||||||
|
*/
|
||||||
|
protected $platform;
|
||||||
|
/**
|
||||||
|
* @var string
|
||||||
|
* @ORM\Column(type="string", length=256)
|
||||||
|
*/
|
||||||
|
protected $browser;
|
||||||
|
/**
|
||||||
|
* @var ShortUrl
|
||||||
|
* @ORM\ManyToOne(targetEntity=ShortUrl::class)
|
||||||
|
* @ORM\JoinColumn(name="short_url_id", referencedColumnName="id")
|
||||||
|
*/
|
||||||
|
protected $shortUrl;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @return string
|
||||||
|
*/
|
||||||
|
public function getReferer()
|
||||||
|
{
|
||||||
|
return $this->referer;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @param string $referer
|
||||||
|
* @return $this
|
||||||
|
*/
|
||||||
|
public function setReferer($referer)
|
||||||
|
{
|
||||||
|
$this->referer = $referer;
|
||||||
|
return $this;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @return \DateTime
|
||||||
|
*/
|
||||||
|
public function getDate()
|
||||||
|
{
|
||||||
|
return $this->date;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @param \DateTime $date
|
||||||
|
* @return $this
|
||||||
|
*/
|
||||||
|
public function setDate($date)
|
||||||
|
{
|
||||||
|
$this->date = $date;
|
||||||
|
return $this;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @return string
|
||||||
|
*/
|
||||||
|
public function getCountry()
|
||||||
|
{
|
||||||
|
return $this->country;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @param string $country
|
||||||
|
* @return $this
|
||||||
|
*/
|
||||||
|
public function setCountry($country)
|
||||||
|
{
|
||||||
|
$this->country = $country;
|
||||||
|
return $this;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @return string
|
||||||
|
*/
|
||||||
|
public function getPlatform()
|
||||||
|
{
|
||||||
|
return $this->platform;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @param string $platform
|
||||||
|
* @return $this
|
||||||
|
*/
|
||||||
|
public function setPlatform($platform)
|
||||||
|
{
|
||||||
|
$this->platform = $platform;
|
||||||
|
return $this;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @return string
|
||||||
|
*/
|
||||||
|
public function getBrowser()
|
||||||
|
{
|
||||||
|
return $this->browser;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @param string $browser
|
||||||
|
* @return $this
|
||||||
|
*/
|
||||||
|
public function setBrowser($browser)
|
||||||
|
{
|
||||||
|
$this->browser = $browser;
|
||||||
|
return $this;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @return ShortUrl
|
||||||
|
*/
|
||||||
|
public function getShortUrl()
|
||||||
|
{
|
||||||
|
return $this->shortUrl;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @param ShortUrl $shortUrl
|
||||||
|
* @return $this
|
||||||
|
*/
|
||||||
|
public function setShortUrl($shortUrl)
|
||||||
|
{
|
||||||
|
$this->shortUrl = $shortUrl;
|
||||||
|
return $this;
|
||||||
|
}
|
||||||
|
}
|
Loading…
Add table
Reference in a new issue