Interfaces and Traits
Interface Contract
An interface names methods a class promises to provide.
Interface Contract
interface_contract.php
<?php
interface Formatter
{
public function format(string $name): string;
}
class PrefixFormatter implements Formatter
{
public function format(string $name): string
{
return "hello " . $name;
}
}
$name = ;
$formatter = new PrefixFormatter();
$message = $formatter->format($name);
echo "name=" . $name . "\n";
echo "message=" . $message . "\n";
<?php
interface Formatter
{
public function format(string $name): string;
}
class PrefixFormatter implements Formatter
{
public function format(string $name): string
{
return "hello " . $name;
}
}
$name = ;
$formatter = new PrefixFormatter();
$message = $formatter->format($name);
echo "name=" . $name . "\n";
echo "message=" . $message . "\n";
<?php
interface Formatter
{
public function format(string $name): string;
}
class PrefixFormatter implements Formatter
{
public function format(string $name): string
{
return "hello " . $name;
}
}
$name = ;
$formatter = new PrefixFormatter();
$message = $formatter->format($name);
echo "name=" . $name . "\n";
echo "message=" . $message . "\n";
contract
Code can depend on the interface name instead of a specific class name.