Это моё первое веб-приложение которое разработано на PHP, для проведения вышеупомянутого мероприятия. Для просмотра перейдите по ссылке: https://youtu.be/t0DzmOBujAo
XAMPP - простой и распространненый дистрибутив Apache, содержащий MySQL и PHP, которое необходимо нам для создания веб-сервера принимающего HTTP-запросы и выдающего им HTTP-ответы. Для загрузки, перейдите на официальный сайт https://www.apachefriends.org/ru/index.html. Установщик последним шагом предлагает запустить XAMPP, подтвердите это действие. Это пригодиться впоследствии.
Примечание: на момент написания, была установлена версия XAMPP: 7.2.31 / PHP 7.2.31. При установке XAMPP с PHP версия которой выше указанной, может вызывать некоторые ошибки.
Это пакетный менеджер, с помощью которого мы сможем управлять зависимостями в PHP приложений. Для загрузки перейдите на официальный сайт https://getcomposer.org/download/. Для проверки корректной установки Composer, введите в командной строке composer
и в ответ получите список его доступных команд.
Это система управления версиями, он понадобиться нам для слияния файлов данного репозитория с файлами Yii. Перейдите на официальный сайт https://git-scm.com/download/win, и выберите необходимую сборку для загрузки. После установки введите в командной строке git version
. Вам должна отобразиться текущая версия:
$ git version
git version 2.26.0.windows.1 //for example
Так как мы уже запустили XAMPP, нажмите на кнопку "Explorer" в правой части "XAMPP Control panel". В открывшемся окне войдите в папку "htdocs", которое содержит папки и файлы доступные через url сервера. Поэтому создаем здесь новую папку "test-project".
Для удобной и красивой работы маршрутизации запросов в нашем веб-приложений, нам необходимо изначально проделать следующие процедуры:
- Проследовать по следующему пути
C:\xampp\apache\conf\extra\
- Открыть файл "httpd-vhosts.conf" любым текстовым редактором
- Добавить в конце файла следующие фрагменты:
<VirtualHost *:80>
DocumentRoot "C:/xampp/htdocs/"
ServerName localhost
</VirtualHost>
<VirtualHost *:80>
DocumentRoot "C:/xampp/htdocs/test-project/web"
ServerName www.test-project.com
</VirtualHost>
- Проследовать по следующему пути
C:\Windows\System32\drivers\etc\
- Открыть файл "hosts" любым текстовым редактором в режиме администратора
- Добавить в конце файла следующий фрагмент:
127.0.0.1 www.test-project.com
Таким образом, после запуска Apache, мы сможем сразу обращаться к веб-приложению только по адресу test-project.com и все запросы будут корректно работать.
Yii это производительный PHP фреймворк, который использует для организаци кода архитектурный паттерн MVC и предназначенный для быстрой разработки современных веб-приложений. Для его установки используем Composer. Для этого откройте командную строку и выполните следующие команды:
cd ../..
cd xampp/htdocs/test-project
composer create-project --prefer-dist yiisoft/yii2-app-basic ./
Примечание: на момент создания веб-приложения использовался Yii версий 2.0.
Нужные веб-приложению виджеты устанавливаются также с помощью Composer, для этого введите в командной строке:
composer require --prefer-dist "himiklab/yii2-recaptcha-widget"
composer require --prefer-dist "kartik-v/yii2-widget-datepicker"
composer require --prefer-dist "kartik-v/yii2-export"
Примечание: на момент установки виджетов через командную строку, необходимо находиться в корневой директорий веб-приложения
Так как у нас уже есть готовый каркас, теперь следует объединить файлы данного репозитория с yii2. Для этого введите в командной строке:
del README.md .gitignore
git init
git pull https://github.com/Zhando7/first_project.git
Выполните следующие шаги:
- В корневой директорий веб-приложения войти в папку "assets"
- Открыть файл "AppAsset.php"
- Дополнить публичные переменные класса AppAsset следующими параметрами:
public $css = [
'css/site.css',
'css/required.css',
'css/font-awesome.css'
];
public $js = [
'js/fusioncharts.js',
'js/fusioncharts.charts.js',
'js/themes/fusioncharts.theme.fint.js'
];
public $jsOptions = [
'position' => \yii\web\View::POS_HEAD
];
Выполните следующие шаги:
- В корневой директорий веб-приложения войти в папку "config"
- Открыть файл "params.php"
- Дополнить возвращаемый массив следующими параметрами:
return [
// Добавляем ниже других параметрами
'supportEmail' => 'zhando797@gmail.com', // Автоматическая отправка писем с указанной почты, необходимо для восстановления пароля
'secretKeyExpire' => 60 * 60, // Время хранения секретного ключа
]
- В этой же директорий, открыть файл "web.php"
- Дополнить/изменить вложенные параметры массива $config:
$config = [
// ДОБАВЛЯЕМ В ВЕРХНЕЙ ЧАСТИ СРЕДИ ДРУГИХ ПАРАМЕТРОВ
'layout' => 'basic',
'defaultRoute' => 'main/index',
'name' => '3D Алем',
'charset' => 'UTF-8',
'language' => 'ru_RU',
// ЗАТЕМ ВНУТРИ МАССИВА `components`
'components' = [
// ДОБАВЛЯЕМ/ИЗМЕНЯЕМ НИЖЕ ДРУГИХ ПАРАМЕТРЫ
'user' => [
'identityClass' => 'app\models\Tables\Users',
'enableAutoLogin' => true,
],
'errorHandler' => [
'errorAction' => 'main/error',
],
'mailer' => [
'class' => 'yii\swiftmailer\Mailer',
// send all mails to a file by default. You have to set
// 'useFileTransport' to false and configure a transport
// for the mailer to send real emails.
'useFileTransport' => false,
'messageConfig' => [
'from' => ['zhando797@gmail.com' => 'zhando797'],
],
'transport' => [
'class' => 'Swift_SmtpTransport',
'host' => 'smtp.gmail.com',
'username' => 'zhando797@gmail.com',
'password' => 'ПАРОЛЬ ОТ ПОЧТЫ', // не забудьте ввести свой настоящий пароль
'port' => '465',
'encryption' => 'ssl',
],
],
/*
* ДОБАВЛЯЕМ НИЖЕ ЗАКОММЕНТИРОВАННОГО 'urlManager'
* инициализируем красивые ссылки
*/
'urlManager' => [
'enablePrettyUrl' => true,
'showScriptName' => false,
'rules' => [
'' => 'main/index',
'<action>'=>'main/<action>',
'<controller:\w+>/<id:\d+>' => '<controller>/view',
'<controller:\w+>/<action:\w+>' => '<controller>/<action>',
'<controller:\w+>/<action:\w+>/<id:\d+>' => '<controller>/<action>',
],
],
],
'params' => $params,
// ПАРАМЕТРЫ МОДУЛЯ ДЛЯ ЭКСОРТА В EXCELL
'modules' => [
'gridview' => [
'class' => '\kartik\grid\Module',]
// enter optional module parameters below - only if you need to
// use your own export download action or custom translation
// message source
// 'downloadAction' => 'gridview/export/download',
// 'i18n' => []
],
];
- В этой же директорий, открыть файл "db.php"
- Сменить значение
dbname=yii2basic
наdbname=test_bd
Выполните следующие действия:
- В "XAMPP Control panel" запустить модули Apache и MySQL, затем нажать на кнопку "Admin" напротив модуля MySQL
- В открывшемся окне, в левом sidebar, выполнить действие "Создать БД"
- В поле "Имя базы данных" указать "test_bd" и поменять кодировку на "utf8_general_ci", затем подтвердить создание БД
- Теперь выберите созданную базу данных, затем в верхней части страницы, на панели, нажмите на "Импорт"
- Для иморта базы данных, выберите файл который находится в корневой директорий веб-приложения в папке "database". После этого спуститесь в нижнюю часть страницы, и нажмите на кнопку "Вперед".
УРАА! Теперь всё готово.
Наконец-то мы сделали всё необходимое, теперь осталось перейти по ссылке test-project.com
Примечание: чтобы переключить проект с режима разработки на production, следует:
- В корневой директории веб-приложения открыть папку "web"
- Открыть файл "index.php"
- Изменить значения следующих констант:
defined('YII_DEBUG') or define('YII_DEBUG', false);
defined('YII_ENV') or define('YII_ENV', 'prod');