Kinh nghiệm lập trình website mã nguồn mở PHP

Thông tin cập nhật về bản Magento 2.2 Release

Trong bài viết này ta sẽ cùng tìm hiểu về những tính năng mới trong phiên bản Magento 2.2 Release, đặc biệt là phiên bản mới nhất 2.2.2 vừa ra lò tháng 12/2017.
Link chính thức từ Magento

Thông tin về bản Magento 2.2 Release

Nổi bật trong Magento 2.2 Release

Magento 2.2 Release đã hỗ trợ PHP 7.1 (mới nhất)
Đây là 1 tin cực vui, kể từ lúc PHP 7.1 ra mắt mà Magento vẫn chậm hơn 1 bước vì chưa hỗ trợ lên tới phiên bản mới nhất này, có nghĩa là trước đây khi bạn lỡ cài 7.1, bạn phải vào core Magento sửa lại đôi ba chỗ mà không dám chắc chuyện gì có thể xảy ra trong tương lai. Giờ đây mọi chuyện đã được giải quyết trong phiên bản 2.2

Thông tin về bản Magento 2.2 Release
Luôn kiểm tra technology stack requirements trước khi cài đặt Magento 2.

96 bugs trong trang report của cộng đồng đã được sửa
Đó là cái hay của mã nguồn mở, Magento có cộng đồng rất mạnh cùng chung tay trong việc phát hiện bug, thảo luận đưa ra giải pháp và đóng góp sửa chữa.
Một dự án phần mềm phát triển là số người tham gia vào càng đông đảo, issues được phát hiện nhiều và thường xuyên cập nhật, có lộ trình phát triển rõ ràng.

Thay đổi đáng chú ý

Tập tin thư mục trong hệ thống
Thư mục var/divar/generate đã được chuyển ra ngoài webroot
• var/di -> generated/metadata
• var/generate -> generated/code

Thay đổi này sẽ ảnh hưởng tới việc xóa cache, file compile bằng command line linux rm, tích hợp trong Jenkins…
Vậy nên trong Magento 2.2 Release ta phải sử dung:

rm -rf var/cache var/page_cache var/view_preprocessed generated/metadata generated/code

API
+ Store module
Bây giờ ta có thể lấy được store thông qua Store module management bằng website id.
(các phiên bản trước muốn lấy store_id từ website_id chưa có method public, có 1 cái protected trong customer-segment, 2.2 đã hỗ trợ hàm này trong class StoreWebsiteRelation, hỗ trợ thông qua API)

Trong kiến trúc Magento 2, có 1 khái niệm mới là Service Contracts, dùng để kết nối các module lại với nhau thông qua các API.
Việc gọi trực tiếp Model để dùng khác module đã lỗi thời và bất tiện mỗi khi module chính được cập nhật, sử dụng API sẽ đảm bảo được tính ổn định lâu dài cho ứng dụng của bạn.

Thay đổi giao diện UI
Không còn disabling/enabling modules output trong Admin Panel phiên bản 2.2.0 nữa. Tuy nhiên module output vẫn có thể enabled/disabled trong tập tin configuration.

Database
Bắt đầu từ phiên bản này về sau, Magento thay thế hoàn toàn unserialize bằng json_decode. Một động thái cứng rắn cần thiết nhằm đảm bảo tính nhất quán cho hệ thống. Bạn cũng đừng lo vì Magento còn cung cấp upgrade scripts có thể chuyển dữ liệu kiểu serialized mà ta đã sử dụng từ trước đó.
ex: bảng bị ảnh hưởng sales_order_item column product_options

Nguyên nhân của update này là do bảo mật. PHP khuyến cáo không nên sử dụng unserialize cho những dữ liệu nhập từ user:

Thêm chức năng mới

Shipping cải tiến
link
Các phương thức shipping (chủ yếu bên Mỹ) đã được cải tiến hơn, tuy nhiên mình cũng chưa có dịp xài mấy cái này. Trong các dự án tùy biến Shipping thông thường là thêm tỉnh thành cho quốc gia đó.
Shipping tại Việt Nam
Shipping tại Thái Lan

Deployment cải tiến
link
Đây là 1 trong những tính năng hot nhất, đáng mong chờ nhất trong phiên bản này. Với ý tưởng mới này, chúng ta hoàn toàn có thể thực hiện được cơ chế Zero Downtime.

Bản chất rất đơn giản, mua thêm cái server dành để build static-content, compile di, upgrade data…Xong xuôi hết ra vác qua server production và switch code là xong, về lý thuyết thì cũng…OK đấy chứ!

Lời kết

Trên đây là những tính năng mới trong bản cập nhật này mà mình chú ý, bên cạnh đó còn rất nhiều cải tiến khác nữa đang chờ chúng ta khám phá, bạn đọc có thể đóng góp bổ sung cho mình ở phần bình luận này nhé.
Xin cảm ơn và thân chào.

Thông tin cập nhật về bản Magento 2.2 Release
Đánh giá bài viết

1 phản hồi

Gửi phản hồi

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