Следующий выпуск Agile UI совпадет со следующим выпуском Agile Data и введением некоторых «надстроек», которые некоторые могут назвать «очень важными» для веб-приложений. Я хотел написать об этих грядущих функциях и предоставить несколько ссылок, по которым вы можете следить за разработкой и, возможно, даже помочь.

Пароли (https://github.com/atk4/data/pull/259)

В настоящее время ['type'=>'password'] влияет только на то, как пароль отображается в форме и в таблице, но это будет дополнительно расширено внутри Agile Data, чтобы полагаться на хеширование паролей для хранения паролей в зашифрованном виде.

Это изменение не повлияет на пользовательский интерфейс. Чтение пароля из базы данных всегда будет содержать «null», а сохранение пароля «null» не изменит его. Постоянство пользовательского интерфейса преобразует «» в ноль, чтобы вы не сбрасывали свой пароль на пустой, но с помощью $ model [‘pass’] = »” вы все равно можете установить его таким образом.

Agile Data также распознает тот факт, что ваш пароль может храниться в незашифрованном виде, и зашифрует его для вас в следующий раз, когда вы загрузите / сохраните модель.

Миграции (https://github.com/atk4/schema/pull/4)

Возможно, вы не знаете, что существует отдельный проект, реализующий миграции поверх DSQL (https://github.com/atk4/dsql). Первоначально он был создан как доказательство того, что язык DSQL может быть расширен.

На этот раз он получает поддержку интеграции для моделей и возможность обнаруживать существующую структуру базы данных. Итак, что-то вроде этого создайте или измените свою базу данных в соответствии со структурой модели User:

$m = new \atk4\schema\Migration(new User($db));
$m->migrate();

SQLite плохо поддерживает изменение столбцов (поэтому добавляются только новые поля), но MySQL сможет настраивать поля без потери данных. Остальную реализацию базы данных я оставлю участникам.

Мастер (https://github.com/atk4/ui/issues/273)

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

Консоль и ProgressBar

Возможно один или отдельные элементы, но они будут реализованы в той или иной форме. Учитывая, что у нас уже есть довольно крутая реализация SSE, оба компонента пользовательского интерфейса можно было бы просто дополнить.

Оба будут предлагать интерактивный вывод вашего обратного вызова PHP в режиме реального времени.

DataManager (https://github.com/atk4/ui/issues/272)

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

DataManager должен давать вам возможность также организовывать элементы, на которые есть ссылки, по вкладкам.

Дополнение для входа (https://github.com/atk4/login)

Надстройка входа позволит вашему приложению создать базовый пользовательский интерфейс - пользователи могут входить в систему, выходить из системы, регистрироваться, изменять свои пароли и т. Д. Это не основная функция Agile UI или Agile Data, поскольку функциональность, предоставляемая надстройкой аутентификации, является просто слишком высокого уровня.

Учебное пособие - установщик + администратор

Наконец, со всеми новыми захватывающими функциями и новыми дополнениями я смогу создать новое захватывающее руководство. Начиная с installer.php:

  1. Показать приветственное сообщение пользователю
  2. Показать форму, в которой пользователь может предоставить учетные данные для базы данных
  3. Запустите миграцию для моделей, одновременно показывая ProgressBar в реальном времени.
  4. Показать CRUD для модели User, что позволит вам добавить несколько пользователей.

Другой файл, admin.php этого руководства, будет полагаться на надстройку «Вход» для аутентификации, но может содержать довольно обширную многоуровневую систему администрирования с использованием DataManager, ориентированную на ваши модели и их ссылки.

Я очень рад новым функциям и с нетерпением жду публикации этого руководства, поэтому обязательно следуйте за мной, чтобы попробовать его в первую очередь!