Форум русской поддержки Joomla!® CMS
07.12.2016, 01:54:44 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
   
   Начало   Поиск Joomla 3.0 FAQ Joomla 2.5 FAQ Joomla 1.5 FAQ Правила форума Новости Joomla Реклама Войти Регистрация Помощь  
Страниц: [1]   Вниз
  Добавить закладку  |  Печать  
Автор

form.php

 (Прочитано 450 раз)
0 Пользователей и 1 Гость смотрят эту тему.
SmokerMan
Профи
********

Репутация: +694/-25
Offline Offline

Пол: Мужской
Сообщений: 5225



« : 09.01.2016, 15:37:16 »

libraries/legacy/model/form.php
http://joxi.ru/Drla49S4yNGJmP
Это косяк или так и задумано?
По идее данные в плагин тоже должны передаваться по ссылке, что бы с ними можно было что-то сделать, а не тупо наблюдать их
Записан
al-teen
Support Team
*****

Репутация: +221/-10
Offline Offline

Пол: Мужской
Сообщений: 2460



« Ответ #1 : 09.01.2016, 15:52:32 »

Ссылки в аргументах - само по себе дерьмо.
Записан
SmokerMan
Профи
********

Репутация: +694/-25
Offline Offline

Пол: Мужской
Сообщений: 5225



« Ответ #2 : 09.01.2016, 15:56:29 »

Ссылки в аргументах - само по себе дерьмо.
с чего это?
допустим мне надо плагином в этом событии какие-то данные поправить, каким макаром я это сделаю по другому?
Записан
al-teen
Support Team
*****

Репутация: +221/-10
Offline Offline

Пол: Мужской
Сообщений: 2460



« Ответ #3 : 09.01.2016, 16:23:15 »

с чего это?
допустим мне надо плагином в этом событии какие-то данные поправить, каким макаром я это сделаю по другому?
Во первых ссылки отъедают производительность, во вторых, ты ведь получаешь ссылку на переменную или объект, а не их значение. Следовательно, функция получает доступ к изменению значения самой переменной, на которую получает ссылку. А это может быть не безопасно и в целом нарушает инкапсуляцию. Тем более, что в месте вызова функции аргументу не присваивается апмерсанд, поэтому ссылка остается неясной для того, кто будет поддерживать такой код.

Если без этого никак, то это означает не очень хорошую архитектуру приложения, которая по идее должна быть максимально слабосвязанной.
Записан
robert
Профи
********

Репутация: +344/-11
Offline Offline

Пол: Мужской
Сообщений: 3586


« Ответ #4 : 09.01.2016, 17:00:38 »

По идее данные в плагин тоже должны передаваться по ссылке, что бы с ними можно было что-то сделать, а не тупо наблюдать их
Тем более, что в месте вызова функции аргументу не присваивается апмерсанд
Цитировать
Начиная с PHP 5.4.0 передача переменной по ссылке стала невозможна, поэтому использование этого приема приведет к фатальной ошибке.
http://php.net/manual/ru/language.references.pass.php
Или я чего-то недопонимаю?
« Последнее редактирование: 09.01.2016, 17:16:37 от robert » Записан
al-teen
Support Team
*****

Репутация: +221/-10
Offline Offline

Пол: Мужской
Сообщений: 2460



« Ответ #5 : 09.01.2016, 17:15:54 »

Там же
Цитировать
В вызове функции отсутствует знак ссылки - он есть только в определении функции.
Записан
robert
Профи
********

Репутация: +344/-11
Offline Offline

Пол: Мужской
Сообщений: 3586


« Ответ #6 : 09.01.2016, 17:19:41 »

Там же
Цитировать
В вызове функции отсутствует знак ссылки - он есть только в определении функции.
Ну да, ведь тема об этом?
Записан
al-teen
Support Team
*****

Репутация: +221/-10
Offline Offline

Пол: Мужской
Сообщений: 2460



« Ответ #7 : 09.01.2016, 17:24:14 »


Ну да, ведь тема об этом?
В этом, только наверное существуют более безопасные варианты передать данные в плагин. Что-то типа JRequest или jimport
Записан
SmokerMan
Профи
********

Репутация: +694/-25
Offline Offline

Пол: Мужской
Сообщений: 5225



« Ответ #8 : 09.01.2016, 18:35:54 »

В этом, только наверное существуют более безопасные варианты передать данные в плагин. Что-то типа JRequest или jimport
причем тут JRequest или jimport?)
JRequest - это тот же $_REQUEST
jimport - это тот же include

здесь же данные выбираются из базы, и потом передаются в форму
и надо что-то сделать с этими данными, перед тем как они отправятся в форму
Записан
b2z
Support Team
*****

Репутация: +710/-0
Offline Offline

Пол: Мужской
Сообщений: 7533


Разраблю понемногу


« Ответ #9 : 28.01.2016, 12:54:04 »

Это баг, исправлен в 3.5
https://github.com/joomla/joomla-cms/blob/staging/libraries/legacy/model/form.php#L243
Записан
Страниц: [1]   Вверх
  Добавить закладку  |  Печать  
 
Перейти в:  

Powered by SMF 1.1.21 | SMF © 2006, Simple Machines

Joomlaforum.ru is not affiliated with or endorsed by the Joomla! Project or Open Source Matters.
The Joomla! name and logo is used under a limited license granted by Open Source Matters
the trademark holder in the United States and other countries.

LiveInternet