Привет! Когда окружение настроено, репозиторий готов, фреймворк установлен, а вебсервер работает, пришло время начать программировать наш проект и написать первый контроллер.
Контроллер
Laravel использует архитектурную модель MVC. Следовательно и мы будем придерживаться такой модели. Тем более, что разрабатывать веб приложения таким образом действительно удобно.
Для работы приложения нам понадобятся некоторые данные о пользователях нашей группы. Мы будем собирать их из API вконтакте и хранить в базе данных.
Соответственно, мы сможем получить доступ к этим данным из наших моделей. А управление логикой приложения, обработкой данных из моделей займутся контроллеры. Отображения данных в данном случае нам не понадобится, поэтому view страниц мы делать пока не будем.
Зайдем в каталог нашего проекта, откроем терминал и создадим наш первый контроллер командой artisan.
php artisan make:controller Cover
При этом будет создан файл Cover.php в каталоге /app/Http/Controllers
Созданный контроллер будет пустым, а нам нужен хотя бы один метод внутри контроллера, чтобы использовать его в проекте.
<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
class Cover extends Controller{ //}
Поэтому дополним код нашим методом index
<?php
namespace App\Http\Controllers;
class Cover extends Controller{
public function index(){
return 'This is Cover controller';
}}
Теперь метод index в контроллере Cover выведет на экран текст ‘This is Cover controller’. Но, чтобы увидеть их, нам нужно построить маршрут к этому контроллеру и методу.
Маршрут
Маршруты в laravel принимают URI из браузера пользователя и сопоставляют их с контроллерами приложения. Таким образом, чтобы при обращении, например, к корню сайта / мы бы обратились к контроллеру cover и методу index в нем.
За маршрутизацию в Laravel 8 отвечает файл /routes/web.php
Заменим стандартное замыкание с корня сайта на наш контроллер.
Route::get('/', [App\Http\Controllers\Cover::class, 'index'])->name('cover');
Теперь, если мы откроем браузер в корне сайта, мы должны будем увидеть эту надпись. Но сначала нужно загрузить файлы фреймворка на сервер.
git add --all
git commit -m 'first commit'
git push github master
Когда файлы зальются на гитхаб, зайдем на наш виртуальный сервер и выполним команду git pull
После синхронизации всех файлов, откроем в браузере нашей машины адрес http://192.168.0.107:8001/public/ и проверим, что контроллер срабатывает нормально.
Маршрут, cover контроллер и метод index работают как надо.
Заключение
Мы создали первый контроллер и готовы написать все необходимые функции для нашего приложения. Также нам нужно настроить сервер apache, чтобы корень сайта ссылался на папку public автоматически. Решим эти проблемы в следующий раз.
Подписывайтесь на каналы, чтобы выполнить проект вместе. И всего хорошего. Увидимся в следующем посте.
Группа для проекта - https://vk.com/miples
Канал на Ютуб - https://www.youtube.com/channel/UC9WRHYxSlYpoYIA_0qjFqAw