Laravel полное руководство 2020

Laravel. Полное руководство (2020)

  • Дата публикации:25.11.2020
  • Просмотров:3 499
  • Комментариев:0
  • Категория:Обучающее видео
  • Официальный сайт:Перейти
  • Разработчик:WebForMySelf, Андрей Кудлай (Сайт)
  • Подборка/Серия:Laravel, PHP
  • Язык озвучки:Русский
  • Язык субтитров:Русский
  • Формат:MP4, html (+доп. файлы)
  • Видео:AVC, 1280×720, ~264 Kbps
  • Аудио:AAC, 126 Kbps, 48.0 KHz
  • Теги:видеоуроки, информатика, обучение, учебный курс, Андрей Кудлай
  • Пароль на архив:manshet.org [Ошибка?]

Описание

С помощью этого видеокурса вы с нуля сможете овладеть самым востребованным на рынке и наиболее популярным РНР-фреймворком в мире – Laravel. Вы сможете изучить не только теорию фреймворка, но и одновременно закрепить ее на практике, благодаря созданию полноценного современного блога.

Содержание:

Модуль 1. Изучение Laravel

  • Урок 1. Введение 
  • Урок 2. Установка Laravel 
  • Урок 3. Структура Laravel 
  • Уроки 4-6. Роутинг в Laravel 
  • Урок 7. Контроллеры в Laravel 
  • Урок 8. Контроллеры ресурсов 
  • Урок 9. Конфигурация в Laravel 
  • Урок 10. Миграции 
  • Урок 11. Выполнение SQL-запросов 
  • Урок 12. Конструктор запросов 
  • Уроки 13-14. Модель и Eloquent ORM 
  • Уроки 15-16. Связи моделей 
  • Уроки 17-20. Шаблоны Blade 
  • Уроки 21-22. Валидация 
  • Урок 23. Сессии 
  • Урок 24. Работа с кэшем 
  • Урок 25. Laravel Mix 
  • Уроки 26-27. Отправка Email 
  • Урок 28. Регистрация 
  • Урок 29. Аутентификация 
  • Урок 30. Middleware 
  • Урок 31. Загрузка картинок 
  • Урок 32. View Composers 
  • Урок 33. Pagination 
  • Урок 34. Seeding 
  • Урок 35. Mutators (Мутаторы) 
  • Урок 36. Логирование 

Модуль 2. Практика создания сайта на Laravel

  • Урок 1. Установка Laravel 
  • Урок 2. Шаблон AdminLTE 
  • Урок 3. Шаблон админки 
  • Урок 4. Создание миграций 
  • Урок 5. Отношения моделей 
  • Уроки 6-7. Управление категориями 
  • Урок 8. Управление тегами 
  • Уроки 9-11. Управление постами 
  • Урок 12. Регистрация 
  • Урок 13. Авторизация 
  • Урок 14. Визуальный редактор 
  • Уроки 15-16. Шаблон пользовательской части 
  • Урок 17. Лента статей 
  • Урок 18. Страница отдельной статьи 
  • Урок 19. Статьи категорий 
  • Урок 20. Статьи по тегу 
  • Урок 21. Данные сайдбара 
  • Урок 22. Поиск по статьям

Бонусы:

  • Курс по PHP
  • Курс по ООП PHP
  • Курс по MySQL

Пароль на все архивы: manshet.org

image Привет, Хаброжители! Что отличает Laravel от других PHP-фреймворков? Скорость и простота. Стремительная разработка приложений, обширная экосистема и набор инструментов Laravel позволяют быстро создавать сайты и приложения, отличающиеся чистым удобочитаемым кодом.

Мэтт Стаффер, известный преподаватель и ведущий разработчик, предлагает как общий обзор фреймворка, так и конкретные примеры работы с ним. Опытным PHP-разработчикам книга поможет быстро войти в новую тему, чтобы реализовать проект на Laravel. В издании также раскрыты темы Laravel Dusk и Horizon, собрана информация о ресурсах сообщества и других пакетах, не входящих в ядро Laravel. В этой книге вы найдете: • Инструменты для сбора, проверки, нормализации, фильтрации данных пользователя • Blade, мощный пользовательский шаблонизатор Laravel • Выразительная модель Eloquent ORM для работы с базами данных приложений • Информация о роли объекта Illuminate Request в жизненном цикле приложения • PHPUnit, Mockery и Dusk для тестирования вашего PHP-кода • Инструменты для написания JSON и RESTful API • Интерфейсы для доступа к файловой системе, сессиям, куки, кэшам и поиску • Реализации очередей, заданий, событий и публикации событий WebSocket

