Source Code : PHP Design Patterns Composite

PHP Is Open Source Programming Language You Can Download and use It, You required xampp server and wamp server . You download From xampp server from https://www.apachefriends.org/download.html. Click Here to download
We provide this code related to title for you to solve your developing problem easily. Libraries which is import in this program you can download from http://php.net/. Click Here or search from google with Libraries Name you get jar file related it and also http://php.net/ is a official site

PHP Design Patterns Composite

<?
 abstract class StudentManager {
    abstract function getStudent($previousStudent);

    abstract function getStudentCount();
    abstract function setStudentCount($new_count);

    abstract function addStudent($oneStudent);
    abstract function removeStudent($oneStudent);
 }
  
class SingleStudentClass extends StudentManager {
    private $firstName;
    private $lastName;

    function __construct($firstName, $lastName) {
      $this->firstName = $firstName;
      $this->lastName = $lastName;
    }

    function getStudent($studentToGet) {
      if (1 == $studentToGet) {
        return $this->firstName." by ".$this->lastName;
      } else {
        return FALSE;
      }
    }

    function getStudentCount() {
      return 1;
    }

    function setStudentCount($newCount) {
      return FALSE;
    }

    function addStudent($oneStudent) {
      return FALSE;
    }

    function removeStudent($oneStudent) {
      return FALSE;
    }

  }  
  
  
class MultipleStudentsClass extends StudentManager {

    private $oneStudents = array();
    private $studentCount;

    public function __construct() {
      $this->setStudentCount(0);
    }

    public function getStudentCount() {
      return $this->studentCount;
    }
    public function setStudentCount($newCount) {
      $this->studentCount = $newCount;
    }

    public function getStudent($studentToGet) {  
      if ($studentToGet <= $this->studentCount) {
        return $this->oneStudents[$studentToGet]->getStudent(1);
      } else {
        return FALSE;
      }
    }

    public function addStudent($oneStudent) {
      $this->setStudentCount($this->getStudentCount() + 1);
      $this->oneStudents[$this->getStudentCount()] = $oneStudent;
      return $this->getStudentCount();
    }

    public function removeStudent($oneStudent) {
      $counter = 0;
      while (++$counter <= $this->getStudentCount()) {
        if ($oneStudent->getStudent(1) == 
          $this->oneStudents[$counter]->getStudent(1)) {
          for ($x = $counter; $x < $this->getStudentCount(); $x++) {
            $this->oneStudents[$x] = $this->oneStudents[$x + 1];
          }
          $this->setStudentCount($this->getStudentCount() - 1);
        }
      }
      return $this->getStudentCount();
    }

  }
  
  
$firstStudent =  new SingleStudentClass("A","B");
echo $firstStudent->getStudent(1);
echo "<BR>";


$secondStudent = new SingleStudentClass("C", "D");
echo $secondStudent->getStudent(1);
echo "<BR>";

$students = new MultipleStudentsClass();
$studentsCount = $students->addStudent($firstStudent);
echo $students->getStudent($studentsCount);
echo "<BR>";

$studentsCount = $students->addStudent($secondStudent);
echo $students->getStudent($studentsCount);
echo "<BR>";

$studentsCount = $students->removeStudent($firstStudent);
echo $students->getStudentCount();
echo "<BR>";
  
echo $students->getStudent(1);
echo "<BR>";
?>  

           
       

Thank with us