Цитата (chee @ 23.08.2017 - 13:00) |
Shurik_17, Я тебе гарантирую, ты с таким подходом убъешь еще 2-3 года на изучение ООП. То что скинул тебе Michael является мертвым трюком в php, так как примеси реализуются трейтами. Тебе не примеси нужны, тебе нужно нормальное разделение на сущности. Я как будто в пустоту всё пишу. |
Цитата (Shurik_17 @ 23.08.2017 - 13:05) |
так? |
- MyNamespace\Entity
- MyNamespace\Entity\Post
- MyNamespace\Entity\Page
- MyNamespace\Entity\Category
- MyNamespace\Entity\Product
Цитата (chee @ 23.08.2017 - 13:08) | ||
не совсем
модель это совокупность классов с бизнесс-логикой, то что ты описываешь является сущностью - Enitity Прочитай это, что бы понять, что я выше написал http://php.net/manual/ru/language.namespaces.php |
Цитата (Shurik_17 @ 23.08.2017 - 13:20) |
как то что я привел выше реализовать иначе |
Цитата (Shurik_17 @ 23.08.2017 - 13:32) |
а как библиотеку функций, вероятно в этом проблема) |
class StoresModel extends Core
{
// дочерние модели
static private $childrens_models = ['posts' => 'store\storePosts'];
static private $inited_models = false;
public function __construct()
{
if(false == self::$inited_models) {
foreach(self::$childrens_models as $k=>$m) {
$this->$k = new $m;
}
self::$inited_models = true;
}
}
}
Цитата |
Комбинируемый класс |
<?php
/**
* Голова
*
* Class Head
*/
class Head {
/**
* Открыть рот
*/
public function openMouth () {
echo 'открыть рот';
}
}
/**
* Человек
*
* Class People
*/
class People {
public $Head;
public $Hand;
public $Leg;
public $Ass;
public $Tits;
public function __construct($Head, $Hand, $Leg, $Ass, $Tits) {
$this->Head = $Head;
$this->Hand = $Hand;
$this->Leg = $Leg;
$this->Ass = $Ass;
$this->Tits = $Tits;
}
}
$People = new People(
new Head(),
new Hand(),
new Leg(),
new Ass(),
new Tits()
);
$People->Head->openMouth(); // открыть рот