2023.07.04

Tích hợp Vue.js với CakePHP framework

Tích hợp Vue.js với CakePHP framework

Trong bài này, tôi xin chia sẻ một cách tích hợp VueJS vào CakePHP khá thú vị.

Tổng quan

CakePHP là một framework tuyệt vời để xây dựng các ứng dụng web truyền thống một cách nhanh chóng.

Nhưng mọi ứng dụng đều cần tính tương tác và thường thì điều đó phải được thực hiện mà không cần tải hoặc làm mới toàn bộ trang web. Đó là nơi JavaScript xuất hiện và có rất nhiều thư viện JS và khung như Vue, React, v.v. giúp dễ dàng thêm tính tương tác vào ứng dụng của bạn.

Cũng trong vài năm qua, các ứng dụng trang đơn (hay thường được gọi là SPA) đang trở nên phổ biến.

Điều đó có nghĩa là Vue hoặc React có thể giúp xây dựng front-end dễ dàng, nó không thể thay thế back-end. Vì vậy, điều cần thiết là phải tích hợp cả front-end và back-end đúng cách để chúng ta có thể tận dụng tốt nhất cả hai thế giới.

Mặc dù việc tích hợp các khung JS hiện đại (Vue hoặc React) với CakePHP thực sự dễ dàng, nhưng không có hướng dẫn hoặc tài nguyên nào cho biết chính xác cách thực hiện.

Tôi thường thấy mọi người đăng câu hỏi về cách thức hoặc phương pháp hay nhất để tích hợp Vue.js với CakePHP và nói rằng không có tài nguyên nào có thể giúp họ.

Vì vậy, ở đây tôi đang cố gắng trả lời câu hỏi của họ về cách tích hợp Vue.js với CakePHP. Mặc dù tôi đang tập trung vào Vue.js ở giao diện người dùng nhưng khái niệm/ý tưởng chung sẽ giống với React hoặc Svelte hoặc bất kỳ khung giao diện người dùng nào khác.

Cài đặt

VueJS vs CakePHP
VueJS & CakePHP

Trước tiên, hãy tạo một dự án CakePHP mới thông qua lệnh composer:

composer create-project --prefer-dist cakephp/app:~4.0 cakephp-vuejs-app

Bây giờ hãy cài đặt plugin AssetMix bằng lệnh:

composer require ishanvyas22/asset-mix

Tại sao plugin này? Chà, plugin này giúp chúng ta tích hợp Laravel Mix với CakePHP framework một cách dễ dàng. Plugin này sẽ gánh tất cả công việc khó khăn cho chúng tôi để chúng tôi có thể tập trung vào việc xây dựng ứng dụng với Vue.js và CakePHP.

Cấu hình

1. Load plugin bằng cách sử dụng lệnh sau:

bin/cake plugin load AssetMix

2. Tạo thư mục triển khai Vue.js bằng lệnh sau:

bin/cake asset_mix generate --dir=resources

3. Cài đặt các gói cần thiết cho font-end:

npm install

4. Triển khai font-end để có thể chạy trên trình duyệt:

npm run dev

5. Sau khi chạy lệnh npm run dev, 1 file app.js được build ra. Tiếp theo, chúng ta sẽ nhúng file này vào layout:

<?= $this->AssetMix->script('app') ?>

6. Thêm dòng bên dưới vào file src/View/AppView.php:

$this->loadHelper('AssetMix.AssetMix');

Tất cả đã xong, chúng ta đã sẵn sàng sử dụng Vue.js với CakePHP

Kiểm thử

Bây giờ chúng ta sẽ tạo 1 view file templates/Pages/greet.php và nhúng Vue component vào:

<div id="app">
    <h1>Greetings</h1>
    <!-- Load AppGreet component -->
    <app-greet></app-greet>
</div>

Tiếp theo chạy lệnh bin/cake server để start nhanh 1 server và vào trình duyệt với url: localhost:8765/pages/greet

Kết quả chúng ta sẽ thấy hiển thị  dòng chữ Hello world

Tiếp theo, chúng ta sẽ thử thay đổi chữ Hello world bằng cách thay đổi nội dung của file: resources/js/components/AppGreet.vue

<template>
  <div>
    Welcome to Market Enterprise
  </div>
</template>

Sau khi thay đổi nội dung, chúng ta sẽ chạy lại lệnh npm run dev để build lại. Chạy lại url localhost:8765/pages/greet, kết quả chúng ta sẽ nhận được chữ Welcome to Market Enterprise.

0 Comments
Inline Feedbacks
View all comments