<?php
class Organisation {
private $name ;
private $departments = [ ] ;
public function __construct( $name ) {
$this -> name = $name ;
}
public function addDepartment( Department $dep ) {
if ( ! in_array ( $dep , $this -> departments , true ) ) { $this -> departments [ ] = $dep ;
}
}
public function getDepartments( ) {
return $this -> departments ;
}
}
class Department {
private $name ;
public function __construct( $name ) {
$this -> name = $name ;
}
}
class Names {
public static function generateFullName( ) {
$firstName = self :: generateName ( $fLength ) ;
$secondName = self :: generateName ( $sLength ) ;
return $firstName . " " . $secondName ;
}
private static function generateName( $length ) {
$syllables = [
'а' , 'и' , 'у' , 'о' , 'е' ,
'на' , 'ни' , 'ну' , 'но' , 'не' ,
'ка' , 'ки' , 'ку' , 'ко' , 'ке' ,
'та' , 'ти' , 'ту' , 'то' , 'те' ,
'са' , 'си' , 'су' , 'со' , 'се' ,
] ;
$name = '' ;
for ( $i = 1 ; $i <= $length ; $i ++ ) {
}
$caseTitleName = $first . mb_substr ( $name , 1 ) ;
return $caseTitleName ;
}
}
abstract class Employee {
private $name ;
private $rang ;
private $leader ;
private $baseSalary ;
private $baseCoffe ;
Private $basePapers ;
public function __construct( $rang , $leader , $name ) {
$this -> name = $name ;
$this -> rang = $rang ;
$this -> leader = $leader ;
}
public function setBaseSalary ( $salary ) {
$this -> $baseSalary = $salary ;
}
public function setBaseCoffe ( $coffe ) {
$this -> baseCoffe = $coffe ;
}
public function setBasePapers ( $papers ) {
$this -> basePapers = $papers ;
}
}
class Manager extends Employee {
public function __construct( $rang , $leader , $name ) {
parent:: __construct( $rang , $leader , $name ) ;
$this -> setBaseSalary ( 500 ) ;
$this -> setBasePapers ( 200 ) ;
$this -> setBaseCoffe ( 20 ) ;
}
}
$vector = new Organisation( 'Вектор' ) ;
$dep1 = new Department( 'dep1' ) ;
$vector -> addDepartment ( $dep1 ) ;
$vector -> addDepartment ( $dep1 ) ;
$dep2 = new Department( 'dep2' ) ;
$vector -> addDepartment ( $dep2 ) ;
echo "<pre>" ;
//var_dump($vector->getDepartments());
$a = new Manager( 1 , false , Names:: generateFullName ( ) ) ;
PD9waHAKCmNsYXNzIE9yZ2FuaXNhdGlvbiB7CgoJcHJpdmF0ZSAkbmFtZTsKCXByaXZhdGUgJGRlcGFydG1lbnRzID0gW107CgoJcHVibGljIGZ1bmN0aW9uIF9fY29uc3RydWN0KCRuYW1lKSB7CgkJJHRoaXMtPm5hbWUgPSAkbmFtZTsJCQoJfQoKCXB1YmxpYyBmdW5jdGlvbiBhZGREZXBhcnRtZW50KERlcGFydG1lbnQgJGRlcCkgewogCgkJaWYgKCFpbl9hcnJheSgkZGVwLCAkdGhpcy0+ZGVwYXJ0bWVudHMsIHRydWUpKSB7CgkJCSR0aGlzLT5kZXBhcnRtZW50c1tdID0gJGRlcDsKCQl9CiAKCX0KCglwdWJsaWMgZnVuY3Rpb24gZ2V0RGVwYXJ0bWVudHMoKSB7CgkJcmV0dXJuICR0aGlzLT5kZXBhcnRtZW50czsKCX0KCn0KCmNsYXNzIERlcGFydG1lbnQgewoKCXByaXZhdGUgJG5hbWU7CgoJcHVibGljIGZ1bmN0aW9uIF9fY29uc3RydWN0KCRuYW1lKSB7CgkJJHRoaXMtPm5hbWUgPSAkbmFtZTsKCX0KfQoKY2xhc3MgTmFtZXMgewoJcHVibGljIHN0YXRpYyBmdW5jdGlvbiBnZW5lcmF0ZUZ1bGxOYW1lKCkgewoJCSRmTGVuZ3RoID0gbXRfcmFuZCgyLCA2KTsKCQkkZmlyc3ROYW1lID0gc2VsZjo6Z2VuZXJhdGVOYW1lKCRmTGVuZ3RoKTsKCgkJJHNMZW5ndGggPSBtdF9yYW5kKDIsIDYpOwoJCSRzZWNvbmROYW1lID0gc2VsZjo6Z2VuZXJhdGVOYW1lKCRzTGVuZ3RoKTsKCgkJcmV0dXJuICRmaXJzdE5hbWUgLiAiICIgLiAkc2Vjb25kTmFtZTsKCX0KCglwcml2YXRlIHN0YXRpYyBmdW5jdGlvbiBnZW5lcmF0ZU5hbWUoJGxlbmd0aCkgewoJCSRzeWxsYWJsZXMgPSBbCgkJCSfQsCcsICfQuCcsICfRgycsICfQvicsICfQtScsCgkJCSfQvdCwJywgJ9C90LgnLCfQvdGDJywgJ9C90L4nLCAn0L3QtScsCgkJCSfQutCwJywgJ9C60LgnLCAn0LrRgycsICfQutC+Jywn0LrQtScsCgkJCSfRgtCwJywgJ9GC0LgnLCAn0YLRgycsICfRgtC+JywgJ9GC0LUnLAoJCQkn0YHQsCcsICfRgdC4JywgJ9GB0YMnLCAn0YHQvicsICfRgdC1JywJCgkJXTsKCQkkbmFtZSA9ICcnOwoKCQlmb3IgKCRpID0gMTsgJGkgPD0gJGxlbmd0aDsgJGkrKykgewoJCQkkbmFtZSAuPSAkc3lsbGFibGVzW210X3JhbmQoMCwgY291bnQoJHN5bGxhYmxlcyktMSldOwoJCX0KCQkkZmlyc3QgPSBtYl9zdHJ0b3VwcGVyKG1iX3N1YnN0cigkbmFtZSwgMCwgMSkpOwoJCSRjYXNlVGl0bGVOYW1lID0gJGZpcnN0IC4gbWJfc3Vic3RyKCRuYW1lLCAxKTsKCgkJcmV0dXJuICRjYXNlVGl0bGVOYW1lOwkJCgl9Cn0KCmFic3RyYWN0IGNsYXNzIEVtcGxveWVlIHsKCglwcml2YXRlICRuYW1lOwoJcHJpdmF0ZSAkcmFuZzsKCXByaXZhdGUgJGxlYWRlcjsKCXByaXZhdGUgJGJhc2VTYWxhcnk7Cglwcml2YXRlICRiYXNlQ29mZmU7CglQcml2YXRlICRiYXNlUGFwZXJzOwkKCglwdWJsaWMgZnVuY3Rpb24gX19jb25zdHJ1Y3QoJHJhbmcsICRsZWFkZXIsICRuYW1lKSB7CgkJJHRoaXMtPm5hbWUgPSAkbmFtZTsKCQkkdGhpcy0+cmFuZyA9ICRyYW5nOwoJCSR0aGlzLT5sZWFkZXIgPSAkbGVhZGVyOwoJfQoKCXB1YmxpYyBmdW5jdGlvbiBzZXRCYXNlU2FsYXJ5ICgkc2FsYXJ5KSB7CgkJJHRoaXMtPiRiYXNlU2FsYXJ5ID0gJHNhbGFyeTsKCX0KCglwdWJsaWMgZnVuY3Rpb24gc2V0QmFzZUNvZmZlICgkY29mZmUpIHsKCQkkdGhpcy0+YmFzZUNvZmZlID0gJGNvZmZlOwoJfQoKCXB1YmxpYyBmdW5jdGlvbiBzZXRCYXNlUGFwZXJzICgkcGFwZXJzKSB7CgkJJHRoaXMtPmJhc2VQYXBlcnMgPSAkcGFwZXJzOwoJfQoKfQoKCmNsYXNzIE1hbmFnZXIgZXh0ZW5kcyBFbXBsb3llZSB7CglwdWJsaWMgZnVuY3Rpb24gX19jb25zdHJ1Y3QoJHJhbmcsICRsZWFkZXIsICRuYW1lKSB7CgkJcGFyZW50OjpfX2NvbnN0cnVjdCgkcmFuZywgJGxlYWRlciwgJG5hbWUpOwoJCSR0aGlzLT5zZXRCYXNlU2FsYXJ5KDUwMCk7CgkJJHRoaXMtPnNldEJhc2VQYXBlcnMoMjAwKTsKCQkkdGhpcy0+c2V0QmFzZUNvZmZlKDIwKTsKCX0KfQoKCiR2ZWN0b3IgPSBuZXcgT3JnYW5pc2F0aW9uKCfQktC10LrRgtC+0YAnKTsKCiRkZXAxID0gbmV3IERlcGFydG1lbnQoJ2RlcDEnKTsKJHZlY3Rvci0+YWRkRGVwYXJ0bWVudCgkZGVwMSk7CiR2ZWN0b3ItPmFkZERlcGFydG1lbnQoJGRlcDEpOwokZGVwMiA9IG5ldyBEZXBhcnRtZW50KCdkZXAyJyk7CiR2ZWN0b3ItPmFkZERlcGFydG1lbnQoJGRlcDIpOwoKZWNobyAiPHByZT4iOwovL3Zhcl9kdW1wKCR2ZWN0b3ItPmdldERlcGFydG1lbnRzKCkpOwoKJGEgPSBuZXcgTWFuYWdlcigxLCBmYWxzZSwgTmFtZXM6OmdlbmVyYXRlRnVsbE5hbWUoKSk7Cgp2YXJfZHVtcCgkYSk7Cg==