Новые компоненты для yii2 Google Material design components

Общие вопросы по использованию второй версии фреймворка. Если не знаете как что-то сделать и это про Yii 2, вам сюда.
Ответить
youra_halloween
Сообщения: 6
Зарегистрирован: 2021.07.10, 13:28

Новые компоненты для yii2 Google Material design components

Сообщение youra_halloween »

Добрый день!

Пол года назад занялся портированием компонентов Google Material design components на php.
В какой то момент решил воспользоваться материальным дизайном и начал пользоваться mdc.
Долго разбирался что и как, много общался с гугловыми разрабами, плевался слюной и много матерился.
Но все же решил, что в будущем откажусь от bootstrap и перейду на mdc.
Так началась разработка компонентов для php. Первоначально компоненты должны были использоваться в любом фреймворке или просто на php. Но в итоге перешел с шаблонизаторов на класс HTML, потом добавился ArrayHelper, ActiveForm, ActiveField, GridView.
В целом компоненты можно использовать в любом фреймворке.

Т.к. компоненты используются исключительно в мобильном исполнении, о чем пришлось не раз спорить с гугловыми разрабами. Я начал свой проект MDC основанный на Google MDC, доработанный под использование в десктопах и мобильных приложениях. Сделал использование компонентов удобнее. При добавлении нового компонента, допустим переключателя:

Код: Выделить всё

echo Radio::one('Radio1', ['name' => 'group1'])
    ->setId('radio1')
    ->render();
Автоматически добавится код

Код: Выделить всё

app.controls.add('radio1', 'radio', []);
Программисту не надо заботится о создании компонента.
Получить доступ к компоненту можно так:

Код: Выделить всё

app.controls.item('radio3').checked = true;
app.controls.item('radio3').disabled = true;
Так же впакет входят библиотеки для xhr запросов, работой с формой и таблицами. При работе с формой необходимо использовать ActiveForm входящий в пакет. При этом автоматом добавится такая строка кода:

Код: Выделить всё

app.controls.addObject(app.utils.FormProcessing('loginform',{"control":"submit","unblock":false}));
Получить доступ к данным достаточно просто:

Код: Выделить всё

app.controls.item('loginform').onSuccess(response => {
    location.href = response.data.url;
});
Рассмотреть разные случаи при взаимодействии с формами и таблицами просто не остается времени.

Документацию своял за два дня.

И так ссылки на документацию:
Github project Documentation Google MDC
Google Components
Мои разработки
Generate MDC template
Material Components for the php or yii2
Demos

Проект Open source. На данный момент проект завис, т.к. нет денег, нечего есть )
Проект хотелось уже выложить в открытый доступ.

Больше примеров и документации по ссылкам.

Всем спасибо!
Ответить