Фреймворк Laravel быстрый старт для PHP-разработчика


Чтобы посмотреть этот PDF файл с форматированием и разметкой, скачайте его и откройте на своем компьютере.
Фреймворк
Laravel
: быстрый старт
для PHP
-
разработчика
PHP
разработчик
Давыдов Роман
Что такое
Framework
И
чем
он
нам
так
@ильно
поможет
в
разработке
?

Набор
ин@трументов
,
библиотек
и
модулей

Методоло“ия
Преимущества
использования
Framework

Framework
@одержит
о@новные
компоненты
.

И@пользование
методоло“ии
.

Код
@труктурирован
,
в@лед@твие
че“о
понятен
дру“им
про“рамми@там
.

Про@тая
ра@–иряемо@ть
.

Обновления
и
доработки
,
@ообще@тво
.
Установка
Laravel
через
Composer

У@танавливаем
у@тановщик
Laravel
:
composer global require "
laravel
/installer“

Делаем
alias
для
у@тановщика
(
Linux):
alias
laravel
=~/.composer/vendor/bin/
laravel

У@танавливаем
Laravel
:
laravel
new blog
Настройка
Laravel

О@новные
на@тройки
Laravel
хранят@я
в
файле

@реды

.
env

О@тальные
на@тройки
можно
найти
в
папке
config
.
Консольный помощник
Artisan
Artisan

это
незаменимый
помощник
при
разработке
на
Laravel
:

Запу@к
/

откат

ми“раций
проекта
(
@труктура
БД
)

Авто“енерация
кла@@ов
и
модулей

Вывод
информации
о
вер@ии
,
@реде
и
мар–рутах
.

Обновление
ке–а
приложения
И
мно“ое
дру“ое
..
Laravel
& MVC
Framework
Laravel

типичный
пред@тавитель
MVC
-
паттерна
:
В
нём
при@ут@твует
разделение
на
модели
,
контроллеры
и
пред@тавления
.
Модели
:
app/
Контроллеры
:
app/Http/Controllers/
Пред@тавления
:
resources/views/
С ЧЕГО НАЧАТЬ?
Вторым
параметром
в
мар–рут
передает@я
е“о
дей@твие
:
функция
замыкание
или
передача
управления
в
контроллер
.
Внутри
роутера
уже
е@ть
как
пример
@амый
про@той
вариант
:
Route::get('/', function() {
return view('welcome');
});
Все запросы от пользователей
попадают в
маршрутизатор
В@е
запро@ы
должны
быть
заре“и@трированы
в
routes/web.php
При
этом
кла@@
Route
позволяет
ре“и@трировать
любые
варианты
запро@ов
.
Route::get
()

ре“и@трация
мар–рута
@
методом
Route::post()

ре“и@трация
мар–рута
@
методом
POST
При
этом
первый
параметр

это
uri
,
а
второй

дей@твие
.
Поддерживают@я
также
любые
дру“ие
методы
,
а
также
параметры
в
запро@ах
.
Миграции
Зачем
нужны
:

Бы@тро
@оздать
@труктуру
БД

Иметь
возможно@ть
хранить
@труктуру
внутри
кода

Обновлять
@труктуру
БД
Что
это
?

Кла@@ы
,
@одержащие
опи@ание
@труктуры
БД

Каждый
кла@@
@одержит
2
зеркальных
метода
:
up&down

Ми“рации
хранят@я
в
database/migrations/
Создание и запуск миграций
artisan
make:migration
название
_
ми“рации
поддерживает
также
фла“

table=
название
_
таблицы
Запу@к
ми“раций
:
artisan migrate
Откат
ми“раций
:
artisan
migrate:rollback
Контроллеры
Контроллеры

это
кла@@ы
,
@одержащие
ло“ику
приложения
.
Методы
контроллера

они
же

эк–ины


функции
,
которые
выполняют@я
при
определенных
запро@ах
пользователей
.
Один
запро@

один

эк–ин
.
То
е@ть
каждый
метод
отвечает
за
@вою
функцию
.
Создание контроллера
artisan
make:controller
-
Создает@я
кла@@
внутри
папки
app/Http/Controllers/
который
уже
на@ледует@я
от
базово“о
контроллера
и
имеет
нужный
namespace
Ресурс
-
контроллер
artisan
make:controller

resource

model=User
-
Создает@я
кла@@
внутри
папки
app/Http/Controllers/
который
уже
на@ледует@я
от
базово“о
контроллера
и
имеет
нужный
namespace
а
также
имеет
7
методов
по
REST
.
Каждая
@ущно@ть
,
которую
нужно
редактировать
/
про@матривать
/
удалять
/
обновлять

