Добавление объекта в массив

chateau

Новичок
Доброе утро всем, есть несколько классов, Univer, Facultet, Specialinoti, Prepod и так далее
Что бы создать много объектов типа Univer

$univer = new Univer("МГУ");
$univer1 = new Univer("МТИ");
$univer2 = new Univer("МХАД"); и тд

Затем
$univer->addFacultet(new Facultet("Межд. отношения"));

Потом им же добавлять факультеты (получается каша)! Много клиентского кода
Подскажите как создавать объекты более изящно что ли) Может использовать статические методы для этих операций! Буду благодарен за любые ответы!

PHP:
require_once("facultet.class.php");
Class Univer{
    protected $name;
    protected $faculties;
    protected $rector;
    
    public function __construct($name) {
        $this->name = $name;
        $this->faculties = array();
    }
    
    
    public function getName() {
        return $this->name;
    }
    
    public function getFaculties() {
        return $this->faculties;
    }
    
    public function printFaculties() {
        foreach($this->faculties as $value) {
            echo $value->getName();
        }
        
    }
    
    public function getRector() {
        return $this->rector;
    }
    
    //-----------
    
    public function addFacultet(Facultet $facultet) {
       array_push($this->faculties,$facultet);
    }
    
    public function addRector(Rector $rector) {
        $this->rector=$rector;
    }
    
    
}
 

WMix

герр M:)ller
Партнер клуба
для начала это нужно хотяб описать, к примеру масив такого вида
PHP:
$unis = array(
   array(
      'name' =>  'МГУ' ,
      'facs' => array("Межд. отношения", ... ),
   ), 
   array( 'name' =>  'МТИ' ),
   array( 'name' =>  'МХАД' ),
);
где он будет храниться не важно, хоть файл, а лучше база данных
дальше простой перебор и создание необходимых обьектов
 
Последнее редактирование:

Вурдалак

Продвинутый новичок
По-моему, самый важный вопрос тут уже был задан:
А зачем это нужно?
Покажи конкретный кейс, когда нужно создавать эту кучу.

Создание универа, факультета, преподов — это всё разные контроллеры, там неоткуда взяться «куче кода».
 

chateau

Новичок
для начала это нужно хотяб описать, к примеру масив такого вида
PHP:
$unis = array(
   array(
      'name' =>  'МГУ' ,
      'facs' => array("Межд. отношения", ... ),
   ), 
   array( 'name' =>  'МТИ' ),
   array( 'name' =>  'МХАД' ),
);
где он будет храниться не важно, хоть файл, а лучше база данных
дальше простой перебор и создание необходимых обьектов
PHP:
Class Univer {
	protected $name;
	protected $faculties  = array();

	function __construct($name) {
		$this->name = $name;
	}
	public function addFacultet(Facultet $facultet) {
 		array_push($this->faculties, $facultet);
	}
	static function makeUniver($univ, $facs){
		$univer = new self($univ);
		foreach($facs as $fac){
			$univer->addFacultet(Facultet::makeFac($fac));
		}
		return $univer;
	}
}

Class Facultet {
	protected $name;
	
    public function __construct($name) {
        $this->name = $name;
    }
    
    public function getName() {
        return $this->name;
    }
	static function makeFac($fac){
		return new self($fac);
	}
}

// External Data. Fetch it from data storage.
$data = Array(
	'UTM'	=> Array('FIU', 'FCIM'),
	'ULIM' 	=> Array('FII','Drept')
);

// Populate data

$univers = Array();

foreach($data as $univ => $facs){
	$univers[] = Univer::makeUniver($univ, $facs);
}
Ребята помогли сваргинить вот такой "борщ") объясните как получать данные из базы для получения массива такого вида?
 
Сверху