Движок шаблонов Blade

PHP в качестве языка шаблонов функционирует относительно хорошо. Но у него есть свои недостатки, поэтому нельзя использовать <?php inline повсеместно. В большинстве современных фреймворков есть свой язык шаблонов.

Laravel предлагает собственный движок шаблонов Blade, созданный на основе движка .NET Razor. Он обладает лаконичным синтаксисом, довольно понятен, сопровождается мощной и интуитивно понятной моделью наследования и легкой расширяемостью.

Быстро ознакомиться с тем, как выглядит Blade, можно на примере 4.1.

Пример 4.1. Примеры Blade

<h1>{{ $group->title }}</h1>
{!! $group->heroImageHtml() !!}

@forelse ($users as $user)
       • {{ $user->first_name }} {{ $user->last_name }}<br>
@empty
       No users in this group.
@endforelse

Как видно, в коде Blade используются фигурные скобки для Echo и соглашение, в котором его пользовательские теги, называемые «директивами», имеют префикс @. Вы будете применять директивы для всех своих структур управления, а также для наследования и любых пользовательских функций, которые хотите добавить.

Синтаксис Blade чистый и лаконичный, поэтому работать с ним проще и приятнее, чем с альтернативами. Но в тот момент, когда понадобится что-нибудь сложное в ваших шаблонах — вложенное наследование, сложные условия или рекурсия, — движок проявляет себя с лучшей стороны. Как и лучшие компоненты Laravel, тяжелые требования к приложениям он упрощает и делает доступными.

Кроме того, поскольку весь синтаксис Blade скомпилирован в обычный код PHP, а затем кэширован, он быстр и позволяет по желанию использовать нативный PHP в ваших файлах этого движка. Тем не менее я бы рекомендовал избегать применения PHP, когда это вообще возможно, — обычно, если нужно сделать то, что невозможно с Blade или его пользовательской директивой, это не относится к шаблону.

Отображение данных

Как вы можете видеть в примере 4.1, скобки {{ и }} используются для обертки PHP-кода, который вы хотели бы отобразить. Код {{ $variable }} действует подобно <?= $variable ?> в простом PHP.

Однако есть отличие: Blade по умолчанию экранирует все отображения PHP-функцией htmlentities() для защиты ваших пользователей от вставки вредоносных сценариев. Это означает, что {{ $variable }} функционально эквивалентно <?= htmlentities($variable) ?>. Если вы не хотите экранировать вывод, используйте {!!! и !!} вместо этого.

СКОБКИ {{ И }} ПРИ ИСПОЛЬЗОВАНИИ ФРОНТЕНД-ФРЕЙМВОРКА ШАБЛОНИЗАЦИИ

Вы могли заметить, что синтаксис отображения для Blade ({{}}) аналогичен таковым для многих фронтенд-фреймворков. Как же Laravel узнает, используете вы Blade или Handlebars?