это
ре@ур@
.
Для
таких
ре@ур@ов
боль–е
в@е“о
и
подходят
ре@ур@
-
контроллеры
Глагол
Ссылка (
uri
)
Действие (метод)
Маршрут (имя)
/posts
index
posts.index
/posts/create
create
posts.create
POST
/posts
store
posts.store
/posts/{photo}
show
posts.show
/posts/{photo}/edit
edit
posts.edit
PUT/PATCH
/posts/{photo}
update
posts.update
/posts/{photo}
destroy
posts.destroy
Пример
ресурс
-
контроллера
для
posts
Для
то“о
,
чтобы
реализовать
@вязку
от
запро@ов
к
ре@ур@
-
контроллеру
,
в
роутере
нужно
заре“и@трировать
ре@ур@
:
Route::resource('posts', '
PostsController
');
Ресурс
-
контроллер в роутере
Модель

это
кла@@
,
опи@ывающий
некоторую
@ущно@ть
.
Модель
работает
@
базой
и
позволяет
нам
аб@тра“ировать@я
от
@по@оба
хранения
этой
информации
в
базе
данных
.
Модель
Создание
модели
:
artisan
make:model
название
_
модели
Автоматиче@ки
попадают
в
app/
При
этом
нужно
придерживать@я
правила
:
Название
модели
в
един@твенном
чи@ле
CamelCase
Название
таблицы
для
модели

то
же
название
,
но
во
множе@твенном
чи@ле
snace_case
Первичный
ключ

id
а
@@ылка
на
вне–нюю
таблицу
(
@вязь
)
название
_
@ущно@ти
_
id (
user_id
,
post_id
и
т
.
д
.)
Laravel
:
Модель
Eloquent
Дополнительные возможности
маршрутизации
Передача
управления
из
роутера
в
контроллер
(
метод
):
Route::get('/', '
[email protected]
');
Именование
мар–рутов
(
для
возможно@ти
их
вызова
из
кода
или
пред@тавления
):
Route::get('/', '
[email protected]
')
-
�name('index
-
page');
Дополнительные возможности
маршрутизации
Группировка
@вой@тв
мар–рутов
:
Route::group(['middleware' =� 'auth'], function () {
...
});
Параметры
в
мар–рутах
:
Route::get('{category}/{post}', '
[email protected]
');
Связи между сущностями
Для
то“о
,
чтобы
через
модель
реализовать
@вязь
один
ко
мно“им
(
или
один
к
одному
)
е@ть
не@колько
методов
внутри
Eloquent:
belongsTo
()
belongsToMany
()
hasOne
()
hasMany
(
)
Связи между сущностями
Е@ть
2
таблицы
:
categories
и
posts
У
таблицы
posts
е@ть
поле
category_id
,
которое
указывает
,
к
какой
кате“ории
принадлежит
по@т
:
Post
будет
иметь
метод
,
возвращающий
кате“орию
через
$this
-

belongsTo
('App
\
Category');
Category
будет
иметь
до@туп
ко
в@ем
@вязанным
по@там
через
$this
-

hasMany
('App
\
Post')

Генерация
авторизации
одной
@трочкой
:
artisan
make:auth
Админка
из «коробки»
Laravel
Представления
В
Laravel
е@ть
в@троенный
–аблонизатор
:
Blade
Blade
позволяет
:
Работать

Отображать
переменные

Работать
@
циклами
,
у@ловными
кон@трукциями
и
вложениями
В@е
–аблоны
хранят@я
в
resources/views
Вызов
–аблона
прои@ходит
в
конце
метода
контроллера
через
херлпер
view
.
Первым
параметром
являет@я
название
,
вторым

параметры
.
return view('posts', ['list' =� $posts]);
-
будет
вызвано
пред@тавление
по
пути
resoruces
/views/
posts.blade.php
в
которое
будут
переданные
данные
из
переменной
$posts
.
До@тупны
эти
данные
будут
в
пред@тавлении
внутри
переменной
$list.
Вызов представления
Конструкции, доступные в
Blade
Отображение
переменной
:
{{ $
var
}}
Циклы
:
@
foreach
()
@for()
У@ловия
@if()
@
isset
()
@auth
Конструкции, доступные в
Blade
Подключение
под–аблона
:
@include()
@yield…. @extends…. @section
Работа с запросом
Для
то“о
,
чтобы
работать
@
запро@ом
(
передаваемыми
данными
)
в
Laravel
е@ть
не@колько
@по@обов
.
Одн
из
них

подключение
кла@@а
Request
как
ар“умент
метода
контроллера
.
Из
это“о
кла@@а
как
@вой@тва
@озданно“о
объекта
будут
до@тупны
в@е
переменные
из
запро@а
.
$request
-
�title;
Или
можно
во@пользовать@я
методом
all
и
взять
ма@@ив

в@еми
данными
из
запро@а
:
$request
-
�all();
Валидация
запроса
В
Laravel
е@ть
в@троенный
механизм
для
валидации
передаваемых
полей
:
$this
-
�validate($request, [
"title" =� "required|min:3",
"slug" =� "required|min:3|unique:categories,slug",
]);
Полный
@пи@ок
правил
валидации
можно
по@мотреть
в
официальной
документации
.
Git
репозиторий
с кодом из занятия
https://github.com/warlight/open
-
lesson
-
laravel.git

Приложенные файлы

  • pdf 7981076
    Размер файла: 735 kB Загрузок: 0

Добавить комментарий