Vọc vạch View trong laravel

Bài này dịch từ bài này 😉

Khi làm việc với laravel, chắc hẳn bạn dùng rất nhiều đoạn code này. Nó rất tiện lợi trong việc trả về một view sau khi controller thực thi các tác vụ liên quan đến business requirement.

Tuy nhiên, nó làm việc thế nào, hơi bị ảo đúng không nhỉ? Cùng đào sâu tìm hiểu thử xem thế nào? 🙂

Đây là tài liệu từ laravel về views: https://laravel.com/docs/master/views

Nhưng mình nghĩ nó không đầy đủ lắm, đào sâu xem coi thử nó chạy sao nhỉ?

Đầu tiên, laravel có hàm view được viết trong file helpers.php. Đây là file helpers

Illuminate\Foundation\helpers.php

Mình nghĩ ,có 2 thứ cần xem xét ở đây

1. $factory = app(ViewFactory::class);

2. return $factory->make($view, $data, $mergeData);

Đầu tiên (tiền đâu) là $factory = app(ViewFactory::class);

Thực ra, nó tạo ra một thực thể $factory (và được inject vào thực thể $app). Khi ứng dụng được khởi tạo thì nó sẽ gọi hàm registerCoreContainerAliases (github code).

Cùng xem thử hàm registerCoreContainerAliases xem sao nhé

Để ý rằng view là alias, bạn có thể đặt bất kỳ cái tên nào khác tùy ý (vd: myView, viewCuaTao, etc …)

Sau đó trong file Illuminate\View\ViewServiceProvider.php, xem thử hàm registerFactory

Như đã đề cập ở trên, tên view này có thể là bất kỳ thứ quái gì, miễn là bạn đặt cùng tên trong 3 files (helpers.php, Application.php,ViewServiceProvider.php)

Thứ 2: return $factory->make($view, $data, $mergeData);

Cùng xem thử hàm make xem sao nào?

Nó sẽ trả về đối tượng View (\Illuminate\View\View)

Đơn giản thế thôi (nếu không hiểu thì còm liền :v )

Nếu bạn có thắc mắc gì, vui lòng còm bên dưới.

3 thoughts on “Vọc vạch View trong laravel”

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.