Пожалуйста, прочитайте наше Руководство контрибьютора.
- Сделайте копию файла
config/params.dist.phpи переименуйте его вconfig/params.php - Сделайте копию файла
config/web-local.dist.phpи переименуйте его вconfig/web-local.php - Сделайте копию файла
.env.docker.distи переименуйте его в.env - Установите Docker
- Запустите
docker-compose up -d - Запустите
docker-compose exec php composer install - Запустите
docker-compose exec php ./yii migrate
Сайт будет доступен по адресу http://localhost:8000.
Adminer будет доступен по адресу http://localhost:8080.
- Сделайте копию файла
config/params.dist.phpи переименуйте его вconfig/params.php - Сделайте копию файла
config/web-local.dist.phpи переименуйте его вconfig/web-local.php - Сделайте копию файла
.env.distи переименуйте его в.env - Установите правильные значения в файле
.envдля вашего окружения - Установите MySQL 8.X:
- Создайте новую базу данных MySQL InnoDB ("opensourcewebsite" по умолчанию), с кодировкой "utf8mb4_0900_ai_ci" для вашего окружения
- Отключите sql_mode=ONLY_FULL_GROUP_BY
- Установите веб-сервер Nginx или веб-сервер Apache:
- Установите корневую папку веб-сервера на
web
- Установите корневую папку веб-сервера на
- Установите PHP 7.4.X
- Установите XDebug
- Установите Composer
- Запустите
php composer.phar install - Запустите
php yii migrate
Фикстуры используются для загрузки "фейкового" (не реального) набора данных в базу данных, который может быть использован для тестирования или поможет вам в предоставлении некоторой интересной информации пока вы разрабатываете своё приложение.
После загрузки фикстур будут доступны учётные данные пользователей.
Внимание! После загрузки фикстур все текущие записи базы данных будут удалены!
Загрузка фикстур:
php yii fixture/load "*"Выгрузка фикстур:
php yii fixture/unload "*"Контроллер генератора наследуется от \yii\console\controllers\FixtureController. Так что эта часть документации - Загрузка фикстур - может быть использована для понимания синтаксиса команд.
Новые генераторы для моделей могут быть добавлены в папку modules\dataGenerator\components\generators.
Показать справочную информацию:
php yii dataGenerator/default/load -hСгенерировать все доступные модели с задержкой в 2 секунды:
php yii dataGenerator "*"Сгенерировать 5 User и 5 Contact моделей:
php yii dataGenerator "User, Contact" --limit=5Сгенерировать User и Contact модели с задержкой в 5 секунд:
php yii dataGenerator "User, Contact" --interval=5Сгенерировать все модели кроме Contact с задержкой в 5 секунд:
php yii dataGenerator "*, -Contact" --interval=5Посмотреть данные об отладке можно здесь: localhost:8000/debug/.
(Если вы используете Docker, нужно изменить эту строку в config/web.php).
Используйте эти методы класса Yii для логирования сообщений различных уровней важности:
Логи можно посмотреть в файле runtime/logs/web.log, или здесь: http://localhost:8000/debug/default/view?panel=log.
Чтобы активировать пошаговую отладку с помощью Xdebug в вашей среде разработки нужно:
-
Установить следующие переменные окружения в
.envфайле:PHP_ENABLE_XDEBUG=1 XDEBUG_CONFIG="client_host=172.17.0.1 client_port=9005 start_with_request=yes idekey=PHPSTORM log_level=1 log=/app/xdebug.log remote_enable=true remote_autostart=true discover_client_host=true remote_log=/app/remote.xdebug.log" XDEBUG_MODE=develop,debug
-
Задать порт отладки для Xdebug в вашей среде разработки равным
9005. (File | Settings | PHP | Debug для PHPStorm). -
Запустить
docker-compose up -d.
P.S. Тестировалось только в PHPStorm.
- Сделайте копию файла
.env.test.distи переименуйте его в.env.test - Установите правильные значения в файле
.env.testдля тестового окружения - Создайте новую базу данных MySQL InnoDB ("opensourcewebsite_test" по умолчанию) с кодировкой "utf8mb4_0900_ai_ci" для тестового окружения
- Запустите
php tests/bin/yii migrate - Запустите
php vendor/bin/codecept runorphp vendor/bin/codecept run --coverage --coverage-xml --coverage-html
Мы рекомендуем использовать ngrok - безопасные интроспективные туннели к localhost, для локальной разработки и тестирования Telegram-ботов. Telegram webhooks требуют ваш публичный URL с HTTPS. ngrok - это инструмент, который сделает ваше локальное окружение доступным в Интернете.
Также вы можете воспользоваться Localtunnel и Cloudflare Tunnel для того, чтобы принимать Telegram webhooks с помощью вашего локального сервера.
- Используйте Telegram BotFather для создания нового бота и получения его токена.
- Установите
baseUrlвparams.phpдля вашего открытого URL с HTTPS. - Для избежания проблем с Telegram (например, при блокировке), используйте бесплатные анонимные прокси (список 1, список 2) и установите
telegramProxyвparams.php. - Создайте новую запись в таблице
botв базе данных MySQL, заполнивstatus= 0, или используйте консольную команду:
php yii telegram-bot/add [ТОКЕН БОТА]Включить Telegram webhooks для всех ботов с status = 0:
php yii telegram-bot/enable-allОтключить Telegram webhooks для всех ботов с status = 1:
php yii telegram-bot/disable-all