איך בונים מערכת ניהול תוכן משלכם (כמו WordPress)
לבנות מערכת ניהול תוכן מאפס היה עבורנו חוויה מצוינת.
WordPress הפך לסטנדרט המקובל, במיוחד בתחום מערכות ניהול התוכן. מתוך האתר שלה...
WordPress מפעילה יותר מ-43% מהאינטרנט, ונתון זה גדל מדי יום. הכול נבנה עם WordPress: מאתרים פשוטים ובלוגים ועד פורטלים מורכבים ואתרים ארגוניים, ואפילו אפליקציות.
עם זאת, אפשר לראות ש-WordPress פותחה בתקופה שבה בניית אפליקציות לא הייתה פשוטה כל כך.
כיום הפיתוח ב-PHP מתקדם מהר יותר, כפי שאפשר לראות בעדכוני PHP האחרונים, וגם שיטות פיתוח התוכנה התפתחו.
למשל, פיתוח במבנה MVC בהשראת Ruby on Rails, יחד עם עקרונות של ארכיטקטורת תוכנה, הוטמעו בפריימוורקים רבים.
אבל זה לא קרה ב-WordPress, שעדיין משתמשת במבנים משלה.
לכן מטרת המאמר הזה היא לעזור לכם להבין מה אפשר לעשות כשמערכת ניהול תוכן, כמו WordPress, נבנית עם ארכיטקטורת תוכנה מודרנית.
לשם כך נשתמש ב-Laravel, פריימוורק PHP לאפליקציות ווב שמיישם חלק מהפרקטיקות של הנדסת תוכנה.
בואו נדבר בקצרה על התכונות שתהיינה במערכת ניהול התוכן שלנו. בהתבסס על התכונות של WordPress, אפשר לזהות כמה תכונות מרכזיות:
- פרסום בקלות אם יצרתם פעם מסמך, אתם כבר מומחים ביצירת תוכן ב-WordPress. אפשר ליצור פוסטים ועמודים, לעצב אותם בקלות, להוסיף מדיה, ובלחיצת כפתור התוכן שלכם עולה לאוויר.
- כלי פרסום WordPress מקלה עליכם לנהל את התוכן. אפשר ליצור טיוטות, לתזמן פרסום ולעיין בגרסאות קודמות של הפוסט. אפשר להפוך תוכן לציבורי או לפרטי, ולהגן על פוסטים ועמודים בסיסמה.
- ניהול משתמשים לא כולם צריכים אותה גישה לאתר שלכם. מנהלים מנהלים את האתר, עורכים עובדים עם התוכן, כותבים ומשתתפים כותבים את התוכן הזה, ולמנויים יש פרופיל שאפשר לנהל. כך אפשר לשלב באתר מגוון תורמים, ולתת לאחרים פשוט להיות חלק מהקהילה שלכם.
- ניהול מדיה אומרים שתמונה אחת שווה אלף מילים, ולכן חשוב שתוכלו להעלות תמונות ומדיה ל-WordPress במהירות ובקלות. גררו את קובצי המדיה אל כלי ההעלאה כדי להוסיף אותם לאתר. אפשר להוסיף טקסט חלופי וכיתובים, ולהוסיף תמונות וגלריות לתוכן. הוספנו אפילו כמה כלי עריכת תמונה שכיף להשתמש בהם.
- תגובות מובנות הבלוג הוא הבית שלכם, והתגובות הן המקום שבו חברים ועוקבים יכולים להגיב לתוכן שלכם. כלי התגובות של WordPress נותנים לכם כל מה שצריך כדי לנהל דיון ולפקח עליו.
- מותאם למנועי חיפוש WordPress מותאמת למנועי חיפוש כבר מההתקנה. לשליטה מדויקת יותר ב-SEO יש הרבה תוספי SEO שידאגו לכך.
אז בואו נתחיל לעבוד!
התקנה
composer create-project laravel/laravel wp-laravel
בואו ננסה לגשת לאפליקציה שלנו
php artisan serve
נצטרך להגדיר מסד נתונים, ובמאמר הזה SQLite יהיה החבר שלנו.
touch database/database.sqlite
נצטרך לעדכן את קובץ ה-.env שלנו
DB_CONNECTION=sqlite
DB_DATABASE=database/database.sqlite
DB_FOREIGN_KEYS=true
בואו נריץ את המיגרציה הראשונית של מסד הנתונים
php artisan migrate
עכשיו אפשר לראות את השינויים במסד הנתונים כך
php artisan db:show
כל המיגרציות הוחלו.
עכשיו אנחנו רוצים משהו כמו פוסט ב-WordPress. אם בדקתם פעם את הטבלאות של WordPress, אתם יודעים שיש שם טבלה בשם wp_posts. בואו ניצור אותה
php artisan make:model Post
הפעולה הזו תיצור מודל בשם Post. בואו ניצור את המיגרציה שתחיל את שינויי מסד הנתונים.
php artisan make:migration "create posts table"
עכשיו נפתח את המיגרציה ונעדכן את הקוד כך:
$table->string('title');
$table->string('slug')->nullable();
$table->text('excerpt')->nullable();
$table->longText('content')->nullable();
$table->dateTime('published_at')->nullable();
$table->foreignIdFor(\App\Models\User::class)->constrained();
המשיכו לקרוא: איך מתכננים הגבלות על תוכניות מנוי, או עיינו בתוספי WordPress החינמיים שאנחנו בונים.