Implemented Navigation

This commit is contained in:
Kevin Frantz
2018-07-15 08:31:24 +02:00
parent 401fa64733
commit d480467615
14 changed files with 227 additions and 102 deletions

View File

@@ -0,0 +1,18 @@
<?php
namespace router\link;
/**
* A button containes out of a link and post parameters
* @author kevinfrantz
* @deprecated
*
*/
class Button
{
private $link;
public function __construct(Link $link,array $post){
$this->link;
}
}

71
src/router/link/Link.php Normal file
View File

@@ -0,0 +1,71 @@
<?php
namespace router\link;
/**
* A link containes out of get parameters
*
* @author kevinfrantz
*
*/
final class Link implements LinkInterface
{
/**
* ArrayCollection would be nicer but I have to save time ;)
*
* @var array
*/
private $parameters;
/**
*
* @var string
*/
private $name;
public function __construct(array $parameters = [], string $name = '')
{
$this->setParameters($parameters);
$this->setName($name);
}
public function setParameters(array $parameters): void
{
$this->parameters = $parameters;
}
public function setName(string $name): void
{
$this->name = $name;
}
public function getName(): string
{
return $this->name;
}
public function getUrl(): string
{
return "index.php" . $this->getParameters();
}
private function getParameters(): string
{
$parameters = '?';
foreach ($this->parameters as $key => $value) {
$parameters .= $key . '=' . $value . '&';
}
return $parameters;
}
public function isActive(): bool
{
foreach ($this->parameters as $key => $parameter) {
if (! array_key_exists($key, $_GET) || (array_key_exists($key, $_GET) && $_GET[$key]!==$parameter)) {
return false;
}
}
return true;
}
}

View File

@@ -0,0 +1,17 @@
<?php
namespace router\link;
/**
*
* @author kevinfrantz
*
*/
interface LinkInterface
{
public function getName():string;
public function getUrl():string;
public function isActive():bool;
}