Giới thiệu về Grav

Grav là một flat-file CMS mã nguồn mở được phát triển bởi Rocket Theme. Đây là một CMS mới được phát hành trong vòng hai năm trở lại đây và là một trong những CMS nổi bật hiện nay, một trong các ứng cử viên để thay thế các CMS đã quá nổi tiếng như WordPress hay Joomla. Bài viết này tập trung vào việc giới thiệu về Grav và so sánh nó với các CMS khác.

Sau đây chúng ta cùng xem đâu là các ưu nhược điểm của CMS này so với các CMS truyền thống:

Điểm đặc biệt của CMS này là nó lưu trữ dữ liệu trong các files được tổ chức một cách thống nhất theo các thư mục chứ không sử dụng cơ sở quản lý dữ liệu như mysql hay postgresql. Ví dụ như một file trong folder “article” sẽ được coi như một bài viết thuộc category “article”. Do đó, Grav hướng đến các trang web có cấu trúc dữ liệu không quá phức tạp và chủ yếu tập trung về mặt dữ liệu. Do không sử dụng database, nên Grav không gặp những vấn đề về tốc độ xử lý dữ liệu như những gì ta hay gặp khi sử dụng database (thiếu bộ nhớ đệm, bottle-neck, etc.). Do đó các trang web sử dụng Grav thường nhanh hơn nhiều các trang web sử dụng các CMS truyền thống.

Về mặt bảo mật, do không sử dụng database, chúng ta sẽ không còn phải đau đầu với việc phòng chống SQL Injection, Grav giúp ta lấy dữ liệu nhờ các hàm lấy dữ liệu đã được xây dựng sẵn.

Một ưu điểm nữa của Grav là tính hướng tính năng, nó hướng đến sự nhỏ nhẹ, trong core gần như rất ít tính năng, nếu bạn muốn có các tính năng bạn cần cài thêm các plugin (ví dụ như tìm kiếm trong các bài viết, tính năng mà đã được tích hợp sẵn vào core của WordPress). Thậm chí đến giao diện quản lý backoffice cũng không được tích hợp sẵn mà bạn phải cài nó như một plugin. Điều đó cho phép Grav giảm tối đa dung lượng cũng như loại bỏ các tính năng mặc định không cần thiết.

Về mặt lập trình, Grav được trang bị nhiều tính năng hữu ích như:

  • Markdown cho phép chúng ta viết html một cách rành mạch, rõ ràng. Dữ liệu html viết bằng Markdown sẽ dễ đọc hơn rất nhiều so với khi sử dụng WYSIWYG.
  • Twig template engine cho phép templates của chúng ta trở nên nhỏ gọn, rõ ràng hơn khi viết bằng PHP thông thường.
  • Yaml được dùng cho các file cấu hình trong Grav, nó giúp cho cấu trúc dữ liệu trở nên dễ đọc và dễ viết hơn, so sánh với các file cấu hình viết bằng PHP, XML hay JSON.

Tuy nhiên, Grav cũng có những nhược điểm của nó. Grav bị giới hạn trong các truy vấn đơn giản, không có được những relationship phức tạp như khi ta sử dụng database.

Tóm lại, tùy thuộc vào từng dự án mà chúng ta có thể chọn CMS cho phù hợp. Nếu chúng ta cần một trang web lớn với rất nhiều trang, nhiều users, giao diện quản lý và quan hệ dữ liệu phức tạp, thì ta nên sử dụng các CMS truyền thống như WordPress. Còn nếu chúng ta chỉ cần một trang web đơn giản, nhẹ nhàng, dễ quản lý thì Grav là một sự lựa chọn không tồi.

Các bạn có thể tải Grav tại đây.

Demo:

  • Demo
  • Trang quản trị admin (admin/Password1)