Хабр Курсы для всех
РЕКЛАМА
Практикум, Хекслет, SkyPro, авторские курсы — собрали всех и попросили скидки. Осталось выбрать!
1) Низкая связанность хоть и хорошая штука в общем, но сильно портит API во многих случаях. В Yii она просто не нужна. Оттестировать мы можем любой код.
— Сильно повышается порог вхождения, хоть принцип сам по себе и простой.
— Сложнее отлаживать. Код размазывается по конфигам, куче компонент, вырастает количество слоёв вертикально.
Поэтому мы пользуемся DI умеренно и чаще без контейнера.
Что касается стандартных компонентов, особых проблем с их перекрытием быть не должно.
Мы стараемся избежать ситуации, когда пакет блог может использовать swift mailer, пакет feedback, zend mailer, какой-то ещё пакет, какой-то ещё мейлер
Про отслеживание где и что используется как-то у вас странно. Поставьте нормальную IDE. Про поддержку не согласен. Зависит больше от кода проекта, чем от фреймворка.
Где используется отлично видно, если сделать Find Usages в том же PhpStorm.
куда далее пойдёт по коду в случае сильного использования DI-контейнера
Что значит не завели функциональные тесты? Отлично работают.
Забыл уточнить, я использую Codeception и у меня не получилось.
да, схожесть местами есть
Конфиги у рельс через yml
/**
* Gets the current timestamp.
* @return mixed the timestamp value
*/
protected function evaluateTimestamp()
{
if ($this->timestamp instanceof Expression) {
return $this->timestamp;
} elseif ($this->timestamp !== null) {
return call_user_func($this->timestamp);
} else {
return time();
}
}
use \yii\base\Controller as BaseController;
. Чтобы народ не путать названием BaseController, сделано без алиаса.namespace app\common;
use yii\base\Controller as BaseController;
class Controller extends BaseController {}
namespace foo;
use DateTime;
class Bar
{
function __construct()
{
return new DateTime();
}
}
namespace foo;
class Bar
{
function __construct()
{
return new \DateTime();
}
}
Yii 2 alpha