class BaseConnection {
const connection_string = "pgsql:host=localhost;port=5432";
static public function getInstace() {
//... используем static::connection_string
}
}
class SlaveConnection extends BaseConnection {
const connection_string = "pgsql:host=192.168.1.2;port=5432";
}
class Connection {
static function getInstance() {
// чуете подвох? Нам уже не нужен Connection::getInstace()
return ConnectController::getInstance()->getConnection();
}
}
function __construct($container)
{
$con = $container->get('connection');
}
function __construct(Connection $con=NULL)
{
if ($con == NULL) {
$con = Connection::getInstance();
}
}
1. Все принципы программирования сводят разработку к унификации. ООП, SOLID, и даже весь зоопарк паттернов.
2. Это не оспаривает того факта, что хороший язык должен ограничивать. Для того что бы код всех программистов был одинаковый. Как младших, так и гуру. Если есть всего лишь 1 способ пройтись по массиву, значит вы всегда открыв код, обнаружите эти места быстро.
3. см п.2
4. см п.2
5. см п.1
Ещё не встречал рубистов, которые мне смогли сказать, для чего нужен ООП и почему проблемы квадрата и прямоугольника в LSP не существует. Что говорит о низкой квалификации данных людей.