Có rất nhiều middleware hữu ích đã được đăng ký bên trong Laravel, như cơ chế authentication, authorization, throttler và kể cả cơ chế route model binding. Ngoài ra còn có một middleware ít được nhắc đến là SetCacheHeaders, có alias là cache.headers. Middleware này có thể được sử dụng để thêm cache headers vào Response. Cache headers là gì? Nếu bạn chưa biết đến cache headers, nghĩa là bạn chưa biết HTTP Cache...
Middleware cache headers Laravel1. What is eager loading ? Laravel là một trong những framework của php phổ biến hiện nay, được cộng đồng php developer yêu thích và sử dụng. Query Performance là chủ đề mà nhiều bạn khi mới bắt đầu tiếp cận laravel có thể chưa quan tâm đến, nhưng nó lại là một vấn đề hết sức quan trọng trong hệ thống. Khi chúng ta sử dụng Eloquent Relationships trong laravel, mặc định nó sẽ ở chế độ...
Happy New Year Laravel eager loadingGiới thiệu về Swagger RESTful API là một tiêu chuẩn dùng trong việc thiết kế API cho các ứng dụng web (thiết kế Web services) để tiện cho việc quản lý các resource. Nó chú trọng vào tài nguyên hệ thống (tệp văn bản, ảnh, âm thanh, video, hoặc dữ liệu động…), bao gồm các trạng thái tài nguyên được định dạng và được truyền tải qua HTTP, các RESTful API được xây dựng để cung cấp quyền sử...
PHP Happy New Year Laravel Swagger Basic swaggerTiêu đề là mình lấy từ trang chủ của https://inertiajs.com/ chứ không phải mình tự nghĩ ra đâu nhé :v. Lâu lâu rồi chưa động tới Laravel (dự án cuối cùng mình code là ở ver 5.8), thế nên một ngày đẹp trời lượn vào đọc docs ver 8.x tí và thấy cái gọi là Laravel Jetstream. Ngay ở phần Introduction mình đã đọc được 2 thứ nghe khá mới lạ đối với mình là Livewire và Inertia (có lẽ với nhiều...
Happy New Year Laravel InertiaJS1. Show database query in raw SQL format. Đôi khi bạn có thể muốn xem một số truy vấn cơ sở dữ liệu ở định dạng raw SQL để tối ưu hóa hiệu suất của ứng dụng của bạn hoặc đơn giản cho mục đích gỡ lỗi. Có nhiều cách để đạt được điều này. Tùy chọn đầu tiên là sử dụng tính năng query logging. DB::enableQueryLog(); // Bật tính năng query logging DB::table('users')->get(); // Chạy truy...
LaravelGiải thích về issue: Khi validate data có dạng array object, bạn dùng validation form có rules như bên dưới. public function rules() { return [ 'timestamp' => 'nullable|max:20|date_format:Y/m/d H:i:s', 'count' => 'nullable|integer', 'data' => 'required|array', 'data.*.id' => 'required|max:100', 'data.*.type' => 'required|max:20', 'data.*.name' =>...
Happy New Year LaravelLỗi như tiêu đề, bạn có thể xem tại https://github.com/laravel/framework/issues/15696 Và 1 lần nữa mấy anh contributors của laravel lại bảo đây là feature =)) https://github.com/laravel/framework/issues/15696#issuecomment-250935907 Tóm tắt lại là laravel sẽ chạy lại job sau khi job bị timeout bất kể bạn để try time bao nhiêu lần. Đọc code của laravel bạn sẽ thấy....
Happy New Year LaravelMở đầu Hiện nay, các ứng dụng web hiện đại thường tách biệt các thành phần frontend và backend, việc này giúp cho bạn chủ động trong việc phát triển từng thành phần, có thể deploy từng thành phần riêng biệt. Khi đó phía frontend sẽ sử dụng dữ liệu từ backend thông qua các API, vì thế dần bạn sẽ phải quan tâm tới các request tới API, khi nào cần fetch dữ liệu từ API, hay khi nào dữ liệu...
PHP Happy New Year Laravel RubyMột ứng dụng hoàn hảo không chỉ dừng lại ở việc các chức năng chạy đúng mà nó còn phải mang đến cho người dùng sự trải nghiệm tốt nhất. Không ai thích các ứng dụng chậm đúng không ạ. Nếu ứng dụng của bạn chậm, điều này sẽ rất bất lợi, nó làm cho xu hướng người dùng giảm một cách nhanh chóng. Vì vậy việc tối ưu hóa hiệu suất là việc rất cần thiết. Trong bài viết này,...
Laravel Optimization performance1.Giới thiệu Laravel cung cấp phương pháp dễ dàng tạo dữ liệu mẫu trong database bằng các lớp seed. Nhưng sẽ rất hữu ích nếu bạn có thể nhập số lượng record ưa thích mỗi khi seeder, tức là bạn không hard code or setting .env nữa . Thay vồ đó, bạn chỉ cần nhập số record mỗi khi chạy command, kiểu như thế này: How many books you want to create? 2.Bắt đầu Tạo Factory BookFactory.php trong...
Happy New Year LaravelLaravel là một trong những khung ứng dụng web open-source hiện đại được sử dụng nhiều nhất, được sử dụng nhiều nhất. Nó cung cấp các tính năng độc đáo như Eloquent ORM, Query builder, Homestead là những tính năng hiện đại, chỉ có trong Laravel. Tôi thích Laravel vì thiết kế kiến trúc độc đáo của nó. Đằng sau Laravel sử dụng các design pattern như Singleton, Factory, Builder, Facade, Strategy,...
Happy New Year Laravel IoCTrong một dự án thực tế việc chúng ta phải query filter cho các phần search data cho một website là một chức năng thông thường. Vậy làm sao để xây dựng filter một cách hiệu quả dễ mở rộng, thay đổi, tái sử dụng. Trong bài viết này mình sẽ hướng dẫn các bạn query filter trong laravel và nó không thật sự quá khó đâu. 1. Cách làm thông thường public function index(Request $request) { $user =...
Laravel queryfilterLaradock hiện tại đang được sử dụng khá phổ biến bởi tính linh hoạt cũng như độ phủ về mặt setting cho nhu cầu làm về Website, cũng như ngôn ngữ PHP đa phần chúng ta bắt gặp khá nhiều. Khi bạn cần bất kỳ service nào chỉ đơn giản hãy cài đặt nó từ 1 cấu hình có sẵn và chỉ phải sửa tham số riêng theo server với project của bạn mà thôi. Một phần mà chúng ta gẫn như luôn phải cài...
PHP Happy New Year Laravel LaraDockLời nói đầu Trong xã hội số hiện nay, phần lớn các sản phẩm đều cần định danh khách hàng để có thể dễ dàng kiểm tra được tình hình phát triển của sản phẩm, từ đó đưa ra các chiến lược marketing, phát triển phù hợp. Và cách duy nhất để làm được điều đó chính là yêu cầu người dùng đăng kí tài khoản, bằng cách cung cấp thêm nhiều tính năng chỉ User có mà Guest không có (ví...
Happy New Year Laravel Authenication Social Network1. Giới thiệu Nếu bạn mới làm quen với Laravel, có thể bạn sẽ không biết khái niệm về pivot table và công dụng tuyệt vời của nó trong các ứng dụng. Thoạt nghe bạn có thể thấy lạ nhưng khi sử dụng nó có thể rất hữu ích trong việc build many-to-many relationship(mối quan hệ nhiều-nhiều). Về cơ bản, pivot table là một bảng chung giữa hai bảng chính(main tables) trong mối quan hệ nhiều-nhiều. Trên...
Laravel pivotI. Giới thiệu Datatables cung cấp cho chúng ta tìm kiếm nhanh, phân trang, sắp xếp, v.v. Nó tìm các bản ghi thông qua eloquent model bằng sử dụng ajax query. Để có thể sử dụng được datatables các bạn cần có những kiến thức cơ bản liên quan tới: M-V-C. II. Cài đặt và sử dụng Trong phần này mình đơn giản sẻ chia thành 3 phần cơ bản chính cần quan tâm: Server Side Package: laravel-datatables để xử lý...
Happy New Year Laravel DatatableIntroduction Lazy Collection là một tính năng mới của Laravel được giới thiệu trong phiên bản 6.0. Đây là một sự bổ sung cho tính năng Collection vô cùng hữu ích đã có trước đó của Laravel cho phép ta giảm thiểu bộ nhớ sử dụng. Vì là một tính năng mới, hiện các tài liệu về Lazy Collection vẫn còn hạn hẹp nên mình xin phép góp vui một bài viết đi vào tìm hiểu về Lazy Collection và có một cái...
PHP collection Laravel MayFest Lazy CollectionCho dù các bạn đang sử dụng ngôn ngữ lập trình nào thì việc kiểm tra tính hợp lệ của dữ liệu khi người dùng gửi lên cũng đều rất cần thiết. Trong bài viết này mình sẽ giới thiệu với các bạn về việc xử lý dữ liệu đầu vào bằng cách sử dụng Validation trong Laravel 1. Tạo đường dẫn Đầu tiên chúng ta tạo ra 2 đường dẫn để thao tác, ví dụ với việc đăng nhập người...
Laravel May Fest validationNếu bạn đã làm việc với framework Laravel thì chắc hẳn bạn có sử dụng đến Artisan rồi, Ở bài này chúng ta sẽ tìm hiểu rõ hơn về artisan và các ứng dụng của nó. Laravel Artisan là gì ? Laravel artisan là một công cụ dòng lệnh được tích hợp sãn trong các project laravel được xây dựng dựa trên component Symfony Console, nó cung cấp rất nhiều các chức năng hữu ích như xử lý các công việc thủ...
Laravel May Fest Laravel artisan command1. Sweet alert là gì Sweet alert là 1 gói trong Laravel , nó sử dụng để thay thế hộp thông báo của Javascript khi chúng ta sử dụng Laravel. Giao diện của nó khá đẹp, responsive và dễ dàng chỉnh sửa tùy theo sở thích người dùng. 2. Cài đặt Sweet alert trong Laravel Để bắt đầu với SweetAlert2 , sử dụng Composer thêm package vào thư mục dự án: composer require realrashid/sweet-alert Sau khi cài đặt gói...
Laravel May Fest sweetalertXin chào mọi người, như tiêu đề bài viết này mình sẽ viết về Gates Policies trong laravel, cái này anh em làm về laravel thì sớm hay muộn cũng phải biết và sẽ dùng tới. Bắt tay vào tìm hiểu thôi. Giới thiệu Gates Policies Laravel định nghĩa Gate và Policy để thực hiện việc xác thực hành động của người dùng. Policy sử dụng xác thực một nhóm các hành động gắn liền với model hoặc resource còn...
Laravel policy May FestgRPC là gì ? Chắc hẳn khi mới đọc tiêu đề, nhiều bạn thắc mắc tại sao lại biến ứng dụng đơn giản trở nên phức tạp để làm gì không biết, nhưng thực ra việc phức tạp này sẽ mang lại cho chúng ta rất nhiều lợi ích, với những ứng dụng nhỏ thì gRPC chưa thực sự cần thiết, tuy nhiên áp vào các ứng dụng lớn, cần được mở rộng trong tương lai, việc chuyển đổi từ REST sang gRPC...
PHP Laravel gRPC May FestĐặt vấn đề Nếu thấy ứng dụng của bạn đang chạy chậm , thì có một số nguyên nhân dẫn đến tình trạng này ví dụ như : Không sử dụng bộ nhớ đệm (cache) Hình ảnh chất lượng cao, dung lượng nặng Cài đặt plugin, script.. từ bên thứ 3 Chưa tối ưu HTML, JS Không sử dụng Queue Job Chưa tối ưu query database ..... Ở bài viết này , mình sẽ chia sẻ một số tip khi query database giúp cải thiện...
database Laravel Performance eloquent query1. Migrations Lệnh php artisan migrate nó sẽ ngay lập tức xây dựng database giúp chúng ta. Tạo một table mới trong laravel, chúng ta có thể chạy lệnh: php artisan migrate:make create_users_table Lỡ migrate rồi, chúng ta muốn khôi phục lại thì làm cách nào? Đơn giản, chúng ta chỉ cần chạy lệnh chạy lệnh php artisan migrate:rollback Định nghĩa struct cho table với cấu trúc: public function up() { Schema::create('faqs',...
LaravelHôm nay mình sẽ tiếp tục gửi đến các bạn bài viết về cách Deploy một dự án Laravel lên một server mới và bạn cần setup tất cả môi trường cần thiết cho việc khởi chạy dự án trơn tru ngay lần đầu tiên. Thông thường công việc sẽ có rất nhiều thứ cần phải làm và lệnh cài đặt, tuy nhiên các bạn đã làm quen với những bài viết trước đây của mình về Laradock chắc hẳn đã có sẵn...
PHP Laravel LaraDockI. Giới thiệu: 1. Vấn đề: Trong thực tế khi triển khai những dự án thì bạn sẽ gặp những khó khăn trong vấn đề trong cấp các quyền truy cập cho từng Model ở những màn hình đặc thù nhằm để bảo mật thông tin thì đây có thể là bài viết bạn đang cần có thể giúp bạn dễ dàng hơn trong quá trình xây dựng dự án của mình. Có 2 cách đơn giản để bạn phân quyền cho hệ thống của mình...
PHP Laravel policiesMở đầu Laravel là một PHP framework, có mã nguồn mở và miễn phí, được xây dựng nhằm hỗ trợ và phát triển các phần mềm, ứng dụng, theo kiến trúc MVC. Hiện nay, Laravel đang là PHP framework phổ biến nhất và tốt nhất. Một trong những cách phổ biến nhất để xây dựng một ứng dụng sử dụng Laravel là Repository Pattern. Đầu tiên, để có thể triển khai được Repository Pattern trong Laravel chúng ta...
Laravel RepositoryĐặt vấn đề Nếu thấy ứng dụng của bạn đang chạy chậm, thì có một số nguyên nhân dẫn đến tình trạng này ví dụ như : Không sử dụng bộ nhớ đệm (cache) Hình ảnh chất lượng cao, dung lượng nặng Cài đặt plugin, script.. từ bên thứ 3 Chưa tối ưu HTML, JS Không sử dụng Queue Job Chưa tối ưu query database ..... Ở bài viết này, mình sẽ chia sẻ một số tip khi query database giúp cải thiện...
database Laravel eloquent queryAi trong chúng ta cũng đều mong muốn code chúng ta viết ra phải chất lượng, hạn chế ít nhất bug có thể, luôn biết sử dụng những tools hay các packages thần thánh để cải thiện hiệu suất làm việc của mình, nói chung là giúp bản thân ngày càng chuyên nghiệp hơn ! Hôm nay mình sẽ giới thiệu đến các bạn các loại thuốc gia truyền để giúp việc phát triển dự án Laravel của mình trở nên thú...
Laravel DebugNếu như bạn đã từng code trên nhiều môi trường hệ điều hành, nhiều máy khác nhau thì chắc hẳn bạn đã từng gặp phải trường hợp conflict version cài đặt ở máy local: php, node,... hay không tương thích giữa các hệ điều hành: ubuntu, macos, window,... Vậy làm thế nào để giải quyết vấn đề này ? Tại sao chúng ta không tạo nên 1 môi trường chung (hệ điều hành, phiên bản cho các ngôn ngữ sử...
MySQL Laravel Docker nginx May FestTại sao mình viết series này ? Dù trên internet có rất nhiều tài liệu viết về DDD nhưng chắc hẳn mọi người chỉ đọc hiểu sơ mà không biết làm sao để đưa nó vào project của mình. Nhân tiện hiện tại trong dự án mình làm cũng áp dụng mô hình này nên chia sẻ trong tầm hiểu biết cho mọi người có thể hiểu rõ hơn về cách áp dụng nó nhé ! Nếu có gì sai sót mọi người cũng chỉ cho mình để...
PHP Laravel API Domain Driven DesignVới những dev php khi thiết lập môi trường thì thường cài LAMP (Linux, Apache, MySQL, PHP). Công việc này có thế khiến mất nhiều thời gian, cài được cái này lại lỗi cái kia. Hay đơn giản khi bạn có một project Laravel cũ cần chạy trên một cái máy tính mới mua, hay máy tính của người khác thì họ lại phải setup môi trường, nhưng khi cài đặt xong môi trường rồi tưởng chừng như mọi thứ đơn...
Laravel DockerGiới thiệu Trước đây khi tham gia một buổi chia sẻ kiến thức về Docker thì có một bạn đặt câu hỏi mình thấy khá là thú vị, đó là nếu trong trường hợp bạn đang tham gia hai dự án khác nhau, mỗi dự án lại yêu cầu một phiên bản PHP khác nhau thì có thể áp dụng Docker vào được hay không. Ở bài viết này mình sẽ hướng dẫn cách sử dụng Docker để giải quyết câu hỏi được đặt ra ở...
PHP Laravel Docker Docker ComposeỞ phần 1, mình đã nói về cách đơn giản để tự build i18n trong JS với project Laravel. (không dùng thư viện). Bài này mk sẽ chia sẻ nốt cách để build hàm trans_choice() trong JS nhé. 1. Hàm trans_choice() trong Laravel Chúng ta đều biết, trong tiếng Việt, dù 1 quả táo hay nhiều quả táo thì dịch ra vẫn là quả táo. Nhưng với tiếng Anh hay một vài ngôn ngữ khác thì nó lại khác nhau. Ví dụ: 1 quả: There is...
Laravel JS I18nDeploy và chạy ứng dụng trong docker container giờ cũng không còn là chuyện gì xa lạ nữa rồi. Hướng dẫn cũng có ở khắp mọi nơi. Nhưng khi nhúng tay vào làm mới biết mọi thứ không đơn giản chỉ là copy code và cài PHP. Nhất là cả những vấn đề mà bạn không thể nhận ra nếu bạn chỉ dừng ở bước build image mà chưa deploy và chạy nó trên production. Bài này mình sẽ tổng hợp những thứ mình...
Laravel Docker