@yii2ru

Страница 716 из 1721
Павел
25.10.2017
11:39:27
Непонятно

Надо доки курить когда вызывается __get()

Dmitriy
25.10.2017
11:41:39
да там ничего интересного в __get

стандартный код

Google
?
25.10.2017
11:42:01
Надо ещё оттестировать, на чистом шаблоне.

Dmitriy
25.10.2017
11:42:19
по идеи всегда должен вызывать getVariable через магию

?
25.10.2017
11:42:44
Павел
25.10.2017
11:42:57
Я считал что при protected всегда магия

А оно вишь чо

?
25.10.2017
11:43:20
Я считал что при protected всегда магия
private/protected да, магия должна быть.

Я не уверен что всё ок в проекте, затестирую дома если силы останутся

Павел
25.10.2017
11:43:38
Ну тут тока на private получается

__get() в BaseObject вообще не вернёт свойство если нет геттера

И там нет привязки к YII_DEBUG

?
25.10.2017
11:46:28
Да я знаю, что там нет привязки.

Я шарю как кишки работают

Google
?
25.10.2017
11:46:46
Поэтому и удивился, ЧЗХ

Павел
25.10.2017
11:48:46
Нужно повторение эксперимента

Павел
25.10.2017
11:49:32
Шерме!

?
25.10.2017
11:49:38
у меня нет такого поведения . пофиг на YII_DEBUG
видимо в проекте чё-то куда-то намутили

Dmitriy
25.10.2017
11:51:03
только приват свойство вызывается через getTest(), паблик и протектед на прямую

Павел
25.10.2017
11:51:44
Кагэто?

Dmitriy
25.10.2017
11:53:06
class CustomView extends View { private $test = 1; public function getTest() { return $this->test; } } вот код. брекпоинт стоит на getTest. в коде вызываю $this->test брекпоинт срабатывает только если $test приватный

Павел
25.10.2017
11:54:09
Фигня какая то

А если просто класс и __get()

Сработает на protected?

?
25.10.2017
12:00:48
только приват свойство вызывается через getTest(), паблик и протектед на прямую
Ага, т.е. протектед напрямую идет... Хм... В принципе с одной стороны логично, ведь рендер происходит во View, а ViewCustom унаследована, всё логично.

Просто видимо путаницу сам механизм рендера вводит, там перехват потока вывода идет и класс через DI создается.

Павел
25.10.2017
12:02:10
Магия! Поэтому я всегда подчеркивание добавляю к имени свойства

Dmitriy
25.10.2017
12:02:23
Сработает на protected?
нет. на прямую. __get не захватывает

Павел
25.10.2017
12:02:38
?
25.10.2017
12:02:52
Не совсем странно)

Павел
25.10.2017
12:02:58
Всегда думал что работает на proteted

?
25.10.2017
12:03:27
Работает, если ты для модели например сделаешь

Павел
25.10.2017
12:03:28
То что вызов рендер внутри класса это вносит дополнительную путаницу

Google
?
25.10.2017
12:03:49
Тут фишка в том, что CustomView и View родственники

Павел
25.10.2017
12:03:53
Но внутри класса и private свойства должны быть доступны без геттера

?
25.10.2017
12:04:00
Следовательно могут обратиться к protected

хотя...

Dmitriy
25.10.2017
12:04:37
Не совсем странно)
странно, из View мы вызываем протектед метод . хотя видимость не позволит без магии

?
25.10.2017
12:05:45
\yii\base\Component Метод canGetProperty Идет вызов property_exists($this, $name), следовательно если protected объявлен, то будет возвращен.

Павел
25.10.2017
12:06:28
Это тут при чем? __get() наследуется от BaseObject

?
25.10.2017
12:06:55
А кто тебе мешает получить protected свойство

?
25.10.2017
12:07:23
хотя тогда бы и приватные должны были бы быть доступны

?
25.10.2017
12:07:54
Без пол литра не обойтись...

С чего это?
var_dump($this); exit();

Павел
25.10.2017
12:08:17
Вьюха просто инклудится в renderphpfile()

var_dump($this); exit();
Я не за компом ща

Странно...

?
25.10.2017
12:09:21
Я тебе гарантирую что там CustomView будет

Просто вардоком активно пользуюсь

Павел
25.10.2017
12:09:39
Ну так в файле вьюхи $this это экземпляр CustomObject

Google
Павел
25.10.2017
12:10:03
Так CustomView или CustomObject?

?
25.10.2017
12:10:10
CustomView имел в виду

Я уже часов 30-35 не сплю

Павел
25.10.2017
12:10:30
Так я с этим согласен ?

Оч странно, оч.

Надо на php 5.6 проверить

Мож в семёрке магия только на private работает

А мы, лохи, этого не знаем

?
25.10.2017
12:13:18
Кстати да, и там и там РНР7

Admin
ERROR: S client not available

Dmitriy
25.10.2017
12:24:01
я не понимаю как во вью передается класс View, я не нашел такой фитчи. Там просто вызывается renderphp внутри View . раз в View пхп файл по идеи должны приватные свойства на прямую браться, а это не так =(

?
25.10.2017
12:25:10
Вот я о том же

Либо должны и приватные быть доступны

Либо не доступны протектед

Dmitriy
25.10.2017
12:26:55
можно разработчиков позвать и задать вопрос

Павел
25.10.2017
12:47:45
тогда уж разработчиков PHP

Тема такая

Внутри класса вызов и private и protected происходит напрямую

Из класса потомка вызов protected - напрямую, а private через __get()

Vladislav
25.10.2017
12:58:10
Народ, как подключить js в контроллере?

Google
Елена
25.10.2017
12:59:13
зачем в контроллере?

Павел
25.10.2017
12:59:27
Кароче через AssetManager

Vladimir
25.10.2017
12:59:34
у меня приватное свойство вызвалось напрямую

Vladislav
25.10.2017
12:59:52
АссетМэненжер подключает во всех экшенах

мне только в одном нужно

Dmitriy
25.10.2017
13:00:22
Из класса потомка вызов protected - напрямую, а private через __get()
выше был вопрос был про другое. как передается view? если extend то приваты должны доступны без __get

Елена
25.10.2017
13:01:10
мне только в одном нужно
$this->registerJs($script, yii\web\View::POS_END);

указываешь там где нужно

Елена
25.10.2017
13:01:57
Dmitriy
25.10.2017
13:01:57
Файл просто инклудится в renderPhpFile
это я вижу. значит внутри файла доступны все приват и паблик методы

Vladislav
25.10.2017
13:02:03
вместо $script путь можно указать @rooless ?

Павел
25.10.2017
13:02:11
Да, должны быть

Елена
25.10.2017
13:03:11
вместо $script путь можно указать @rooless ?
не помню точно про путь но попробуй.

Павел
25.10.2017
13:12:34
Что пробовать? registerJS разве работает в контроллере?

Елена
25.10.2017
13:14:27
Что пробовать? registerJS разве работает в контроллере?
ответ адресован @sofvlad . registerJS работает с views.

Павел
25.10.2017
13:14:52
Народ, как подключить js в контроллере?

Vladislav
25.10.2017
13:19:21
он даже в layouts не робит

Елена
25.10.2017
13:20:23
а добавил в файл с views use app\assets\AppAsset; AppAsset::register($this);

Vladislav
25.10.2017
13:21:47
да он там есть

Страница 716 из 1721