Проблему я описал в Идее. Кстати, прошу проголосовать за нее. Но модуль выпускать надо, пришлось искать решение.
Сделал я следующее. Во первых, создал вспомогательный класс:
class CASPropVideoHelper {
public static function getVarClass($class, $var) {
return $class->{$var};
}
public static function setVarClass(&$class, $var, $val) {
$class->{$var} = $val;
}
}
Добрый день, Антон!
Столкнулся с аналогичной проблемой при обфускации Битриксом моего кода в модуле.
Сейчас переписываю часть кода, что бы он работал. Ваши статические методы сделал не в отдельном классе, а добавил их в свой класс, что бы можно было устанавливать переменные private и protected. Иначе, Fatal error: Cannot access protected property Foo::$user_agent.
Сейчас думаю либо разнести код на две части (что можно - обфусцировать, что нет - в открытом доступе), либо делать вашим методом.
Насколько ваш метод долговечен? В том плане, что Битрикс возьмет что то поменяет и логика будет нерабочей. И стоит ли под него затачивать свои проекты?
Столкнулся с аналогичной проблемой при обфускации Битриксом моего кода в модуле.
Сейчас переписываю часть кода, что бы он работал. Ваши статические методы сделал не в отдельном классе, а добавил их в свой класс, что бы можно было устанавливать переменные private и protected. Иначе, Fatal error: Cannot access protected property Foo::$user_agent.
Сейчас думаю либо разнести код на две части (что можно - обфусцировать, что нет - в открытом доступе), либо делать вашим методом.
Насколько ваш метод долговечен? В том плане, что Битрикс возьмет что то поменяет и логика будет нерабочей. И стоит ли под него затачивать свои проекты?
Мое мнение, что в этом плане ничего не изменится и продолжит работу. Измениться может только что-то глобально в самом PHP со временем.