-
Notifications
You must be signed in to change notification settings - Fork 52
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Fix issue with SimplePhpView::create() #183
base: master
Are you sure you want to change the base?
Conversation
если проблема только в возврате public static function create()
{
return new static();
} |
У них разные конструкторы. |
а да. все равно похоже на хак |
Это не «похоже не хак», а хак и есть. Мне кажется, это очевидно. Я не очень улавливаю мысль, которую вы пытаетесь донести. |
@@ -12,11 +12,16 @@
/**
* @ingroup Flow
**/
- class SimplePhpView extends EmptyView
+ class SimplePhpView implements View, Stringable
{
protected $templatePath = null;
protected $partViewResolver = null;
-
+
+ public static function create($templatePath, ViewResolver $partViewResolver)
+ {
+ return new static($templatePath, $partViewResolver);
+ }
+
public function __construct($templatePath, ViewResolver $partViewResolver)
{
$this->templatePath = $templatePath; |
Мы с вами говорим на разных языках. Приведённый код всем очевиден. Его проблема в том, что он ломает BC, поэтому нужен хак. |
Простите, ни как не могу увидеть, а чем ломатся BC? |
public function render(EmptyView $view)
{
// ...
} или какой-нибудь |
ну я не знаю, на мой взгляд привязываться нужно или к SimplePhpView или к View |
@crazedr0m тут рассуждать особо нечего: да, наследоваться так было нельзя. Теперь желательно исправить ситуацию. Либо хаком и с BC, либо нормально. |
не нашел в коде фрейм-ворка похожего фрагмента. @crazedr0m +1 |
Вы правда надеялись найти это в коде фреймворка? Интересный вы человек. Я говорил про обычный код проекта, в котором используется onPHP. |
:D |
Уважаемый @DanielPlainview - понаписать у себя в проекте можно все что угодно. |
При изменении наследования BC ломается, если кто-то вдруг проверяет instanceof EmptyView |
@stev мушку спили. По существу
+1 Во времена Voxus bc ломали только в путь (со сменой версии), ничего страшного в этом нет. Если тянуть совместимость вечно, то получится винда какая-то. |
Впринципе почемы бы и не сломать здесь BC, убрав из цепочки наследования EmptyView. Делать deprecated и потом переименовывать в проекте класс на другой будет сложнее чем пробежаться по использованию EmptyView которого должно быть не много или вообще не быть. |
@dovg святые слова. очень часто здесь употребляется BC и даже тогда, когда оно является Bug Compatibility. Хотя в данном случае действительно изменяется сигнатура метода. |
для 1.0 - deprecated, есть еще кроме нас кто работает на прод. с 1.1 ? PS. и да, если вдруг слова про "Кулибина" могли быть восприняты как-то негативно, то это не в таком ключе говорилось. Кулибин - выдающийся человек, исследователь и изобретатель, и каждого из нас можно в какой-то степени соотнести к нему. (ну мало ли как могут слова быть интерпретированы) |
В данный момент
SimplePhpView::create()
возвращает инстансEmptyView
. Данный PR позволяет исправить ситуацию таким образом, чтобы сохранить BC.