Skip to content

Instantly share code, notes, and snippets.

@alanwillms
Last active August 29, 2015 14:27
Show Gist options
  • Save alanwillms/00940542895180e5b683 to your computer and use it in GitHub Desktop.
Save alanwillms/00940542895180e5b683 to your computer and use it in GitHub Desktop.
liskov-breaking-1.php
<?php
class Logger
{
public function log($mensagem)
{
$this->append($mensagem);
}
}
class DatabaseLogger extends Logger // sub-classe
{
public function log($mensagem) // sobrescreve o método Logger::log($mensagem)
{
$this->database->insert('log', ['message' => $mensagem]);
}
}
$fileLogger->log('Não foi possível enviar o pedido.');
# true
$databaseLogger->log('Não foi possível enviar o pedido.');
# PHP Fatal error: Call to a member function insert() on a non-object
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment