יצירת אתר על Grav CMS: ללא מסד נתונים, מהיר ומוכן לשימוש
לאחרונה העברנו אתר תיעוד מ-WordPress ל-Grav. הלקוח התלונן על טעינה איטית ופריסות מורכבות. לאחר ההעברה, המהירות עלתה מ-1.5 שניות ל-200 אלפיות השנייה, והתחזוקה צומצמה ל-push פשוט ב-Git. עם זאת, מפתחים רבים שמתחילים עם Grav עושים את אותה טעות: הם לא מפעילים מטמון. כתוצאה מכך, המהירות יורדת פי 2-3. במאמר זה נסקור כיצד להימנע מכך ולהגדיר את Grav כראוי.
הזמינו פיתוח אתר Grav — ננתח את הפרויקט שלכם ונספק הצעה מסחרית תוך יום אחד.
מתי לבחור ב-Grav ומתי לא?
Grav הוא CMS מבוסס קבצים שבו התוכן מאוחסן בקבצים ולא במסד נתונים. הוא אידיאלי לפרויקטים שבהם התוכן סטטי או מתעדכן לעיתים רחוקות, הצוות עובד עם Markdown ו-Git, והאחסון מוגבל (ללא MySQL/PostgreSQL). דוגמאות טיפוסיות: אתרי תיעוד, תיקי עבודות, בלוגים, דפי נחיתה. Grav אינו מתאים למסחר אלקטרוני עם אלפי SKU, פורטלים מורכבים עם תוכן משתמשים, או אתרים עם הפעלות משתמש אינטנסיביות.
למה Grav מהיר יותר מ-CMS מסורתי?
בניגוד ל-WordPress או Joomla, Grav אינו מבצע שאילתות מסד נתונים בכל בקשה. התוכן נקרא מקבצים ונשמר במטמון ב-composer create-project getgrav/grav your-project. באחסון חלש (למשל, 512 MB RAM), Grav מספק דף ב-20-50 אלפיות השנייה, בעוד ש-WordPress לוקח 200-400 אלפיות השנייה. זהו שיפור של פי 3-5 בפרויקטים טיפוסיים. החיסכון באחסון יכול להגיע עד 70% בהשוואה ל-CMS מסורתי.
איך אנחנו מפתחים אתרים על Grav: הגישה שלנו
אנחנו ניגשים לכל פרויקט באופן אישי. ראשית, אנו מנתחים דרישות, בוחרים תוספים מתאימים (למשל, Grav Plugin SimpleForm, Admin Plugin). לאחר מכן אנו מפתחים ערכת נושא מותאמת אישית באמצעות Twig עם תשומת לב ל-SEO ו-Core Web Vitals. אנו תמיד מפעילים מטמון ומגדירים את צינור הנכסים. דוגמה: עבור אתר תיעוד, יצרנו 5 תבניות, 2 אוספים, ושילבנו את Elasticsearch באמצעות תוסף. כך השגנו מהירויות טעינה מתחת ל-200 אלפיות השנייה באחסון זול.
איך להגדיר את Grav ב-5 שלבים
- התקנת Grav דרך Composer:
--- title: Разработка под заказ slug: custom-development published: true template: service-detail taxonomy: category: [services] metadata: description: 'Разработка веб-приложений' ---. - הגדרת קובץ system.yaml הבסיסי: הפעלת מטמון והגדרת עיבוד נכסים.
- יצירת מבנה עמודים ב-
{% set posts = page.children.visible.order('date', 'desc').slice(0, 10) %} {% for post in posts %} <article class="post-card"> <h2><a href="{{ post.url }}">{{ post.title }}</a></h2> {{ post.content|striptags|slice(0, 200) }} </article> {% endfor %}. - פיתוח תבניות באמצעות Twig ו-Blueprints.
- פריסה לאחסון דרך Git.
שלבים אלה עוזרים להימנע מטעויות נפוצות ולהשיק את הפרויקט במהירות.
איך מבנה העמודים עובד
Grav משתמש במבנה מבוסס קבצים לעמודים. כל עמוד הוא תיקייה עם קובץ .md. שם התיקייה עם קידומת מספרית מגדיר את סדר המיון. דוגמה:
- user/pages/01.home/home.md → תבנית home.html.twig
- user/pages/02.services/services.md → תבנית services.html.twig
- user/pages/03.blog/blog.md → תבנית blog.html.twig
- user/pages/03.blog/my-post/default.md — פוסט בבלוג
תיקיות שמתחילות בקו תחתון (למשל, # user/blueprints/pages/service-detail.yaml form: fields: header.intro: type: textarea label: Вступление header.hero_image: type: filepicker label: Главное изображение ) מוסתרות ואינן מוצגות ברשימות.
Frontmatter ותבניות
כל קובץ .md מכיל frontmatter בפורמט YAML:
---
title: Разработка под заказ
slug: custom-development
published: true
template: service-detail
taxonomy:
category:
- services
metadata:
description: 'Разработка веб-приложений'
---
אוספים ורשימות
כדי לרשום עמודים ילדים, השתמשו ב-Twig:
{% set posts = page.children.visible.order('date', 'desc').slice(0, 10) %}
{% for post in posts %}
<article class="post-card">
<h2><a href="{{ post.url }}">{{ post.title }}</a></h2>
{{ post.content|striptags|slice(0, 200) }}
</article>
{% endfor %} Blueprints: שדות מותאמים אישית
Blueprints מתארים שדות עמודים עבור לוח הניהול:
---
# user/blueprints/pages/service-detail.yaml
form:
fields:
header.intro:
type: textarea
label: Вступление
header.hero_image:
type: filepicker
label: Главное изображение
--- ביצועים ומטמון
הגדרת מטמון ב-system.yaml:
cache: enabled: true driver: auto lifetime: 604800 gzip: true assets: css_pipeline: true js_pipeline: true באחסון חלש ללא APC/Redis, עמודים מוגשים מהמטמון הקבצים — מהירות דומה לאתרים סטטיים.
פרויקטים טיפוסיים ולוחות זמנים
| סוג אתר | מספר תבניות | לוח זמנים |
|---|---|---|
| דף נחיתה / כרטיס ביקור | 3–5 | 1–2 שבועות |
| אתר תאגידי עם בלוג | 6–10 | 2–4 שבועות |
| תיעוד | 5–8 | 2–3 שבועות |
מה כלול בפיתוח
- ניתוח דרישות ובחירת ארכיטקטורה (אוספים, טקסונומיות)
- התקנת Grav והתוספים הנדרשים (טפסים, SEO, מפת אתר)
- פיתוח ערכת נושא מותאמת אישית ב-Twig עם עמידה ב-Core Web Vitals
- הגדרת מטמון ואופטימיזציה של נכסים
- בדיקות ומסירת גישה
- אחריות תמיכה ל-30 יום
Grav מול WordPress
| מאפיין | Grav | WordPress |
|---|---|---|
| מסד נתונים | אין (מבוסס קבצים) | MySQL |
| מהירות עמוד | 20-50 אלפיות השנייה | 200-400 אלפיות השנייה |
| פשטות פריסה | Git | דורש העברת מסד נתונים |
| אבטחה | פחות נקודות תורפה | עדכוני ליבה תכופים |
| תחזוקה | מינימלית | עדכונים שוטפים |
טעויות נפוצות והפתרונות שלהן
- שכחת הפעלת מטמון — המהירות יורדת פי 2-3. תמיד בדקו את
cache: enabled: true driver: auto lifetime: 604800 gzip: true assets: css_pipeline: true js_pipeline: true. - שימוש בתוספים כאשר קוד Twig מותאם אישית מספיק — זה מגדיל את המורכבות ואת זמן הטעינה.
- אי הגדרת צינור נכסים — CSS ו-JS נטענים בנפרד, מה שמגדיל את זמן הטעינה. השתמשו ב-
cache.enabled: true.
קבלו ייעוץ עכשיו — נדון במשימות הפרויקט שלכם ובלוחות הזמנים.







