Overview
Với góc nhìn là một dev PHP, thì như mọi người cũng biết là trong tất cả những frameword PHP hiện nay thì Laravel đang là ông hoàng rồi. nativePHP được phát triển như một cái package đi kèm với các project Laravel (bao gồm dự án hiện có hoặc là mới hoàn toàn điều có thể triển khai với khứa này).
Có nhiều câu chuyện vui mình hay nghe được là dev PHP giờ lỗi thời hay bla bla đại loại thế. Nhưng thực sự thì bạn cứ thử nhìn xem các trang web hiện tại mà chúng ta có thể thấy được thì gần như 70 - 80% là dùng PHP rồi. Việc mà xây dựng được 1 ứng dụng từ PHP có vẻ không phải là việc mới mẻ gì, khi mà mình chia sẻ với a manager khi mà mình biết đến cái anh nativePHP này thì điều đầu tiên mình nghe được là "Ôi dời, cái này nó cũng không mới mẻ gì. Hồi xưa a còn làm một cái app dùng thằng PHP desktop".
Công nghệ mà, nó làm mới mỗi ngày nên là cái nào hay cái nào tiện thì mình xài thôi. Nên bài này mình chỉ chia sẻ một số góc nhìn mà mình thấy hay ho về nativePHP mà mình tìm hiểu được.
Setup
Việc cài đặt thật sự rất đơn giản, nhưng phải đảm bảo là bạn đã có 1 ứng dụng Laravel trước đó (có thể build mới hoặc dùng cái dự án sẵn có trước đó).
Installation
composer require nativephp/electron
Chạy cái lệnh trên để cài đặt nè
Run the installer
php artisan native:install
Sau khi xong 2 bước trên là xem như bạn hoàn thành cài đặt rồi đó. Giờ chỉ cần 1 command để chạy thằng này lên nữa thôi
Run
php artisan native:serve
Chạy xong nó sẽ tự động mở cho bạn 1 cái cửa sổ (app) cũng giống như trên browser bạn cũng có thể dùng F12 để inspect
Tính năng nổi bật
Có tổng cộng 5 tính năng nổi bật mà nhà phát hành giới thiệu:
- Window management
- Menu management
- File management
- Database support (SQLite)
- Native notifications
Tính năng mà mình thấy thích thú của nativePHP là cái "Menu management" mình sẽ nói rõ ở khúc sau hơn về phần này nha.
Window management - Quản lí các cửa sổ
Cho phép bạn quản lí các thao tác đóng, mở cửa sổ. Làm việc trên 1 cửa sổ chính nhưng vẫn tuỳ biến thêm được các cửa số khác (chú thích, hỗ trợ, ...) tuỳ vào nhu cầu sử dụng của bạn.
Nói đơn giản là mấy hàm đóng, mở, tuỳ chỉnh kích thước, đặt title, ... nhiều tác vụ khác nữa.
Menu management - Quản lí thanh menu
Thật sự với mình mà nói, nhờ cái này mà ứng dụng của bạn giống 1 cái ứng dụng thực thụ hơn cả. Vì sao?
Cho phép bạn tạo ra thanh menu cho ứng dụng của mình.
Note: Do mình đang xài mac nên mình review hành vi người dùng trên macOS nha.
Menu Label - Nhãn (biểu tượng thu gọn) của menu
Thường thì các ứng dụng khi cài đặt 1 vài ứng dụng sẽ có cái phần trên thanh menu để mình tuỳ biến nhanh. NativePHP cũng hỗ trợ việc tạo và làm việc tương tự các app khác.
File management - Quản lí file
Làm việc với NativePHP cũng giống như làm việc với các tệp trong ứng dụng Laravel thông thường.
Có nghĩa là bạn có thể tiếp tục sử dụng StorageFacade
của Laravel để lưu trữ và truy xuất các tệp trên hệ thống tệp của người dùng giống như trên máy chủ của mình.
Database support (SQLite)
Hầu hết mọi ứng dụng đều cần cơ sở dữ liệu, đặc biệt nếu ứng dụng của bạn đang làm việc với dữ liệu người dùng phức tạp hoặc giao tiếp bằng API. Cơ sở dữ liệu là một cách hiệu quả và đáng tin cậy để duy trì dữ liệu có cấu trúc trên nhiều phiên bản ứng dụng của bạn.
Để giữ cho dung lượng ứng dụng của bạn nhỏ, NativePHP hiện chỉ hỗ trợ SQLite.
Bạn có thể tương tác với SQLite thông qua PDO hoặc ORM, chẳng hạn như Eloquent, theo đúng cách bạn đã quen.
Native notifications - Quản lí thông báo ứng dụng
NativePHP cho phép bạn gửi thông báo hệ thống bằng API PHP. Những thông báo này, không giống như thông báo tích hợp của Laravel, là thông báo giao diện người dùng thực tế được hiển thị bởi hệ điều hành của bạn.
Thông báo có thể là một cách tuyệt vời để thông báo cho người dùng về các sự kiện đang xảy ra trong ứng dụng của bạn và thu hút sự chú ý của họ trở lại ứng dụng đó.
Kết.
Để hiểu rõ nhất thì tại sao bạn không thử build trên project sẵn có của bạn xem sao.
Mình hy dọng những góc nhìn cũng như một vài tìm hiểu lụm lặt được sẽ giúp bạn hình dung được phần nào về cách hoạt động của NativePHP.
Tài liệu liên quan
NativePHP document: https://nativephp.com/docs/1/getting-started/introduction Medium blog: https://medium.com/@emma.ngo1110/native-php-how-to-start-911b27b40791