Дисциплины - Объектно-ориентированное программирование

ООП в PHP - Фрэймворк Laravel - Представление

Представления, View - это конечная точка запроса пользователя (см. MVC и HMVC). Вместе с тем, представления - это цель запроса: пользователь, нажимая на кнопку ожидает что-то, увидеть представление.

Ответственность за формирование ответа в Laravel берет на себя шаблонизатор blade, который встроен в Laravel по-умолчанию.

Шаблоны создаются в папке app/views и имеют расширение blade.php. Шаблоны подключаются в экшне через хелпер view(), входящим параметром в который передается имя шаблона без расширения blade.php.

Сперва создадим в папке view папку layouts для хранения базовых шаблонов. В папке layouts создадим файл defaults.blade.php. Данный файл содержит html-код шаблона приложения. Меняющуюся часть помещаем в диррективу @yield

начало html-кода неизменной части приложения
@yield('content')
окончание html-кода неизменной части приложения

Меняющуюся часть шаблона вынесем в отдельный файл index.blade.php.

@extends('layouts.default')
@section('content')
html-код меняющейся части приложения
@stop

Обратите внимание на @extends в начале шаблона. Данная дирректива определяет файл базового шаблона.

Подключение подшаблона index.blade.php осуществляется в экшне контроллера.

namespace App\Http\Controllers;
use Illuminate\Http\Request;
class BaseController extends Controller
{
  public function index(){
   return view('index');
  }
}

Существует несколько способов передачи переменных из экшна в подшаблон. Рассмотрим их. Передадим переменные $url и $title:

  public function index($url){
   return view('index', ['url' => $url, 'title'=>'Добро пожаловать на сайт']);
  }
  public function index($url){
   return view('index')->with('url', $url)->with('title', 'Добро пожаловать на сайт');
  }
  public function index($url){
   return view('index')->withUrl('url')->withTitle('title');
  }
  public function index($url){
   $title = 'Добро пожаловать на сайт';
   return view('index', compact('url', 'title'));
);
  }

Наилучший способ - compact(), т.к. он содержит меньше кода.

Диррективы Blade

@ функции, циклы

{{ }} вывод переменной не содержащей html

{!! !!} вывод переменной содержащей html-код

Количество комментариев: 0

Для того, чтобы оставить коментарий необходимо зарегистрироваться
814301 БГУИР
814302 БГУИР
814303 БГУИР
894351 БГУИР
90421 БГУИР


Изображения Видео

1. Абстрактная фабрика https://www.youtube.com/watch?v=1mVONOCxfLg
2. Фабричный метод https://www.youtube.com/watch?v=5UqUDR6_2cY
3. Шаблон декоратор https://www.youtube.com/watch?v=Lwb9bm8yKD0
4. Dessign patterns on PHP https://github.com/domnikl/DesignPatternsPHP
5. Приёмы объектно-ориентированного проектирования. Паттерны проектирования Э. Гамма, Р. Хелм, Р. Джонсон, Д. Влиссидес; [пер. с англ.: А. Слинкин науч. ред.: Н. Шалаев]. — Санкт-Петербург [и др.] : Питер, 2014. — 366 с. : ил. ; 24 см.
6. Приемы объектно-ориентированного проектирования. Паттерны проектирования Э. Гамма, Р. Хелм, Р. Джонсон, Д. Влиссидес; [пер. с англ.: А. Слинкин науч. ред.: Н. Шалаев]. — Санкт-Петербург [и др.] : Питер, 2014. — 366 с. : ил. ; 24 см.
7. Ajax http://erud.by/ajax
8. Ajax http://erud.by/ajax
9. Ajax http://erud.by/ajax
10. Документация Laravel http://laravel.com
Задание к курсовой работе
Задание к курсовой работе
Вопросы к экзамену