<?php
class Aircraft
{
/**
* @var string
*/
private $aircraftType;
/**
* @var string
*/
private $departureCity;
/**
* @var string
*/
private $arrivalCity;
public function __construct(
string $aircraftType,
string $departureCity,
string $arrivalCity
) {
$this->aircraftType = $aircraftType;
$this->departureCity = $departureCity;
$this->arrivalCity = $arrivalCity;
}
public function __toString(): string
{
return sprintf(
"Bienvenue à bord de notre %s.\n" .
"Ce vol est en décollage imminent de %s et aura pour arrivée %s.",
$this->aircraftType(),
$this->departureCity(),
$this->arrivalCity()
);
}
public function aircraftType(): string
{
return $this->aircraftType;
}
public function departureCity(): string
{
return $this->departureCity;
}
public function arrivalCity(): string
{
return $this->arrivalCity;
}
}
class LowCostAircraft extends Aircraft
{
public function __construct(
string $aircraftType,
string $departureCity,
string $arrivalCity
) {
parent::__construct($aircraftType, $departureCity, $arrivalCity);
}
public function arrivalCity(): string
{
return sprintf("%s.\nLe moteur est le coeur d'un avion, mais le pilote est son âme", parent::arrivalCity());
}
}
echo new LowCostAircraft('easyJet', 'Nice', 'Mulhouse');