В этом материале мы продолжим создавать социальную сеть на PHP и напишем первый, базовый контроллер.

Социальная сеть на PHP: вывод домашней страницы.

В этом материале мы продолжим создавать социальную сеть на PHP и напишем первый, базовый контроллер.

Перейдем в папку app/Http/Controllers и создадим там файл HomeController.php

<?php
  namespace Chatty\Http\Controllers;

  class HomeController extends Controller {
   public function index() {
    return view('home');
   }
  }
?>

Как и во всех контроллерах, мы должны указывать пространство имен в начале файла. Дальше мы создаем класс, который наследует все свойства от базового контроллера, и метод, который будет выводить нам наши страницы.

Перейдем в app/Http/routes.php, удалим там все и напишем свой роутер.

<?php
  Route::get('/', [
   'uses' => '\Chatty\Http\Controllers\HomeController@index',
   'as' => 'home',
  ]);

Тут все понятно, но обратите внимание на знак @. После него указывается название метода, который нам нужно использовать.

Теперь перейдем в resources/views и создадим там новый файл home.blade.php и напишем в нем:

Домашняя страница

Теперь, если вы зайдете на сайт, вы увидите эту надпись вместо ошибок, которые были раньше.

Дальше нам нужно создать базовый шаблон. В папке views создадим папку templates, в которой у нас будет файл с названием default.blade.php. В нем у нас будет содержаться базовая разметка страницы.

Писать страницы мы будем, используя Bootstrap, поэтому перейдите на официальный сайт в раздел "Download" и найдите там CDN.

<!doctype html>
<html lang="en">
<head>
  <meta charset="utf-8">
  <title>Chatty</title>
  <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/css/bootstrap.min.css" integrity="sha384-1q8mTJOASx8j1Au+a5WDVnPi2lkFfwwEAa8hDDdjZlpLegxhjVME1fgjWPGmkzs7" crossorigin="anonymous">
</head>
<body>
  <div class="container">
   @yield('content')
  </div>
</body>
</html>

Теперь вернемся в файл home.blade.php, где подключим наш базовый шаблон и создадим разметку стартовой страницы.

@extends('templates.default')

@section('content')
  <h3>Добро пожаловать!</h3>
  <p>Вы находитесь в лучшей социальной сети, когда либо созданной!</p>

Теперь перейдем к написанию навигации. В папке templates создадим папку partials, в которой напишем файл navigation.blade.php.

<nav class="navbar navbar-default" role="navigation">
  <div class="container">
   <div class="navbar-header">
    <a class="navbar-brand" href="#">Chatty</a>
   </div>
   <div class="collapse navbar-collapse">
    <!-- @if (Auth::check()) -->
     <ul class="nav navbar-nav">
      <li><a href="#">Timeline</a></li>
      <li><a href="#">Friends</a></li>
     </ul>
     <form class="navbar-form navbar-left" role="search" action="#">
      <div class="form-group">
       <input type="text" name="query" class="form-control" placeholder="Find people">
      </div>
      <button type="submit" class="btn btn-default">Search</button>
     </form>
    <!-- @endif -->
    <ul class="nav navbar-nav navbar-right">
     <!-- @if (Auth::check()) -->
      <li><a href="#">Dayle<!-- {{ Auth::user()->getNameOrUsername() }} --></a></li>
      <li><a href="#">Update profile</a></li>
      <li><a href="#">Sign out</a></li>
     <!-- @else -->
      <li><a href="#">Sign up</a></li>
      <li><a href="#">Sign in</a></li>
     <!-- @endif -->
    </ul>
   </div>
  </div>
</nav>

Здесь используется базовая Bootstrap разметка со вставками функционала(комментарии), который будет создан позже.

Теперь подключим наш файлик с навигацией в default.blade.php

...
<body>
@include('templates.partials.navigation')
...

Теперь, если вы обновите страницу, то увидите, что у нас появилась красивая навигация!

Итак, на этом пока закончим. Спасибо за внимание!