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

Весь ваш додаток можна створити просто за допомогою Closures у файлі route.php, воно стане безладним, але буде виконаним. Що робити, якщо ви можете організувати весь ваш процес за допомогою класів Controller? Подивимося, як. Контролери можуть працювати в межах одного класу, всі пов'язані з цим логіки обробки запитів. Додаток каталогу / Http / Контролери відповідає за зберігання контролерів. У рамках MVC "C" означає "Контролер", який виконує функції керування трафіком серед представлень та моделей. У цій темі ми збираємося дізнатися про контролери Laravel.

Список контролерів Laravel

Ось перелік контролерів Laravel, згаданий нижче

1. Основні контролери

Нижче ви можете ознайомитись з основним прикладом класу контролерів. Ви можете помітити тут, що "MyController" розширює "Контролер". Тут "Контролер" - базовий клас. Базовий клас "Контролер" пропонує такі методи, як "проміжне програмне забезпечення", "диспетчеризація" та "валідація" методів, що робить його зручним. Ви можете використовувати проміжне програмне забезпечення для призначення маршруту контролера або в конструкторі вашого контролера.

<_?php
namespace App\Http\Controllers;
use App\Http\Controllers\Controller;
use App\User;
class MyController extends Controller
(
/**
* Show profile
*
*/
public function show($id)
(
return view('user.profile', ('user' => User::foundOrLost($id)));
)
)

Маршрут до MyController можна визначити так:

Route::get('user/(id)', ' ');

Призначення проміжного програмного забезпечення у файлах маршрутів:

Route::get('profile', ' ')->middleware('auth');

Коли URI маршруту збігається з конкретним запитом, тоді метод "show" класу "MyController" виконується і параметри, зазначені в маршруті, також призначаються методу.

Ще кілька вишень для вас:

  • Не потрібно згадувати повний простір імен для контролера, оскільки "RouteServiceProvider" автоматично завантажується в групу маршрутів, яка містить в ньому простір імен, усі файли маршрутів. Вам просто потрібно вказати ту частину імені, яка з’явиться після програми \ Http \ Controllers.
  • Якщо ви хочете визначити контролер з одною дією, ви зможете це зробити, розмістивши на своєму контролері один метод "__invoke".

2. Контролери ресурсів

Під час створення програми нам потрібні операції зі створенням CRUD (Створення, читання, оновлення, видалення). З контролерами ресурсів Laravel просто потрібно створити контролер, і ви можете залишити відпочинок на Laravel. Маршрут ресурсу Laravel надасть маршрути операцій CRUD контролеру, що також просто з одним рядком кодування. Один маршрут може бути зареєстрований для всіх методів у файлі route.php.

Візьмемо приклад, припустимо, для вашої програми ви хочете зробити контролер, який обробляє всі вхідні запити HTTP щодо збережених "зображень". Це буде швидко зроблено за допомогою командування Artisan. Давайте розглянемо команду Artisan 'make: controller' швидко, щоб створити один подібний контролер наступним чином:

php artisan make:controller ImageController --resource

Контролер буде створено в додатку / Http / Контролери / ImageController.php за допомогою вищевказаної команди. Цей контролер буде складатися з методу, присвяченого кожній доступній операції з ресурсами.

Тепер ви можете оголосити маршрут для обробки подібних дій:

Route::resource('images', 'ImageController');

Це оголошення маршруту створює багато маршрутів, які можуть обробляти численні дії. Цей контролер буде мати конкретні методи для кожної доступної дії. Він також буде включати нотатки, які інформуватимуть вас про URI та HTTP дієслова, якими обробляється.

Якщо ви хочете за один раз зареєструвати більше одного контролера ресурсів, ви можете зробити це за допомогою масиву, як показано нижче:

Route::resources((
'images' => 'ImageController',
'posts' => 'PostController'
));

Таблиця дій

