Подготовка к миграции CakePHP 3.4 на CakePHP 4.0

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

В настоящее время в моем проекте мы использовали многие из этих функций, упомянутых ниже.

  1. Должны ли мы заменить все $ this-> Form->вход[‘описание’] в $ this-> Form->контроль[‘описание’]?
  2. Когда вы упомянули, что Response :: download () станет Response :: withDownload (). Вы имеете в виду, что мне нужно изменить $ this-> response-> download ($ filename) на $ this-> response-> WithDownload ($ filename)?
  3. У нас есть эта строка кода $ this-> primaryKey (‘id’) в нашем Table.php, и вы упомянули, что она является частью устаревшего списка и заменена методами getX () и setX (). Что ты имеешь ввиду? Я надеюсь, что вы можете дать мне пример.
  4. Приведенный ниже код находится в контроллере, и я заметил, что вы упомянули hydrate () (теперь enableHydration () / isHydrationEnabled ()). Какие изменения нам нужно сделать ниже?

    $CustomersordersTable-> find()
    -> select(['order_id'=>'Customerorders.order_id'])
    -> where(['id IN' => $studentlist])
    -> hydrate(false)
    -> toArray();
    
  5. Я также понимаю, что $ this-> request-> data [‘id’] устарела, и нам нужно $ this-> request-> getData (‘id’). Однако, при добавлении деталей, сейчас мы не можем присвоить случайное значение id этому $ this-> request-> getData (‘id’). Я использовал присвоить случайный идентификатор с ниже, прежде чем сохранить в таблице.

    $this->request->data['id'] = TableRegistry::get('Customers')->find('guid');
    

У вас есть предполагаемая дата выхода CakePHP 4.0?

1

Решение

  1. да
  2. да
  3. Просто вы используете set-методы для установки значения и получения для получения значения. Как setTable ($ name).
  4. enableHydration ()
  5. Данные запроса никогда не должны были изменяться напрямую. Не до 3.4 и не после. Получите данные из запроса, измените их, делайте с ними все, что хотите. Объекты запроса в 3.4 являются неизменный.

У CakePHP4 нет даты выхода, просто дорожная карта без каких-либо дат. CakePHP разрабатывается волонтерами, поэтому работа выполняется, когда у людей есть время и настроение для работы над ней. Вклад приветствуется. 🙂

2

Другие решения

5.

$guid = TableRegistry::get('Customers')->find('guid');
$newData = $this->request->withData('id', $guid);

// получить новые данные запроса

$newData->getData('id');
0