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

Aleks.Denezh

  • Живу я здесь
  • 3406
  • 428 / 4
А зачем второй пустой атрибут в getCmd?
Значение по умолчанию
Пример $view = $input->getCmd('view', 'myview');
если передана в REQUEST переменная view то вернет то что передали, если не передана то вернет myview
*

Fedor Vlasenko

  • Живу я здесь
  • 3845
  • 733 / 7
  • https://fedor-vlasenko.web.app
Федор, но дальше ты уже не можешь использовать filter_input:
Код: php
$_REQUEST['task'] = 'add';

print_r($_REQUEST) выдаст add, но если в task до этого было установлено другое значение, то filter_input(INPUT_GET, 'task', FILTER_SANITIZE_STRING); выдаст не add, а другое значение.
filter_input не работает с $_REQUEST, для этого достаточно других функций
Код: php-brief
$_REQUEST['task'] = 'test';
//здесь если в массиве $_REQUEST не будет task ошибки не будет
$task = filter_var($_REQUEST['task'], FILTER_SANITIZE_STRING);
var_dump($task);
$task = filter_var_array ( $_REQUEST, array('task'=> FILTER_SANITIZE_STRING));
var_dump($task);
die;
;D
подведу итог класс Jinput
Код: php-brief
$_REQUEST['task'] = 'test'; //записываем
$task = filter_var($_REQUEST['task'], FILTER_SANITIZE_STRING); //считываем
//$option = filter_input(INPUT_GET, 'option', FILTER_SANITIZE_STRING); //90% всех благ
*

b2z

  • Глобальный модератор
  • 7290
  • 778 / 0
  • Разраблю понемногу
Вообщем ты предлагаешь работать с чистым PHP. Не гибко. Ты ограничен существующими методами PHP.

Возьмем тот же JFilterInput - разве в PHP есть все методы, которые реализованы в этом классе?

Плюс, какой бонус в том, чтобы использовать две строки вместо одной $input->getCmd('task', 'default')? И самое главное, как передавать значение по умолчанию?
*

Fedor Vlasenko

  • Живу я здесь
  • 3845
  • 733 / 7
  • https://fedor-vlasenko.web.app
А зачем второй пустой атрибут в getCmd?
А вот это уже "сахар" Женя
Иначе тебе как минимум пришлось использовать тернарный оператор или конструкцию if  else
Код: php-brief
//если a не определена, равна Null, "" выведет 10
$a = $a ? $a: 10;
var_dump($a);
*

Fedor Vlasenko

  • Живу я здесь
  • 3845
  • 733 / 7
  • https://fedor-vlasenko.web.app
Возьмем тот же JFilterInput - разве в PHP есть все методы, которые реализованы в этом классе?
Со значением Саша ошибся, получать данные. Это не большая проблема ответ выше
А фильтров больше, причем можешь сам писать, а когда есть функция обратного вызова, то тут вообще руки развязаны
http://www.php.net/manual/ru/filter.filters.php
*

b2z

  • Глобальный модератор
  • 7290
  • 778 / 0
  • Разраблю понемногу
Цитировать
А фильтров больше, причем можешь сам писать
То есть все равно придется создавать какой-то класс-билиотеку, который будет содержать в себе эти фильтры. Вообщем не знаю, но твое предложение мне лично кажется очень спорным решением.
*

Fedor Vlasenko

  • Живу я здесь
  • 3845
  • 733 / 7
  • https://fedor-vlasenko.web.app
Зачем создавать библиотеку она ведь уже есть. Ведь все равно ты фильтры и наименования в памяти не хранил. Либо в доки смотрел, или редактор подсказал. Дело в том, что функции нативные и не требуют подключения ядра Joomla
Классы можно эти не использовать (ведь они и не мешают) а вот в формах там да надо будет думать, чтобы расширить или переделать
*

Arkadiy

  • Гуру
  • 5317
  • 463 / 2
  • Крепитесь, други.
Федор, я всеравно не понимаю зачем писать много когда можно писать мало. Из-за призрачного выигрыша в скорости? Призрачный он потому, что самые тяжелые операции - выборка данных и т.п., они занимают львиную долю времени отдачи страницы, При ускорении в 2 раза, даже в бесконечное число раз операции фильтрации, в общей массе прирост производительности будет в пределах погрешности измерений, т.е. ничтожен. Никакого смысла мудрить в этом месте нет.
Плюс к тому есть стандарты программирования и под разные фреймворки они разные. Для легкой поддержки кода другими программистами необходимо придерживаться стандартов, если каждый будет писать как придется, программисту, получившему в поддержку сию кашу, останется только застрелиться.
*

