Александр Воробьев

Александр Воробьев
Рейтинг
56
Регистрация
03.02.2020
MrPi #:
Для ДЕБАГА важно. Вам важно писать на php? Вот есть нативные вызовы, синтаксический сахар, конструкции. Это нативные. Это база. Вы пришли в школу и вас учат, что 2x2=4, а после, какой-то фреймворк решил, что 5. Какая разница, ведь выполняет?
Стоп. Здесь речь уже ведь про результат выполнения, а не то как это выглядит при вызове. В этом случае глядим в контракт фреймворка, видим что там с поправкой на ветер и проходим мимо.
MrPi #:

$user->getName() - т.е. при таком вызове вы не обращаетесь к экземлпляру класса $user с публичным методом getName, а вызываете условно СТАТИЧНЫЙ метод abracadabra или не метод, а объект?

или всё же метод getName() где через QB получаете значение поля user из БД?

Ну там, если полностью и в одном месте (можно оперировать коллекциями, есть вариации, но для примера), то как то так:

$user = UserTable::query()
  ->addSelect('name')
  ->addSelect('id')
  ->where('lastname','Petrov')
  ->fetchObject();

echo $user?->getName();

Кстати, вспомнил где на практике эта магия мне как раз таки "зашла".  Больше всего я работаю с Битрикс. Для того что бы создать свою таблицу наследуешься от DataManager, описываешь поля, потом консолькой создаешь файл аннотаций. все. Далее можно $user->setName(), $user->getName(). (вот whereName кстати нет :) ) мне нравится. подсветка есть все ок. Альтернатива?

1. использовать $user->get('name') (главное опечатку не допустить и помнить какие поля есть)

2. Наплодить геттеров. которые будут вызывать get и первого пункта

.... тоже с сетерами

MrPi #:

Представь, что в php ты присваиваешь переменной значение $name = 'Johny', а по факту создал класс John(). Или пишешь new Animals() , а по факту экранировал переменную - echo $name.

Или все равно не ясно?

Тут надо оценивать именно результат.  Допустим $name= ' johny' создает класс. ок. мне важно что бы  echo 'Hello',$name;  выдало "Hello johny". а там, как это выглядит под капотом пофиг.
MrPi #:
Вы видиммо не понимаете о чем я пишу? Магия не в том, что метод возвращает. Магия не в том, что ты не понимаешь. Магия в том, что смотря на вызов ты ожидаешь одно, а получаешь другое. Animals::dog('woof') - кажется в класс Animals есть статичный метод dog. Лезешь в класс, а там нет его. Есть колбэк и ты уже работаешь не с классом, а с объектом. 
да но есть __call  нативный метод языка. (сам если честно им не пользуюсь, наверно только раз как то применил - деталей не помню). Ведь все равно: что значит "ожидаешь"? я ожидаю результат выполнения команды, она выполняется.... как там она под капотом __call или 100500 геттеров важно ли?.
MainWindow::MainWindow(QWidget *parent) :
    QMainWindow(parent),
    ui(new Ui::MainWindow)
{
    ui->setupUi(this);

    ui->webView->page()->setLinkDelegationPolicy(QWebPage::DelegateAllLinks);
    connect(ui->webView, &QWebView::linkClicked, this, &MainWindow::slotLinkClicked);
}

void MainWindow::slotLinkClicked(QUrl url)
{
    ui->lineEdit->setText(url.toString());
    ui->webView->load(url);
}

Ну магия же. несколько строк и у нас полноценный браузер (ну тут источник url только не задан). Разве не магия?

Я ведь могу сказать: "Это синтаксис фреймворка". "точка" :)
MrPi #:
Что здесь, как думаете? Статичный, публичный метод класса?)

Мне в ларе фасады не нравятся. Я ими не пользуюсь :) Это с одной стороны. А с другой: какая разница? Мы этому методу доверяем. Где та грань где кончается магия и начинаются "синтаксис" и "встроенные"?

Вы пользуетесь какими либо расширениями на php? Или пишите на других языках и используете ли там закрытые либы? Если да, то вас не смущает, что вы даже не знаете, что там под капотом?

В общем для поговорить -ну в принципе вопрос для холивара (потому что полезно это или нет - вкусовщина), а если "не шашечки, а ехать", то мы либо берем инструмент, либо единственный выход - писать свои велосипеды.

MrPi #:
Вы путаете мягкое с горячим. Синтаксис языка и магические методы фреймворка

Ну я  ж не зря упомянул, для примера, boost, Qt... Любой фреймворк, любая библиотека что то "скрывает", по сути в этом его задача  и есть. А там уж дело каждого, один называет это "магический метод [имя_инструмента]", другой "синтаксис [имя_инструмента]"

Разве нет?

inkubus #:
к дилеру или просто тех центр?
К диллеру. Эта вообще гарантийная, но я все свои авто всегда на дилере обслуживаю даже после окончания гарантии
Всего: 627