View on GitHub

RefactoringPHP

A PHP version of the refactors from Refactoring: Improving the Design of Existing Code (Second Edition) by Martin Fowler

Extract Superclass (375)

Old Code

class Department
{
    public function getTotalAnnualCost()
    {
        ...
    }
    
    public function getName()
    {
        ...
    }
    
    public function getHeadCount()
    {
        ...
    }
}

class Employee
{
    public function getAnnualCost()
    {
        ...
    }
    
    public function getName()
    {
        ...
    }
    
    public function getId()
    {
        ...
    }
   
}

New Code

<?php
class Party
{
    public function getName()
    {
        ...
    }
    
    public function getAnnualCost()
    {
        ...
    }
    
}
class Department extends Party
{
    public function getAnnualCost()
    {
        ...
    }
    
    public function getHeadCount()
    {
        ...
    }
}

class Employee extends Party
{
    public function getAnnualCost()
    {
        ...
    }
    
    public function getId()
    {
        ...
    }
   
}