mirror of
https://github.com/kevinveenbirkenbach/coding-challenge-online-shop.git
synced 2025-09-18 07:46:01 +02:00
Implemented Navigation
This commit is contained in:
18
src/router/link/Button.php
Normal file
18
src/router/link/Button.php
Normal 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
71
src/router/link/Link.php
Normal 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;
|
||||
}
|
||||
}
|
||||
|
17
src/router/link/LinkInterface.php
Normal file
17
src/router/link/LinkInterface.php
Normal 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;
|
||||
}
|
||||
|
Reference in New Issue
Block a user