Fedor Vlasenko

  • Живу я здесь
  • 3845
  • 733 / 7
  • https://fedor-vlasenko.web.app
Arkadiy, не как придется, а на чистом языке. Человек знающий php , будет читать его, понимать с легкостью без знаний фреймворка. И почему это много, оно работает без использования постороннего кода
Код: php-brief
$option = filter_input(INPUT_GET, 'option', FILTER_SANITIZE_STRING);
если нужно получить значение option для условий то почему бы  и нет. И это не каша ибо каждая переменная здесь названа логично и понятливо. Если полностью читал топик то в Google я им привел ***код который они из версии в версию включают и это из-за того развитого бюрократизма их команды. Проект с миллионным бюджетом, жадничают нанять профессионалов для рефакторинга. Отдать проект на аутсорсинг.
А тыкаешь носом в код, так напиши в баг трекер. Пусть платят за ошибки быстрее соберут. Это политика нормальных, крупных компаний. Которые ценят своих поклонников их время и знания.
*

varX

  • Живу я здесь
  • 2450
  • 141 / 5
  • разработка компонентов
Понятно, как бы мы не спорили, все останутся при своих привычках.  Но дискуссия интересная. Какие-то весомые аргументы в пользу фреймворка есть? Я пока только два вижу.
Это более безопасный код у начинающих (например, юзай JFactory::getSession(); вместо $_SESSION[]; и не переживай про переопределение кем-то глобальных массивов);
И второй это возможность прописать собственные параметрыв в общие классы фреймворка (что обеспечивает  интеграцию между расширениями).
Разработка и ремонт. VirtueMart. JoomShopping. Свои компоненты. Принимаю заявки на plasma-web.ru.
*

b2z

  • Глобальный модератор
  • 7290
  • 778 / 0
  • Разраблю понемногу
Федор, ну никто же не мешает использовать filter_input. Используй на здоровье, но JInput при этом грохать нет смысла, у него все же есть два плюса перед filter_input:
- позволяет получать переменные с установкой значения по умолчанию
- позволяет работать с измененными супермассивами
*

KoreshS

  • Новичок
  • 9
  • 1 / 0
Между прочим разработчики бы могли бы и конструкцию сделать
Код
JFactory::getInput();
Ведь на то он и Factory(фабрика), чтобы основные функции в себе содержать.
*

Arkadiy

  • Гуру
  • 5317
  • 463 / 2
  • Крепитесь, други.
application содержит в себе input. Когда надо оба пишу так:
Код: php
$app = JFactory::getApplication();
$var = $app->input->getInt('var', 0);
Если нужен только input, то
Код: php
$input = JFactory::getApplication()->input;
$var = $input->getInt('var', 0);
*

Septdir

  • Живу я здесь
  • 3370
  • 168 / 4
Я всегда делаю $app = JFactory::getApplication();
Ну а потом если нужен input то $app->input и т.д Если в редакторе нормальная подсветка кода, то читаеться легко.
Не можете справиться с задачей сами пишите, решу ее за вас, не бесплатно*.
*Интересная задача, Деньги или Бартер. Натурой не беру!
CodersRank | Контакты | Мой GitHub | Workshop
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Использование JFactory в подключаемых php файлах

Автор oopros

Ответов: 3
Просмотров: 2231
Последний ответ 29.11.2016, 15:25:12
от b2z
Вопрос по PROFILER и JFactory

Автор Haybul

Ответов: 2
Просмотров: 1599
Последний ответ 02.08.2014, 04:33:57
от Haybul
[Решено] Что лучше, что правильно JHtml::метод(параметры) или JHtml::_(метод, параметры)?

Автор MansEL

Ответов: 7
Просмотров: 1322
Последний ответ 01.07.2014, 18:24:15
от b2z
Joomla 3.1 не находит JRequest. Не работает AJAX!

Автор justquestion

Ответов: 2
Просмотров: 2798
Последний ответ 11.10.2013, 12:42:08
от Aleks.Denezh
Как прикрепить файл к письму через форму input type="file"?

Автор DiEV

Ответов: 15
Просмотров: 9127
Последний ответ 09.06.2013, 10:02:10
от Aleks.Denezh