Давайте научимся работать с Laravel.
Представим - у вас чистый компьютер с OS Windows, к примеру 10, и вы хотите создать и запустить свой проект на php фреймворке Laravel (текущая версия 8, скоро выйдет 9)
Можно использовать doker, можно установить виртуалку linux к себе на компьютер и еще много чего. Тут же я опишу свой workflow, возможно кому-то будет полезно.
План:
Устанавливаем IDE PhpStorm
IDE PhpStorm
Скачиваем IDE PhpStorm https://www.jetbrains.com/phpstorm/
Скачиваем нажатием Download now
Устанавливаем.
OpenServer
Можно скачать с официального сервера
Или быстрее вот так
magnet:?xt=urn:btih:7787A633C35B0B265551035277351C207FD91EFF
Устанавливаем.
Устанавливаем composer
Скачиваем и устанавливаем пакетный менеджер composer
https://getcomposer.org/Composer-Setup.exe
Выбираем php из OpenServer, папка modules/php/php8.1
Перезагрузим компьютер.
Включаем Open Server, открываем настройки.
Заходим в домены и включаем управление доменами - ручное управление
В открывшейся папке domain создаем новую папку с нашим проектом
В моем случае это test_laravel, выбираем ее открываем. В имя домена я вписываю laravel.test
Нажимаем кнопку "Добавить"
Во вкладке "Модули" выбираю следующую конфигурацию
Нажимаем сохранить.
Открываем PhpMyAdmin
Вводим Пользователь - root , Пароль - root или пустой. (встречается и то и то.)
Создаем базу данных, называем ее и выбираем кодировку utf-8 general_ci
Заходим в консоль Open Server
Командная строка
Базовые команды, которыми я пользуюсь:
- перейти в каталог выше
cd ..
- переход в другую папку
cd *название папки, относительный или абсолютный путь*
cd /domains
- переход на другой диск
*буква диска*:
d:
- Посмотреть весь каталог: список файлов и папок.
dir
Для автоматической подстановки названий папок и файлов можно использовать клавишу TAB
Установка Git
Какая разработка сейчас без использования системы контроля версий.
Скачиваем GIT https://git-scm.com/downloads
Устанавливаем.
При установке никакие флажки и галочки я не меняю.
Создание проекта Laravel
И так, переходим в папку test_laravel
Пишем
composer create-project laravel/laravel .
Точка в конце позволяет создать проект в текущей папке.
Если появится сообщение, что папка не пуста, зайдите в нее и удалите содержимое.
Начнется установка.
Открываем папку в PHP Storm
Работа с PHP Storm
Нам откроется наш проект.
В окне мы увидим файлы нашего проекта, кнопку терминала, и видим в правом углу, что происходит индексация проекта.
Открываем терминал в Шторме и пишем
php artisan serve
Переходим по ссылке http://127.0.0.1:8000/
Видим что-то похожее
Ура, всё работает.
Если мы хотим перейти по домену, созданному через OpenServer то создаем файл .httpaccess в корне проекта со следующим содержимым:
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteRule ^(.*)$ public/$1 [L]
</IfModule>
Теперь редактируем .env файл конфигурации Laravel. В соответствии с названием вашей БД, логином и паролем. У меня это выглядит так:
DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=laravel_test
DB_USERNAME=root
DB_PASSWORD=
Пока мы разрабатываем на локальном сервере
APP_ENV=local
APP_DEBUG=true
APP_URL=http://localhost
Выполняем команду
php artisan migrate --seed
Если увидите надпись - Database seeding completed successfully. Всё получилось.
Настроим Github
Давайте создадим локальный репозиторий git в своём проекте.
Пишем
git init
В папке с проектом появится скрытая папка git.
Давайте создадим первый commit.
Для этого мы пишем в консоли, вписывая свои данные.
git config --global user.email "you@example.com"
git config --global user.name "Your Name"
git add .
git commit -m "initial commit"
Мы сделали первый коммит! Поздравляю!
Теперь давайте отправим наш репозиторий в GitHub!
Регистрируемся в Github.com
Настроим SSH для Github
В консоли пишем
ssh -T git@github.com
Соглашаемся на вопрос - yes
Если высвечивается
git@github.com: Permission denied (publickey).
Продолжаем идти по инструкции. Пишем в консоль, вписывая свой e-mail
ssh-keygen -t ed25519 -C "your_email@example.com"
eval "$(ssh-agent -s)"
Далее смотрим в консоли по какому пути сгенерировался ключ и вписываем его в следующую компанду
start-ssh-agent
ssh-add ~\.ssh\id_ed25519
У меня это выглядело так
ssh-add C:\Users\admin\.ssh\id_ed25519
Далее
start-ssh-agent
или
start ssh-agent
У меня получилось вот так:
Пишем cat и адрес сгенерированного вами ранее сертификата. С расширением .pub - это наш публичный ключ.
сat C:\Users\admin\.ssh\id_ed25519.pub
Копируем то, что нам вывелось в консоли весь текст вместе с ssh-ed и вашим email в конце.
Заходим в настройки - Settings
Далее в SSH and GPG keys, нажимаем New SSH key
Пишем название любое, какое захотите и вставляете строчку, с публичным ключом. Сохраняем.
Теперь опять пишем в консоли
ssh -T git@github.com
Ура, все получилось!
Создадим репозиторий на Github
Далее нажимаем на плюсик справа сверху, нажимаем создать новый репозиторий.
Я создам публичный репозиторий, то есть его смогут увидеть все. Так же можно сделать и бесплатный приватный репозиторий.
Открывается страница репозитория.
Теперь вы можете отправить свой локальный репозиторий на Github
git remote add origin git@github.com:*ваш логин github*/*Ваш созданный репозиторий*.git
К примеру
git remote add origin git@github.com:lesha/laravel_test_dzen.git
git push
Появится надпись
git push --set-upstream origin master
Вписываем ее в командную строку и отправляем.
Заходим на страницу нашего репозитория в GitHub и видим наш проект.
Отлично! Все работает, наш проект появился на Github!
Давайте обратим внимание на наш файл .gitignore в репозитории Laravel
В нем перечислены все файлы и папки, которые не будут версироваться и присутствовать в git репозитории.
Как мы видим, наш файл с локальной конфигурацией .ENV нужен исключительно на локальной машине, поэтому мы его не добавляем в git. Так же в нем могут использоваться приватные ключи, доступы к внешним API, поэтому никогда не вписывайте какие-то чувствительные данные в проекте кроме файла ENV и не забывайте проверять добавлен ли он в gitignore.
Резюме
И так, мы научились с нуля разворачивать простую среду разработки на новом компьютере, установили пакетный менеджер composer, установили и настроили Git, установили локальный сервер со всем, что нам может быть полезным.
Конечно, оптимально иметь такое окружение в doker контейнере, но это предмет моих следующих статей.