Tạo module Backend và Frontend trong Laravel 5

Sharing is caring!

Lúc trước trong series “Xây dựng website QUIZ“, tui có hướng dẫn tạo module. Hôm nay tui sẽ viết lại cái phần tạo module cho Laravel 5.4 thành một bài dạng tips để cho mọi người tiện tham khảo. Bắt đầu nào!

1. Tạo project và các thư mục:

Giả sử, thư mục WEB_ROOT cho project này hiện lại là E:\Server\www\learning:

Tại thư mục WEB_ROOT:

Sau khi tạo xong (không nhất thiết là đặt cái tên là framework nha các bạn, đặt tên gì cũng được), các bạn sẽ có cây thư mục như sau:

Copy các file và thư mục trong thư mục framework/public ra ngoài thư mục rubik như sau:

Mở file rubik/index.php lên,  tim đến 2 dòng sau:

và thay dấu “..” thành tên thư mục “framework” như sau:

Đó là phần Frontend, tiếp theo cũng trong thư mục rubik, tạo thư mục tên là admin cho phần Backend và cũng copy tất cả các file và thư mục trong framework/public vào thư mục admin này:

Mở file admin/index.php lên, tìm 2 dòng sau:

và edit lại như sau:

Do chúng ta copy các file này từ thư mục framework/public ra bên ngoài, cho nên mục đích của việc edit 2 file index.php này là để dẫn lại đường dẫn cho đúng.

Nếu thử gõ 2 cái url: http://localhost:8080/learning/rubik và http://localhost:8080/learning/rubik/admin mà hiện ra như sau là ổn:

Sau khi tạo xong, các bạn nên xóa cái thư mục framework/public đi, hoặc khi upload source code lên host thì không cần upload thư mục framework/public này.

2. Tạo module Backend và Frontend:

Trước tiên, tại thư mục framework/app, chúng ta tạo thư mục Modules với các thư mục con và file tương ứng như sau:

Sau đó, tại thư mục framework/config, chúng ta tao một file tên là module.php:

Nội dung cho file config/module.php như sau:

Mục đích của việc tạo file config/module.php là để kiểm tra cái url khi nào là vào frontend hoặc backend để điều hướng xửa lý vào các thư mục chứa code tương ứng trong Modules/Backend hay Modules/Frontend.

Để làm việc này, ta phải viết code cho file Modules/ModuleServiceProvider.php như sau:

Để Laravel nó load được cái file ModuleServiceProvider.php này, các bạn mở file framework/config/app.php lên, tìm đến phần array providers (dòng 138), và thêm vào cuối array này dòng App\Modules\ModuleServiceProvider::class

Để cho chắc chắn rằng Laravel 5 nó hiểu cái namespace App\Modules, chúng ta mở file framework/composer.json, tìm đến mục psr-4 nằm trong mục autoload:

Thêm như sau:

3. Xử lý route url cho từng module:

Phần trước, chúng ta đã tạo file routes.php tương ứng cho từng module Backend và Frontend. Bây giờ, trong mỗi file routes.php này, chúng ta sẽ tạo các Route để xem cái ModuleServiceProvider.php nó có thực hiện đúng hay không nha.

Nếu url là http://localhost:8080/learning/rubik thì sẽ in ra câu “Hello Frontend”

Nếu url là http://localhost:8080/learning/rubik/admin thì sẽ in ra câu “Hello Backend”

Nhưng trước hết là chúng ta phải bỏ cái Route xử lý hiển thị cái view mặc định hiển thị chữ “Laravel” to đùng như ở trên đã. Các bạn mở file framework/routes/web.php lên:

và xóa hoặc comment lại cái Route xử lý trang welcome:

Xong, tiếp theo là code cho 2 file routes.php nha

Backend/routes.php

Frontend/routes.php

Thử nào:

  • Url là http://localhost:8080/learning/rubik thì sẽ in ra câu “Hello Frontend”.
  • Url là http://localhost:8080/learning/rubik/admin thì sẽ in ra câu “Hello Backend”.

Nếu hiển thị đúng như vậy thì cái file Modules/ModuleServiceProvider.php nó đã được load và xử đúng. Tui làm được thì các bạn cũng làm được.  THANK-YOU

 

Sharing is caring!

Tạo Authentication cho module Backend và Frontend trong Laravel 5

Vincent Le

Tui là Lê Minh Đạt, tên tiếng anh là Vincent(do thích nhân vật Vincent Valentine, ai từng là fan của trò Final Fantasy VII thì sẽ biết nhân vật này, hehe). Đang tập tành làm một blogger viết về mảng lập trình, mong muốn được chia sẻ những gì đã học được, tích góp được trong 10 năm đi làm thợ code.

shares