This commit is contained in:
Kilian Hofmann 2024-06-28 13:39:21 +02:00
parent fac22f76c6
commit 7043d56329
4 changed files with 147 additions and 0 deletions

View File

@ -0,0 +1,58 @@
<?php
class Hyperlink
{
/*
* Private members
*/
private string $uri;
private string $title;
private ?string $colour;
/*
* Constructor
*/
public function __construct(string $uri, string $title, string $colour = null)
{
$this->uri = $uri;
$this->title = $title;
$this->setColour($colour);
}
/*
* Getters and Setters
*/
public function setColour(string $colour = null)
{
if ($colour === null) {
$this->colour = null;
return;
}
if (!preg_match("/^#([0-9A-Fa-f]{3,4}|[0-9A-Fa-f]{6}|[0-9A-Fa-f]{8})$/", $colour)) {
trigger_error("Colour invalid", E_USER_WARNING);
return;
}
$this->colour = $colour;
}
public function getColour()
{
return $this->colour ?? "No colour specified";
}
/*
* Meta
*/
public function __toString()
{
$style = $this->colour ? "style=\"color:$this->colour;\"" : "";
return <<<END
<a href="$this->uri" $style>$this->title</a>
END;
}
}

View File

@ -0,0 +1,33 @@
<!DOCTYPE html>
<html lang="en">
<head>
<?php include_once "../../../base/meta.php" ?>
<title>Person Test</title>
</head>
<body>
<?php
include_once "../../../base/settings.php";
include_once "../../../base/headers.php";
Headers::html();
//Testdatei für die Klasse Hyperlink
include_once "./hyperlink.php";
//Objektinstanzen
$link1 = new Hyperlink("https://www.google.de", "Google");
echo "<p>$link1</p>";
$link1->setColour("#CC0000");
echo "<p>$link1</p>\n";
$link2 = new Hyperlink("https://portal.zedat.fu-berlin.de", "Zedat-Portal");
echo "<p>$link2</p>\n";
$link3 = new Hyperlink("https://userpage.fu-berlin.de/db-admin", "phpMyAdmin", "#009900");
echo "<p>Die Farbe des Links $link3 ist " . $link3->getColour() . "</p>\n";
?>
</body>
</html>

View File

@ -0,0 +1,23 @@
<!DOCTYPE html>
<html lang="en">
<head>
<?php include_once "../../../base/meta.php" ?>
<title>Person Test</title>
</head>
<body>
<?php
include_once "../../../base/settings.php";
include_once "../../../base/headers.php";
Headers::html();
include_once "./person.php";
$person = new Person("John Doe", 170, new DateTime("01-01-1970"));
echo $person;
?>
</body>
</html>

View File

@ -0,0 +1,33 @@
<?php
class Person
{
/*
* Private members
*/
private string $name;
private float $weight;
private DateTime $birthdate;
/*
* Constructor
*/
public function __construct(string $name, float $weight, DateTime $birthdate)
{
$this->name = $name;
$this->weight = $weight;
$this->birthdate = $birthdate;
}
/*
* Meta
*/
public function __toString()
{
$formatter = new IntlDateFormatter('en_UK', IntlDateFormatter::SHORT, IntlDateFormatter::SHORT);
$formatter->setPattern('E dd.MM.yyyy');
return "$this->name, currently {$this->weight}lbs, was born on {$formatter->format($this->birthdate)}";
}
}