X   Сообщение сайта
(Сообщение закроется через 3 секунды)



 

Здравствуйте, гость (

| Вход | Регистрация )

Открыть тему
Тема закрыта
> ЛП: Генерация кода в Yii2
fedornabilkin
fedornabilkin
Topic Starter сообщение 18.2.2018, 0:46; Ответить: fedornabilkin
Сообщение #1


Перед тем, как приступить к генерации кода, необходимо ознакомиться с разделом "Структура приложения". Начиная с темы "Обзор" и заканчивая темой "Расширения", чтобы иметь представление о том, как устроен Yii2, как протекает жизненный цикл, какие основные точки участвуют в обработке запроса.

Самым интересным генератором (я так думаю) является CRUD-генератор (create, read, update, delete). Для начала создадим миграцию, с помощью которой создадим таблицу posts (id, title, content, created_at, updated_at).

Зайдем в режим mysql и убедимся в том, что таблица существует (site название БД и имя пользователя).

mysql -u site -p (после команды надо ввести пароль)
use site (выбор базы, с которой будем работать)
show tables; (список существующих таблиц)
show columns from post; (список столбцов (полей) в таблице)
exit (корректно выходим)

Прикрепленное изображение


Если все в порядке, переходим на страницу генератора модели http://site.dev/gii/model и в полях указываем имя таблицы и название класса. Нажимаем кнопку Preview (при необходимости изучаем информацию), а затем Generate.
Прикрепленное изображение


Если скажет, что не может создать файл, то надо будет выставить права на директорию. Так как мы генерируем файлы через веб-интерфейс, то и пользователь будет www-data (это nginx), а у него нет прав на запись в эту директорию.

sudo chmod 0777 frontend/models/ (находимся в корне проекта)

После создания модели (файла с классом модели) переходим на страницу CRUD-генератора http://site.dev/gii/crud и указываем сгенерированный файл модели, заполняем поля для создания файла класса модели для поиска, файла класса контроллера и файлов представления. Нажимаем кнопку Preview, смотрим какие файлы будут созданы и создаем их. Если не может создать файлы, выставляем права на frontend/controllers/ и frontend/views/
Прикрепленное изображение



В пути к файлам вместо app указываем frontend

В созданных файлах необходимо изменить namespace и пути в use согласно стандарту PSR-4, если вдруг вы их указали неправильно при генерации.
Созданные файлы:
  1. frontend\controllers\PostController.php

  2. frontend\models\Post.php

  3. frontend\models\PostSearch.php

  4. frontend\views\post\*

Грубо говоря в namespace указываем путь, по которому располагается наш файл. Для PostController.php namespace frontend\controllers; для Post.php namespace frontend\models;
В use указываем путь и название файла без .php (по стандарту имя класса должно совпадать с именем файла).

Если все правильно сделали, то заходим по адресу http://site.dev/post и видим страницу с неслабым функционалом. Т.к. в таблице у нас нет еще ни одной записи, то функционал мы применить не можем. Поэтому создаем несколько записей (5-6) и тестируем результат волшебника gii.

С помощью генератора мы создали страницу со списком записей таблицы post (плюс пагинация), страницу добавления новой записи, страницу редактирования, страницу просмотра, возможность удаления записи. А также доступна сортировка по одному из полей и фильтрация по нескольким полям (поиск).

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

Продолжаем читать документацию по yii2.


Замечание модератора:
Эта тема была закрыта автоматически ввиду отсутствия активности в ней на протяжении 100+ дней.
Если Вы считаете ее актуальной и хотите оставить сообщение, то воспользуйтесь кнопкой
или обратитесь к любому из модераторов.
0
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
Открыть тему
Тема закрыта
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0


Свернуть

> Похожие темы

  Тема Ответов Автор Просмотров Последний ответ
Горячая тема (нет новых ответов) Профессиональная веб-разработка (Laravel, Yii2, Symfony, Wordpress, Vue.js, Nuxt.js)
Хороший код с оптимизацией по скорости. Сайты и лендинги "под клю
33 Nell 30016 5.7.2022, 21:24
автор: karambas
Открытая тема (нет новых ответов) Тема имеет прикрепленные файлыСделаю движок для сайта на Yii2
10 icoder 7101 2.7.2021, 19:48
автор: nekokatalog
Открытая тема (нет новых ответов) Настройка таргетированной рекламы Facebook+ Instagram, VK. Генерация лидов
0 papic 818 1.2.2021, 8:32
автор: papic
Открытая тема (нет новых ответов) Рерайтинг и генерация.
Работаю с рерайтингом, размножением.
0 Tolikcool 992 27.4.2020, 19:45
автор: Tolikcool
Открытая тема (нет новых ответов) Сделать доработки - Yii2
6 prohorlaz 1527 26.9.2019, 0:46
автор: prohorlaz


 



RSS Текстовая версия Сейчас: 20.4.2024, 20:01
Дизайн