Читаем Laravel – гайд по выживанию полностью

Route::delete('/zombie', function { echo "We want to destroy a zombie";

});


Эти методы – POST, GET, PUT и DELETE – являются частью архитектуры RESTful, каждый из которых отражает определенное действие:


POST: Создание сущности (Create).

GET: Чтение сущности или нескольких сущностей (Read).

PUT: Обновить сущность (Update).

DELETE: удаление сущности (Delete).


Эта техника также называется CRUD (Create, Read, Update, Delete).


Чаще всего мы будем использовать метод GET, но есть также маршрут, который можно использовать для получения любого метода:



Route::any('/zombie', function {

echo "Any request from this zombie route";

});


Отлично!


Итак, как мы инициируем наши маршруты из браузера? В большинстве случаев мы используем GET-запрос. Введя site.com/zombie, мы получаем функцию GET. Но как насчет передачи данных?


Легко! Для этого подойдет HTML-форма, подобная этой:


@csrf

@method('PATCH')


При нажатии кнопки submit на этой форме данные будут отправлены на POST-маршрут site.com/zombie.


Обратите внимание на передачу @csrf и дополнительного указания метода. Указание метода необходимо из-за того, что в HTTP не существует метода ‘PATCH’. Таким образом мы даем понять Laravel, какое именно действие нужно совершить с данными из этой формы.


Пример быстрой маршрутизации

Представьте, что перед вами стоит задача убить (удалить) зомби-изгоя! Сначала необходимо создать форму:


@csrf

@method(DELETE)


На ней отображается кнопка "Уничтожить". Для простоты мы жестко задали идентификатор 2, который, как правило, зависит от конкретного зомби.


Далее, давайте составим маршрут:


use Illuminate\Http\Request; Route::delete('/zombie', function(Request $request){

$id = $request->id; Zombie::destroy($id);

});


И вот уже нет проблемного зомби с идентификатором 2! Обратите внимание на включение класса Request из Laravel, который перехватывает данные запроса. Вам придется не забыть объявить пространство имен, когда вы захотите использовать объект запроса.


Внимание! Этот пример пока не будет полностью рабочим, так как наша база данных и модели еще находятся в процессе создания. Мы займемся этим в ближайшее время.


Мы использовали закрытие маршрутов. Далее обсудим разницу между закрытием маршрутов и контроллерами маршрутов.

Закрытие маршрута и действия контроллера маршрута


Закрытие маршрута – это непосредственная функция, содержащая код, как показано здесь:


Route::get('/zombie', function{

echo 'Greetings from the Zombie Page!';

});


Для действия контроллера маршрута мы указываем, какой метод контроллера следует вызвать:


Route::get('/zombie', [ZombieController::class, 'index']);


Обращение к /zombie вызывает метод index в ZombieController.


Более подробно мы рассмотрим контроллеры в ближайшее время. Запомните эти различия, и они станут более понятными.

Параметры маршрута


Иногда маршруты требуют параметров.


Например, для просмотра конкретного зомби по адресу site.com/zombie/5 требуется включить в маршрут параметр:


Route::get('/zombie/{id}', function($id){

echo "You've encountered a zombie with ID: " . $id;

});


Если наши модели и база данных работают, то это позволит получить и отобразить информацию о конкретном зомби:


Route::get('/zombie/{id}', function($id){

$zombie = Zombie::find($id);

echo 'Name: ' . $zombie->name . '
';

echo 'Strength: ' . $zombie->strength . '
'; echo 'Health: ' . $zombie->health . '
';

});


Напоминаем, что наша настройка не завершена, поэтому данный пример пока не будет работать идеально. С учетом сказанного, в следующей теме мы рассмотрим все это вместе.


3. Модели


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


Что же такое модели?


В Laravel модель – это PHP-класс, который управляет взаимодействием между кодом вашего приложения и базой данных. Расширение класса Laravel Eloquent Model позволяет сделать эти взаимодействия простыми и понятными.


Модель Zombie


Возьмем, к примеру, модель Zombie, которая будет размещена по адресу /app/Models/Zombie.php:



namespace App\Models;

Перейти на страницу:

Похожие книги

Внутреннее устройство Microsoft Windows (гл. 1-4)
Внутреннее устройство Microsoft Windows (гл. 1-4)

Книга посвящена внутреннему устройству и алгоритмам работы основных компонентов операционной системы Microsoft Windows — Windows Server 2003, Windows XP и Windows 2000 — и файловой системы NTFS. Детально рассмотрены системные механизмы: диспетчеризация ловушек и прерываний, DPC, APC, LPC, RPC, синхронизация, системные рабочие потоки, глобальные флаги и др. Также описываются все этапы загрузки операционной системы и завершения ее работы. B четвертом издании книги больше внимания уделяется глубокому анализу и устранению проблем, из-за которых происходит крах операционной системы или из-за которых ее не удается загрузить. Кроме того, рассматриваются детали реализации поддержки аппаратных платформ AMD x64 и Intel IA64. Книга состоит из 14 глав, словаря терминов и предметного указателя. Книга предназначена системным администраторам, разработчикам серьезных приложений и всем, кто хочет понять, как устроена операционная система Windows.Названия всех команд, диалоговых окон и других интерфейсных элементов операционной системы приведены как на английском языке, так и на русском.Версия Fb2 редакции — 1.5. Об ошибках просьба сообщать по адресу — general2008@ukr.net.

Дэвид Соломон , Марк Руссинович

Зарубежная компьютерная, околокомпьютерная литература / Прочая компьютерная литература / Книги по IT
Кодеры за работой. Размышления о ремесле программиста
Кодеры за работой. Размышления о ремесле программиста

Программисты - люди не очень публичные, многие работают поодиночке или в небольших группах. Причем самая важная и интересная часть их работы никому не видна, потому что происходит у них в голове. Питер Сейбел, писатель-программист, снимает покров таинственности с этой профессии. Он взял интервью у 15 величайших профессионалов: Кена Томпсона, создателя UNIX, Верни Козелла, участника первой реализации сети ARPANET, Дональда Кнута, Гая Стила, Саймона Пейтон-Джонса, Питера Норвига, Джошуа Блоха, Брэда Фицпатрика, создателя Живого Журнала, и других. Все они "подсели" на программирование еще в школе. Тогда, на заре зарождения отрасли, лишь в немногих учебных заведениях читались курсы по компьютерным наукам. Поэтому будущим гуру приходилось покорять профессиональные вершины самостоятельно, но всех их отличает творческое горение и полная самоотдача любимому делу.Вы узнаете, что они думают о будущем программирования и как сами научились программировать, как, по их мнению, нужно проектировать ПО, как выбор языка программирования влияет на продуктивность и можно ли облегчить выявление труднонаходимых ошибок.

Питер Сейбел

Биографии и Мемуары / Программирование / Прочая компьютерная литература / Документальное / Книги по IT