Приемлем ли такой фрагмент кода например в SaaS системе за 300К USD:
$id = Create::create('auth', array(
'email' => "'".$form['login']."'",
'password' => "'".$form['password']."'",
'hash' => "'".md5($form['login'].$form['password'])."'",
'blocked' => 0
));
_____________
Трус не играет в хокей
T1grOK
22.01.2015 - 16:31
Create::create
<_<
_____________
Mysql, Postgresql, Redis, Memcached, Unit Testing, CI, Kohana, Yii, Phalcon, Zend Framework, Joomla, Open Cart, Ymaps, VK Api
Цитата (T1grOK @ 22.01.2015 - 16:31) |
Create::create <_< |
Ну да! У класса Create есть функция create. Это проблема? Отдельно интересно мнение по определению массива в параметре функции.
_____________
Трус не играет в хокей
McLotos
22.01.2015 - 17:00
По-моему как раз в части массива всё норм.
А вот Create::create это жесть. И если мне не изменяет память, то метод класса, у которого имя совпадает с именем класса автоматически становится его конструктором
_____________
программирование - инструмент для решения конкретных задач, любая попытка спроектировать что-то универсальное приведет к провалу.©paul85
В любом случае тебе прийдётся пройти путь изобретения велосипеда, который прошли другие, только причиной твоего изобретения будет непонимание принципов работы велосипеда изобретённого другими людьми.©SlavaFr
jQuery это попытка использовать АН-225 для перевозки зубочистки
sergeiss
22.01.2015 - 17:11
Цитата (stump @ 22.01.2015 - 16:27) |
'email' => "'".$form['login']."'", |
Какой смысл добавлять тут кавычки, а также и в других строках?
_____________
*
Хэлп по PHP*
Описалово по JavaScript *
Хэлп и СУБД для PostgreSQL*
Обучаю PHP, JS, вёрстке. Интерактивно и качественно. За разумные деньги. *
"накапливаю умение телепатии" (С) и "гуглю за ваш счет" (С)
Zzepish
22.01.2015 - 17:38
McLotos
а вот тут интересный же вопрос: метод же статический, видимо
Цитата (sergeiss @ 22.01.2015 - 17:11) |
Цитата (stump @ 22.01.2015 - 16:27) | 'email' => "'".$form['login']."'", |
Какой смысл добавлять тут кавычки, а также и в других строках?
|
Этот массив есть параметры и значения insert запроса. Чтобы при формировании запроса кавычки были на своих местах я их добавляю сразу.
Вопрос конечно составлен двояко. Можно ли так писать код можно ответить - если работает то можно, но меня интересует с точки зрения серьезной, масштабной, качественной разработки пройдет ли такой код ревью для вставки его в продакшен?
Сейчас популярны самые разные генераторы которые генерируют то массивы, то запросы, то все подряд генерируют. На фоне всех возможных генераторов такой на ревью у сеньора как будет смотреться?
_____________
Трус не играет в хокей
Цитата (stump @ 22.01.2015 - 15:37) |
Цитата (T1grOK @ 22.01.2015 - 16:31) | Create::create <_< |
Ну да! У класса Create есть функция create. Это проблема? Отдельно интересно мнение по определению массива в параметре функции.
|
Да, это проблема.
Другого программиста эта конструкция заставит заглянуть в 2 места, чтобы понять что такое Create, и как работает метод.
Order::create или Issue::create сразу дает понять что создается.
_____________
VPS от 5$, первые 2 месяца -
бесплатно.
Michael
22.01.2015 - 18:39
выглядит не особо...
По старому как то, да и где mysql_real_escape_string? Ксли уж автоматизировать то кавычки можно автоматом подставлять если аргумент строковый, а не так некрасиво как ты.
Есть уже PDO, там не надо самому в ручную подставлять.
p.s. А ник мне твой нравится, самокритично.
_____________
There never was a struggle in the soul of a good man that was not hard
Invis1ble
22.01.2015 - 18:51
Без контекста сложно что-то сказать, кроме уже замеченной проблемы с именованием.
Навскидку, соль в хэше плохая.
_____________
Профессиональная разработка на заказЯ на GitHub |
второй профиль
Cлёту
class User
{
const BLOCKED = 0;
const ACTIVE = 1;
@var
protected $properties = array();
@param @param
public function create($login, $password)
{
$fields = array(
'email' => $login,
'password' => $password,
'hash' => $this->getHash($login, $password),
'blocked' => self::ACTIVE
);
}
@param @param @return
private function getHash($login, $password)
{
return md5($login . $password);
}
}
$user = new User();
$user->create($form['login'], $form['password']);
Быстрый ответ:
Powered by dgreen
Здесь расположена полная версия этой страницы.