Blade игнорирует все {{ с предваряющим знаком @. Таким образом, он проанализирует первый из следующих примеров, но второй будет выведен полностью:

// Распознается как Blade; значение $bladeVariable
// отображается в представлении
{{ $bladeVariable }}

// @ удаляется и «{{ handlebarsVariable }}» полностью
// отображается в представлении
@{{ handlebarsVariable }}

Вы также можете обернуть любые большие части содержимого сценария директивой verbatim (http://bit.ly/2OnrPRP).

Управляющие структуры

Большинство управляющих структур в Blade будут знакомы. Многие напрямую дублируют имя и структуру такого же тега в PHP.

Есть несколько хелперов для удобства, но в целом структуры управления выглядят чище, чем в PHP.

Условные конструкции

Рассмотрим логические структуры управления.

@if

Выражение @if ($condition) в Blade компилируется в <?php if ($condition): ?>. else, elseif и endif — с точно таким же стилем синтаксиса в PHP. Взгляните на пример 4.2

Пример 4.2. @if, else, elseif и endif

@if (count($talks) === 1)
     There is one talk at this time period.
@elseif (count($talks) === 0)
     There are no talks at this time period.
@else
     There are {{ count($talks) }} talks at this time period.
@endif

Как и в случае с собственными условными выражениями PHP, вы можете смешивать и комбинировать их так, как вам удобно. У них нет особой логики; есть анализатор с поиском в форме @if($condition) и заменой соответствующим кодом PHP.

@unless и @endunless

@unless, с другой стороны, — это новый синтаксис, который не имеет прямого эквивалента в PHP. Это противоположность @if. @unless($condition) совпадает с <?php if (! $condition). Вы можете увидеть это на примере 4.3.

Пример 4.3. @unless и @endunless

@unless ($user->hasPaid())
       You can complete your payment by switching to the payment tab.
@endunless

Циклы

Далее рассмотрим циклы.

@for, @foreach и @while

for, foreach и while работают в Blade так же, как и в PHP (примеры 4.4–4.6).

Пример 4.4. for и @endfor

@for ($i = 0; $i < $talk->slotsCount(); $i++)
      The number is {{ $i }}<br>
@endfor

Пример 4.5. foreach и @endforeach

@foreach ($talks as $talk)
       • {{ $talk->title }} ({{ $talk->length }} minutes)<br>
@endforeach

Пример 4.6. while и @endwhile

@while ($item = array_pop($items))
       {{ $item->orSomething() }}<br>
@endwhile

@forelse и @endforelse

forelse — это foreach, который может быть выполнен, даже если перебираемый вами объект пуст. Мы видели это в действии в начале главы. Пример 4.7 показывает другой вариант.

Пример 4.7. forelse

@forelse ($talks as $talk)
       • {{ $talk->title }} ({{ $talk->length }} minutes)<br>
@empty
       No talks this day.
@endforelse

ПЕРЕМЕННАЯ $LOOP В ДИРЕКТИВАХ FOREACH И @FORELSE

Директивы foreach и forelse (представленные в Laravel 5.3) добавляют переменную $loop, недоступную в циклах foreach PHP. При использовании внутри цикла foreach или forelse она будет возвращать объект stdClass со следующими свойствами.

• index — отсчитанный от 0 индекс текущего элемента в цикле; 0 — «первый элемент».

• iteration — отсчитанный от 1 индекс текущего элемента в цикле; 1 — «первый элемент».

• remaining — количество элементов, оставшихся в цикле.

• count — количество элементов в цикле.

• first — логическое значение, указывающее, является ли данный элемент первым элементом в цикле.

• last — логическое значение, указывающее, является ли данный элемент последним элементом в цикле.

• depth — сколько «уровней» в этом цикле: 1 для цикла, 2 для цикла внутри цикла и т. д.

• parent — ссылка на переменную $loop для элемента родительского цикла, если этот цикл находится в другом цикле foreach; иначе null.

Вот пример того, как это работает:

<ul>
@foreach ($pages as $page)
       <li>{{ $loop->iteration }}: {{ $page->title }}
             @if ($page->hasChildren())
             <ul>
             @foreach ($page->children() as $child)
             <li>{{ $loop->parent->iteration }}
                   .{{ $loop->iteration }}:
                   {{ $child->title }}</li>
             @endforeach
             </ul>
             @endif
       </li>
@endforeach
</ul>

Наследование шаблонов

Blade предоставляет структуру для наследования шаблонов, которая позволяет представлениям расширять, изменять и включать в себя другие представления.

Посмотрим, как наследование структурируется с Blade.

Определение разделов страницы с помощью директив @section/@show и yield

Начнем с макета Blade верхнего уровня, как в примере 4.8. Это определение универсальной обертки страницы, в которую мы позже поместим специфичный для страницы контент.

Пример 4.8. Структура Blade

<!-- resources/views/layouts/master.blade.php -->
<html>
       <head>
              <title>My Site | @yield('title', 'Home Page')</title>
       </head>
       <body>
              <div class="container">
                    @yield('content')
              </div>
              @section('footerScripts')
                     <script src="app.js"></script>
              @show
       </body>
</html>

Это напоминает обычную HTML-страницу, но вы можете видеть yield в двух местах (title и content), и мы определили section в третьем (footerScripts). Здесь у нас есть три директивы Blade: только yield(‘content’), yield(‘title’, ‘Home Page’) с заданным по умолчанию значением и @section/@show с реальным содержимым в нем.

Хотя они выглядят немного по-разному, но функционируют, по существу, одинаково. Все три определяют, что есть раздел с заданным именем (первый параметр), который может быть расширен позже, и что делать, если раздел не был расширен. Они делают это либо строкой возврата (‘Home Page’), либо без возврата (просто не будет отображаться ничего, если директива не расширена), либо с возвратом всего блока (в данном случае ).

В чем разница? У yield(‘content’) нет контента по умолчанию. Кроме того, в yield(‘title’) оно будет отображаться, только если директива не расширяется. В обратном случае ее дочерние разделы не будут иметь программного доступа к значению по умолчанию. @section/@show одновременно определяет значение по умолчанию и делает так, чтобы его содержимое было доступно его дочерним элементам через @parent.

Если у вас есть такой родительский макет, вы можете расширить его в новом файле шаблона, как в примере 4.9.

Пример 4.9. Расширение макета Blade

<!-- resources/views/dashboard.blade.php -->
@extends('layouts.master')

@section('title', 'Dashboard')

@section('content')
       Welcome to your application dashboard!
@endsection

@section('footerScripts')
      @parent
      <script src="dashboard.js"></script>
@endsection

Это дочернее представление позволяет нам показать несколько новых концепций наследования Blade.

@extends

В примере 4.9 с помощью @extends(‘layouts.master’) мы определяем, что это представление не должно отображаться само по себе, а вместо этого расширяет другое представление. Это означает, что его роль заключается в установке содержания различных разделов, но не в работе в одиночку. Больше похоже на серию блоков контента, чем на страницу HTML. Строка также определяет, что представление, которое она расширяет, находится по адресу resources/views/layouts/master.blade.php.

Каждый файл должен расширять только один другой файл, и вызов @extends обязан быть первой строкой файла.

@section и @endsection

С помощью @section(‘title’, ‘Dashboard’) мы предоставляем наш контент для первого раздела, title. Поскольку содержимое очень короткое, вместо @section и @endsection мы используем сокращенную форму. Это позволяет передавать содержимое как второй параметр @section, а затем двигаться дальше. Если вас немного сбивает с толку @section без @endsection, можно использовать обычный синтаксис.

С @section(‘content’) и далее мы используем обычный синтаксис для определения содержимого раздела content. Пока мы вставим небольшое приветствие. Однако заметьте: когда вы применяете @section в дочернем представлении, вы заканчиваете его @endsection (или его псевдонимом stop) вместо show, который зарезервирован для определения разделов в родительских представлениях.

@parent

С @section(‘footerScripts’) и далее мы используем обычный синтаксис для определения содержимого раздела footerScripts.

Помните, что мы фактически определили этот контент (или по крайней мере его «значение по умолчанию») уже в главном макете. Так что на этот раз у нас есть два варианта: либо перезаписать содержимое из родительского представления, либо добавить к нему.
Вы можете видеть, что у нас есть возможность включить содержимое из родительского представления с помощью директивы @parent внутри этого раздела. В противном случае содержимое раздела будет полностью переписано всем тем, что определено в родителе этого раздела.

Включение составляющих представления

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

@include

Что, если мы находимся в одном представлении и хотим использовать другое? Возможно, есть кнопка регистрации, которую желательно повторно добавить по всему сайту. И, может быть, хочется подбирать текст кнопки каждый раз, когда ее используем. Посмотрите на пример 4.10.

Пример 4.10. Включение составляющих представления с include

<!-- resources/views/home.blade.php -->
<div class="content" data-page-name="{{ $pageName }}">
      <p>Here's why you should sign up for our app: <strong>It's Great.</strong></p>

      @include('sign-up-button', ['text' => 'See just how great it is'])
</div>

<!-- resources/views/sign-up-button.blade.php -->
<a class="button button--callout" data-page-name="{{ $pageName }}">
      <i class="exclamation-icon"></i> {{ $text }}
</a>

include подтягивает составляющую и передает в нее данные (не обязательно). Обратите внимание, что вы можете не только явно передавать данные для включения через второй параметр include, но и ссылаться на любые переменные во включенном файле, которые доступны для включаемого представления (в этом примере $pageName). Вы можете делать все, что хотите, но я бы рекомендовал для ясности всегда передавать каждую переменную, которую собираетесь применять.

Вы также можете использовать директивы includeIf, includeWhen и includeFirst, как показано в примере 4.11.

Пример 4.11. Включение представлений по условиям

{{-- Включить представление, если оно существует --}}
@includeIf('sidebars.admin', ['some' => 'data'])

{{-- Включить представление, если переданная переменная равна true --}}
@includeWhen($user->isAdmin(), 'sidebars.admin', ['some' => 'data'])

{{-- Включить первое представление из данного массива представлений --}}
@includeFirst(['customs.header', 'header'], ['some' => 'data'])

@each

Вы можете представить себе обстоятельства, когда вам нужно перебрать массив, коллекцию и include часть для каждого элемента. Для этого есть директива each.

Скажем, у нас есть боковая модульная панель и мы хотим включить несколько модулей со своим названием. Посмотрите на пример 4.12.

Пример 4.12. Использование составляющих представления в цикле с each

<!-- resources/views/sidebar.blade.php -->
<div class="sidebar">
      @each('partials.module', $modules, 'module', 'partials.empty-module')
</div>

<!-- resources/views/partials/module.blade.php -->
<div class="sidebar-module">
      <h1>{{ $module->title }}</h1>
</div>

<!-- resources/views/partials/empty-module.blade.php -->
<div class="sidebar-module">
      No modules :(
</div>

Рассмотрим синтаксис each. Первый параметр — это имя составляющей представления. Второй — массив или коллекция для итерации. Третье — название переменной, под которым каждый элемент (в данном случае каждый элемент в массиве $modules) будет передан представлению. И необязательный четвертый параметр — это представление, показывающее, являются ли массив или коллекция пустыми (или при желании можно передать здесь строку, которая будет использоваться в качестве вашего шаблона).

Использование стеков

Общий шаблон, возможно, сложен для управления с помощью базового Blade — когда каждому представлению в иерархии Blade необходимо добавить что-то в определенный раздел, — почти как при добавлении записи в массив.

Наиболее распространенная ситуация — когда определенные страницы (а иногда и в более широком смысле определенные разделы сайта) имеют конкретные уникальные файлы CSS и JavaScript, которые им нужно загрузить. Представьте, что у вас есть «глобальный» CSS-файл для всего сайта, CSS-файл раздела вакансий и CSS-файл страницы «Устроиться на работу».

Стеки Blade созданы именно для такого. В родительском шаблоне определите стек-заполнитель. Затем в каждом дочернем шаблоне вы можете туда «выталкивать» записи с помощью push/@endpush, который добавляет их в конец стека в конечном изображении. Вы также можете использовать @prepend/@endprepend, чтобы добавить их в начало. Пример 4.13 иллюстрирует это.

Пример 4.13. Использование стеков Blade

<!-- resources/views/layouts/app.blade.php -->
<html>
<head><!-- шапка --></head>
<body>
       <!-- остальная чать страницы -->
       <script src="/css/global.css"></script>
       <!-- заполнитель, куда будет помещен контент из стека -->
       @stack('scripts')
</body>
</html>

<!-- resources/views/jobs.blade.php -->
@extends('layouts.app')

@push('scripts')
        <!-- выталкиваем что-нибудь в конец стека -->
        <script src="/css/jobs.css"></script>
@endpush

<!-- resources/views/jobs/apply.blade.php -->
@extends('jobs')

@prepend('scripts')
       <!-- выталкиваем что-нибудь в начало стека -->
       <script src="/css/jobs--apply.css"></script>

@endprepend

Это приводит к следующему результату:

<html>
<head><!-- шапка --></head>
<body>
       <!-- остальная часть страницы -->
       <script src="/css/global.css"></script>
       <!-- заполнитель, куда будет помещен контент из стека -->
       <script src="/css/jobs--apply.css"></script>
       <script src="/css/jobs.css"></script>
</body>
</html>

Использование компонентов и слотов

Laravel предлагает другой шаблон для включения контента между представлениями, который был представлен в 5.4: компоненты и слоты. Первые наиболее эффективны в контексте, когда вы используете составляющие представления и передаете в них большие порции контента в качестве переменных. Посмотрите на пример 4.14 для иллюстрации модели или всплывающей подсказки, которая может предупредить пользователя при ошибке или другом действии.

Пример 4.14. Модальное окно — неудачный пример составляющей представления

<!-- resources/views/partials/modal.blade.php -->
<div class="modal">
      <div>{{ $content }}</div>
      <div class="close button etc">...</div>
</div>

<!-- в другом шаблоне -->
@include('partials.modal', [
       'body' => '<p>The password you have provided is not valid. Here are the rules
       for valid passwords: [...]</p><p><a href="#">...</a></p>'
])

Это слишком много для такой переменной и идеально подходит для компонента.

Компоненты со слотами — это составляющие представлений, которые разработаны, чтобы включать большие порции («слоты») для получения содержимого из включаемого шаблона. В примере 4.15 показано, как перепроектировать код из примера 4.14 с использованием компонентов и слотов.

Пример 4.15. Модальное окно как более подходящий компонент со слотами

<!-- resources/views/partials/modal.blade.php -->
<div class="modal">
      <div>{{ $slot }}</div>
      <div class="close button etc">...</div>
</div>

<!-- в другом шаблоне -->
@component('partials.modal')
        <p>The password you have provided is not valid.
        Here are the rules for valid passwords: [...]</p>

        <p><a href="#">...</a></p>
@endcomponent

Как вы можете видеть в примере 4.15, директива component позволяет извлекать наш HTML-код из сжатой строки переменной и возвращает в пространство шаблона. Переменная $slot в шаблоне нашего компонента получает любой контент, передаваемый в component.

Составные слоты

Метод, который мы использовали в примере 4.15, называется слотом «по умолчанию»; все, что вы передаете между component и @endcomponent, передается переменной $slot. Но вы также можете иметь больше, чем просто слот по умолчанию. Представим модальное окно с заголовком, как в примере 4.16.

Пример 4.16. Составляющая модального представления с двумя переменными

<!-- resources/views/partials/modal.blade.php -->
<div class="modal">
      <div class="modal-header">{{ $title }}</div>
      <div>{{ $slot }}</div>
      <div class="close button etc">...</div>
</div>

Вы можете использовать директиву slot в своих вызовах component для передачи содержимого в слоты, отличные от заданного по умолчанию, как показано в примере 4.17.

Пример 4.17. Передача более одного слота компоненту

@component('partials.modal')
        @slot('title')
               Password validation failure
        @endslot

        <p>The password you have provided is not valid.
        Here are the rules for valid passwords: [...]</p>

        <p><a href="#">...</a></p>
@endcomponent

И если в вашем представлении есть другие переменные, которые бессмысленны в качестве слота, все равно можно передать массив содержимого в качестве второго параметра в component так же, как с include. Взгляните на пример 4.18.

Пример 4.18. Передача данных в компонент без слотов

@component('partials.modal', ['class' => 'danger'])
         ...
@endcomponent

Именование компонента как директивы

Есть хитрый трюк, чтобы еще упростить компоненты для вызова: псевдонимы. Просто вызовите Blade::component() на фасаде Blade — наиболее распространенным является метод AppServiceProvider boot() — и передайте ему сначала местоположение компонента, а затем имя желаемой директивы, как показано в примере 4.19.

Пример 4.19. Псевдонимизация компонента как директивы

// AppServiceProvider@boot
Blade::component('partials.modal', 'modal');

<!-- в шаблоне -->
@modal
         Modal content here
@endmodalИмпорт

» Более подробно с книгой можно ознакомиться на сайте издательства
» Оглавление
» Отрывок

Для Хаброжителей скидка 25% по купону — Laravel

По факту оплаты бумажной версии книги на e-mail высылается электронная книга.

  • Книги
  • Программирование
  • Мэтт Стаффер

  • 📚 Laravel. Полное руководство

Эта и ещё 2 книги за 399 

По абонементу вы каждый месяц можете взять из каталога одну книгу до 700 ₽ и две книги из специальной подборки. Узнать больше

Оплачивая абонемент, я принимаю условия оплаты и её автоматического продления, указанные в оферте

Описание книги

Что отличает Laravel от других PHP-фреймворков? Скорость и простота. Стремительная разработка приложений, обширная экосистема и набор инструментов Laravel позволяют быстро создавать сайты и приложения, отличающиеся чистым удобочитаемым кодом.

Мэтт Стаффер, известный преподаватель и ведущий разработчик, предлагает как общий обзор фреймворка, так и конкретные примеры работы с ним. Опытным PHP-разработчикам книга поможет быстро войти в новую тему, чтобы реализовать проект на Laravel. В издании также раскрыты темы Laravel Dusk и Horizon, собрана информация о ресурсах сообщества и других пакетах, не входящих в ядро Laravel.

После покупки предоставляется дополнительная возможность скачать книгу в формате epub.

Подробная информация

Возрастное ограничение:
16+
Дата выхода на ЛитРес:
06 июля 2020
Дата перевода:
2020
Дата написания:
2019
Объем:
512 стр.
ISBN:
978-5-4461-1396-5
Общий размер:
8 MB
Общее кол-во страниц:
512
Размер страницы:
165 x 233 мм
Переводчик:
Владимир Сауль
Правообладатель:
Питер

Книга Мэтт Стаффер «Laravel. Полное руководство» — скачать в pdf или читать онлайн. Оставляйте комментарии и отзывы, голосуйте за понравившиеся.

Книга входит в серию
«Бестселлеры O’Reilly (Питер)»

Оставьте отзыв

На что хотите пожаловаться?

Сообщение отправлено

Мы получили Ваше сообщение.
Наши модераторы проверят книгу
в ближайшее время.
Спасибо, что помогаете нам.

Сообщение уже отправлено

Мы уже получили Ваше сообщение.
Наши модераторы проверят книгу
в ближайшее время.
Спасибо, что помогаете нам.

Поделиться отзывом на книгу

Laravel. Полное руководство

Мэтт Стаффер

Laravel. Полное руководствоPDF

Build Status
Total Downloads
Latest Stable Version
License

About Laravel

Laravel is a web application framework with expressive, elegant syntax. We believe development must be an enjoyable and creative experience to be truly fulfilling. Laravel takes the pain out of development by easing common tasks used in many web projects, such as:

  • Simple, fast routing engine.
  • Powerful dependency injection container.
  • Multiple back-ends for session and cache storage.
  • Expressive, intuitive database ORM.
  • Database agnostic schema migrations.
  • Robust background job processing.
  • Real-time event broadcasting.

Laravel is accessible, powerful, and provides tools required for large, robust applications.

Learning Laravel

Laravel has the most extensive and thorough documentation and video tutorial library of all modern web application frameworks, making it a breeze to get started with the framework.

If you don’t feel like reading, Laracasts can help. Laracasts contains over 1500 video tutorials on a range of topics including Laravel, modern PHP, unit testing, and JavaScript. Boost your skills by digging into our comprehensive video library.

Laravel Sponsors

We would like to extend our thanks to the following sponsors for funding Laravel development. If you are interested in becoming a sponsor, please visit the Laravel Patreon page.

Premium Partners

  • Vehikl
  • Tighten Co.
  • Kirschbaum Development Group
  • 64 Robots
  • Cubet Techno Labs
  • Cyber-Duck
  • Many
  • Webdock, Fast VPS Hosting
  • DevSquad
  • OP.GG

Contributing

Thank you for considering contributing to the Laravel framework! The contribution guide can be found in the Laravel documentation.

Code of Conduct

In order to ensure that the Laravel community is welcoming to all, please review and abide by the Code of Conduct.

Security Vulnerabilities

If you discover a security vulnerability within Laravel, please send an e-mail to Taylor Otwell via taylor@laravel.com. All security vulnerabilities will be promptly addressed.

License

The Laravel framework is open-sourced software licensed under the MIT license.

Распродажа!

руб.299

-95%

Представляем Вашему вниманию курс по изучению PHP-фреймворка Laravel. Курс состоит из двух частей и включает в себя 58 уроков общей продолжительностью более 21 часа видео. Курс подойдет:

  • Описание

  • Отзывы 0

Описание

Представляем Вашему вниманию курс по изучению PHP-фреймворка Laravel. Курс состоит из двух частей и включает в себя 58 уроков общей продолжительностью более 21 часа видео.

Курс подойдет:

Разработчикам с небольшим опытом

Курс прежде всего рассчитан на веб-разработчиков с некоторым опытом работы, которые хотят углубить свои знания в программировании на PHP и получить новые востребованные знания и навыки веб-программирования с применением Laravel.

Имея хотя бы базовые знания PHP и некоторый опыт, вы ничем не ограничены при создании сложных сайтов. Laravel значительно облегчит и ускорит любую вашу задачу по написанию РНР-кода по меньшей мере в 5-10 раз.

Опытные PHP-кодеры, изучившие Laravel, смогут качественно разрабатывать и тестировать намного большее количество сложных проектов за то же время.

Средняя заработная плата Middle-разработчика со знанием Laravel составляет 100-120 тысяч рублей.

Начинающим веб-разработчикам

Если вы новичок в РНР, то, вероятнее всего, сможете освоить курс самостоятельно, затратив немного больше времени и постоянно практикуясь (см. ответы на частые вопросы).

Все базовые теоретические знания по РНР, которые нужны для успешного изучения фреймворка, входят в данный курс бонусами.

Наличие русскоязычной документации и развитое русскоязычное сообщество делают Laravel идеальным фреймворком для новичков.

Даже Junior-разработчикам с минимальным опытом, или вообще без опыта, работодатели готовы платить от 40.000 рублей. При этом зачастую можно работать удаленно.

Если вы ищете новую перспективную профессию чтобы стартовать во фрилансе, то курс вам поможет получить должные знания и навыки, а также наработать портфолио.

Содержание:

Часть 1. Изучение Laravel
Первая часть курса посвящена исключительно изучению Laravel и его возможностей. Поскольку Laravel – это фреймворк, написанный на PHP, соответственно, для успешного изучения фреймворка вам необходимы знания и навыки работы с языком программирования PHP.

В уроках первой части вы найдете всю необходимую базу для понимания принципов работы с Laravel и для дальнейшего самостоятельного изучения этого фреймворка. Фактически, данная часть курса является необходимым фундаментом для дальнейшего изучения и работы с фреймворком.

Из уроков первой части вы узнаете, как установить и настроить Laravel, узнаете о паттерне MVC и его компонентах – контроллерах, моделях и видах, научитесь работать с интерфейсом командной строки Artisan. Много уроков отведено под такие темы, как: роутинг, работа с моделями, работа с шаблонизатором Blade и т.д.

Часть 2. Практика создания сайта на Laravel
Вторая часть курса будет посвящена повторению и закреплению пройденного в первой части материала. Во второй части полученные знания будут применены на практике и в качестве практики будет создан блог, предполагающий следующий функционал: категории статей, статьи, метки (теги), связанные со статьями, поиск и т.д.

Понравилась статья? Поделить с друзьями:

А вот и еще наши интересные статьи:

  • Мазь нистатин инструкция по применению детям
  • Нормакс капли в нос инструкция по применению
  • Deka power 150 зарядное устройство инструкция
  • Инструкция по эксплуатации фронтального погрузчика хундай
  • Альфа нормикс инструкция по применению цена отзывы аналоги таблетки цена

  • 0 0 голоса
    Рейтинг статьи
    Подписаться
    Уведомить о
    guest

    0 комментариев
    Старые
    Новые Популярные
    Межтекстовые Отзывы
    Посмотреть все комментарии