Grav ! Cách tạo một website Blog mà không cần Database và chỉ cần mã nguồn

Đúng như tiêu đề, Grav là một hệ thống quản trị nội dung của Website (CMS - Content Management System) mà không cần sử dụng đến Database. Nhắc đến CMS nổi tiếng người ta sẽ nghĩ ngay đến WordPress hay Joomla và Chúng đều sử dụng Hệ quản trị cơ sở dữ liệu Databases. Nhưng bên cạnh những CMS trên, còn có những nền tảng CMS không sử dụng Databases, được gọi là Flat-file CMS – một hệ thống quản trị nội dung, bài viết và các dữ liệu được lưu trữ trong các tập tin và thư mục.

  • Tính di động: Flat-file CMS có thể chuyển sang server khác một cách khá đơn giản, chỉ cần Copy và Paste thư mục chứa tập tin nội dung của Website, trong khi việc di chuyển WordPress tới một server khác cần nhiều bước khá phức tạp.
  • Đơn giản: Không cần phải cấu hình và bảo trì database. Tất cả những việc cần làm chỉ là upload tập tin lên server.
  • Dễ dàng cập nhật: tất cả mọi thứ gói gọn trong tập tin và thư mục vì vậy rất dễ dàng để nâng cấp phiên bản mới. 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.

Những cấu trúc cơ bản của Grav CMS đang được xây dựng và phát triển dựa trên những công nghệ được cho là tốt nhất hiện nay. Điều này đảm bảo cho việc sử dụng Grav CMS trở nên đơn giản và dễ dàng mở rộng sau này. Dưới đây là danh sách một số công nghệ chính mà Grav đang sử dụng:

  • Twig Templating: Quản lý giao diện người dùng.
  • Markdown: Tạo nội dung một cách dễ dàng
  • YAML: Đơn giản hóa việc tinh chỉnh cấu hình Website.
  • Parsedown: Hỗ trợ cho Markdown và Markdown Extra
  • Doctrine Cache: Website Performance
  • Pimple Dependency Injection Container: Mở rộng và bảo trì
  • Symfony Event Dispacher: Xử lý và quản lý Plugins
  • Symfony Console: CLI interface
  • Gregwar Image Library: Những thao tác liên quan đến Image

File Markdown

---
testimonials: 
  - title: Steve Jobs
    quote: Your work is going to fill a large part of your life, and the only way to be truly satisfied is to do what you believe is great work. And the only way to do great work is to love what you do. If you haven't found it yet, keep looking. Don't settle. As with all matters of the heart, you'll know when you find it.
  - title: Mr. Adobe
    quote: This is Photoshop's version  of Lorem Ipsum. Proin gravida nibh vel velit auctor aliquet. Aenean sollicitudin, lorem quis bibendum auctor, nisi elit consequat ipsum, nec sagittis sem nibh id elit. Duis sed odio sit amet nibh vulputate cursus a sit amet mauris. 
---
#What People Are Saying.

File Twig

<section id="testimonials">
    <div class="row content">
        <span><i class="quote-left fa fa-quote-left"></i></span>
        <div class="text-container">
            <div class="twelve columns">
                {{ content }}
            </div>
            <div class="twelve columns flex-container">
                <div class="flexslider">

                    <ul class="slides">
                        {% for item in page.header.testimonials %}
                            <li>
                                <blockquote>
                                    <p> {{ item.quote }}</p>
                                    <cite>{{ item.title }}</cite>
                                </blockquote>
                            </li> 
                        {% endfor %}
                    </ul>

                </div>
            </div>
        </div>
        <span><i class="quote-right fa fa-quote-right"></i></span>
    </div>
</section>

Design

Tiếp theo. Việc cài đặt Grav CMS cũng hết sức đơn giản. Chỉ việc tải file ZIP tại https://getgrav.org/downloads, giải nén và upload lên web root folder là có thể bắt đầu sử dụng. Grav được viết bằng PHP nên có thể dễ dàng làm quen và nhận được sự hỗ trợ từ cộng đồng. Có rất nhiều mẫu theme miễn phí tại https://getgrav.org/downloads/themes Grav có thể chạy trên hầu hết Webserver phổ biến như Apache, Nginx, LiteSpeed. Và yêu cầu PHP 5.4 trở lên. Ngoài ra, Grav cũng hỗ trợ những nền tảng cache phổ biến như Memcache, Redis,… để tối ưu hiệu suất.

Trang quản trị

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.

Xin cảm ơn.