0 Пользователей и 1 Гость просматривают эту тему.
  • 9 Ответов
  • 2746 Просмотров
*

SmokerMan

  • Гуру
  • 5293
  • 720 / 26
form.php
« : 09.01.2016, 14:37:16 »
libraries/legacy/model/form.php
http://joxi.ru/Drla49S4yNGJmP
Это косяк или так и задумано?
По идее данные в плагин тоже должны передаваться по ссылке, что бы с ними можно было что-то сделать, а не тупо наблюдать их
*

al-teen

  • Глобальный модератор
  • 2385
  • 224 / 10
  • im
Re: form.php
« Ответ #1 : 09.01.2016, 14:52:32 »
Ссылки в аргументах - само по себе дерьмо.
*

SmokerMan

  • Гуру
  • 5293
  • 720 / 26
Re: form.php
« Ответ #2 : 09.01.2016, 14:56:29 »
Ссылки в аргументах - само по себе дерьмо.
с чего это?
допустим мне надо плагином в этом событии какие-то данные поправить, каким макаром я это сделаю по другому?
*

al-teen

  • Глобальный модератор
  • 2385
  • 224 / 10
  • im
Re: form.php
« Ответ #3 : 09.01.2016, 15:23:15 »
с чего это?
допустим мне надо плагином в этом событии какие-то данные поправить, каким макаром я это сделаю по другому?
Во первых ссылки отъедают производительность, во вторых, ты ведь получаешь ссылку на переменную или объект, а не их значение. Следовательно, функция получает доступ к изменению значения самой переменной, на которую получает ссылку. А это может быть не безопасно и в целом нарушает инкапсуляцию. Тем более, что в месте вызова функции аргументу не присваивается апмерсанд, поэтому ссылка остается неясной для того, кто будет поддерживать такой код.

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

robert

  • Живу я здесь
  • 4974
  • 457 / 20
Re: form.php
« Ответ #4 : 09.01.2016, 16:00:38 »
По идее данные в плагин тоже должны передаваться по ссылке, что бы с ними можно было что-то сделать, а не тупо наблюдать их
Тем более, что в месте вызова функции аргументу не присваивается апмерсанд
Цитировать
Начиная с PHP 5.4.0 передача переменной по ссылке стала невозможна, поэтому использование этого приема приведет к фатальной ошибке.
http://php.net/manual/ru/language.references.pass.php
Или я чего-то недопонимаю?
« Последнее редактирование: 09.01.2016, 16:16:37 от robert »
Не будь паразитом, сделай что-нибудь самостоятельно!
*

al-teen

  • Глобальный модератор
  • 2385
  • 224 / 10
  • im
Re: form.php
« Ответ #5 : 09.01.2016, 16:15:54 »
Там же
Цитировать
В вызове функции отсутствует знак ссылки - он есть только в определении функции.
*

robert

  • Живу я здесь
  • 4974
  • 457 / 20
Re: form.php
« Ответ #6 : 09.01.2016, 16:19:41 »
Там же
Цитировать
В вызове функции отсутствует знак ссылки - он есть только в определении функции.
Ну да, ведь тема об этом?
Не будь паразитом, сделай что-нибудь самостоятельно!
*

al-teen

  • Глобальный модератор
  • 2385
  • 224 / 10
  • im
Re: form.php
« Ответ #7 : 09.01.2016, 16:24:14 »

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

SmokerMan

  • Гуру
  • 5293
  • 720 / 26
Re: form.php
« Ответ #8 : 09.01.2016, 17:35:54 »
В этом, только наверное существуют более безопасные варианты передать данные в плагин. Что-то типа JRequest или jimport
причем тут JRequest или jimport?)
JRequest - это тот же $_REQUEST
jimport - это тот же include

здесь же данные выбираются из базы, и потом передаются в форму
и надо что-то сделать с этими данными, перед тем как они отправятся в форму
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться