+158
- 1
- 2
- 3
- 4
- 5
- 6
- 7
// classes.php
return [
'yii\base\Action' => YII2_PATH . '/base/Action.php',
'yii\base\ActionEvent' => YII2_PATH . '/base/ActionEvent.php',
'yii\base\ActionFilter' => YII2_PATH . '/base/ActionFilter.php',
// еще порядка трех сотен классов
];
https://github.com/yiisoft/yii2/blob/d2b864da84a68d56a96709479af78d203f050451/framework/classes.php
осень 2014, использующий composer модный фреймворк, "requires PHP 5.4 and embraces the best practices and protocols found in modern Web application development", и, конечно, ебаный стыд.
Запостил:
Fike,
18 Января 2015
and embarrasses the best practices
Опечатались, с кем не бывает...
Героям Слава!!!
http://habrahabr.ru/post/248131/
Зависть к японским фашистам и американским инвестициям с монитора течет.
Берём yii\base\Action - https://github.com/yiisoft/yii2/blob/master/framework/base/Action.php#L68
Если я хочу переписать метод, например getUniqueId(), во всём приложении, то как мне это сделать, если не будет:
Yii::$classMap['yii\base\Action '] = '@app/components/MyAction.php';
Используя только автозагрузку composer придётся переписывать все участки кода, где используется yii\base\Action, на use app/components/MyAction. Не гибко.
Насчёт декларативной я согласен.
1. Это статичный метод, "перебить" класс просто так не получится. Максимум - использовать специфические конструкции типа
Именно из-за этой неподменяемости реализации со статикой нужно быть очень осторожным.
2. В чем проблема тупо отнаследоваться?
3.
-_-
INTERFACE MOTHERFUCKER
DO YOU KNOW IT?
>$this
Тут не интерфейсы нужны, а макдональдс в родном городе автора.
method_exists тут само то, не?
run(ArgumentsCollection $collection)