ДієсловоURI / ШляхДія подіїНазва маршруту
ПОШТА/ образимагазинimages.store
ЗАРАЗ/ образипокажчикimages.index
ЗАРАЗ/ образи / творититворитиimages.create
ЗАРАЗ/ images / (image)шоуimages.show
PUT / PATCH/ images / (image)оновленняimages.update
ЗАРАЗ/ images / (image) / редагуватиредагуватиimages.edit
УДАЛИТИ/ images / (image)знищитиimages.destroy

3. Неявні контролери

За допомогою цих контролерів ви можете впоратися з кожною дією, просто визначивши один маршрут. Спочатку слід визначити маршрут за допомогою контролера Route :: таким чином:

Route::controller('users', 'MyController');

Тут два аргументи передаються контролеру.

  1. Базовий URI
  2. Ім'я класу контролера

Тепер ви просто повинні додати методи до "MyController" з дієсловом HTTP з префіксом до них.

class MyController extends Controller (
public function getIndex()
(
//
)
public function anyLogin()
(
//
)
public function postProfile()
(
//
)
)

Методи "індекс" будуть відповідати "користувачам", який кореневим / базовим URI керує Controller.

Доступ з декількома словами можна отримати за допомогою "тире" в URI. Дивіться нижче дії контролера як приклад:

public function getAdminProfile() ()

Ця дія контролера в MyController відповість на URI "користувачів / профіль адміністратора".

4. Залежно впорскування та контролери

Введення залежностей полегшує тестування та обслуговування веб-додатків.

1. Інжекція конструктора

Laravel управляє залежностями класу і вирішує всі контролери. Вашому контролеру можуть знадобитися залежності в конструкторі, за допомогою Laravel ви можете натякнути майже будь-яку з цих залежностей. Контролер служби Laravel вирішить всі залежності автоматично і введе їх у екземпляр контролера.

<_?php
namespace App\Http\Controllers;
use App\Repositories\UserRepository;
class MyController extends Controller
(
/**
* The user repository instance.
*/
protected $users;
/**
* Create a new controller instance.
*
* @param UserRepository $users
* @return void
*/
public function __construct(UserRepository $users)
(
$this->users = $users;
)
)

2. Спосіб ін'єкцій

Окрім введення залежностей у конструктор, ви також можете набрати їх натяки на методи вашого контролера. Наприклад, наприклад, Illuminate \ Http \ Request можна ввести в метод контролера наступним чином:

<_?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
class MyController extends Controller
(
/**
* Store a new user.
*
* @param Request $request
* @return Response
*/
public function store(Request $request)
(
$name = $request->name;
//
)
)

Особливості контролерів Laravel

Нижче наведено кілька особливостей контролера laravel:

  • Підтримка MVC: Laravel підтримується MVC Architecture. Це робить процес швидким, оскільки один користувач може працювати за логікою, а інший працює на огляді. Для моделі підтримується безліч думок без дублювання, оскільки бізнес-логіка відокремлена від логіки презентації.
  • Перевірка автентичності: Laravel має вбудовану систему для аутентифікації, вам потрібно подбати лише про інші аспекти, такі як налаштування представлень, моделей та контролерів.
  • Безпека: безпека - це головний фактор, який слід враховувати при розробці програми. Laravel забезпечує безпеку завдяки вбудованій безпеці програми.
  • Artisan: Artisan допомагає виконувати повторювані завдання, не маючи їх виконувати розробники вручну. Вони можуть бути використані для створення структури бази даних, коду, міграції, щоб зробити її керованою.
  • Шаблони: За допомогою інноваційного та потужного механізму роботи шаблонів Laravel, розробники можуть створювати динамічні веб-додатки.

Рекомендовані статті

Це посібник з контролерів Laravel. Тут ми обговорюємо досить багато концепцій контролерів Laravel, які дозволять вам створити власний контролер для вашої програми, який буде одночасно безпечним і потужним. Ви також можете переглянути наступну статтю, щоб дізнатися більше -

  1. Що таке Рамка Laravel?
  2. Команди Ларавеля
  3. Що таке Laravel?
  4. Що таке сервлет?