2. מי אני?
● חבר בבורד של ה-OSM
● אחד מעשרות מפתחי הליבה
● חבר ב-JBS
● מנהל את joomla.org.il
● מנהל את התרגום העברי של ג'ומלה
● עבודה יומיומית: מנהל פיתוח בסצינת ההייטק
והסטארט-אפים.
3. ג'ומלה
● בשימוש של %8.2 מהאתרים בעולם
● בנויה על שלוש שכבות מרכזיות: שרת אינטרנט,
בסיס נתונים, שפת תכנות PHP
● ליבה בסיסית הניתנת להרחבה בשלוש צורות:
מודולים, רכיבים ופלאגינים
4. בסיס נתונים - למה?
● נועד לשמור את התכנים של האתר )אך לא רק(
● מונע תלות בקבצים
● ניהול דינמי של תכנים ועוד חלקים מרכזיים באתר
● ג'ומלה החלה בתמיכה בבסיס נתונים mysqlאך
החל מגירסה 5.2 ישנה תמיכה בעוד סוגים
5. בסיס נתונים - איך?
● בנוי מטבלאות
● כל טבלה מנורמלת כך שהיא שומרת את המידע
בצורה חסכונית )יתרון על קבצים(
● ניתן לשלוף מידע בצורה ידידותית ויעילה ע"י
שאילתות .SQL
6. בסיס נתונים - איך בדיוק?
● כל טבלה מאחסנת סוג מידע אחד
○ למשל תוכן, קטגוריות וכו'(.
● לכל תוכן יש כמה סוגי שדות
○ למשל לתוכן יש כותרת, טקסט, תקציר, מס' קטגוריה
ועוד
● למה מס' קטגוריה ולא שם קטגוריה?
7. בסיס נתונים - לכל שאלה תשובה
● כדי לשלוף או לעדכן מידע ישנה שפת שאילתות
בשם SQL
SELECT ○
UPDATE ○
INSERT ○
DELETE ○
● מינוחים מוסכמים
○ GROUP BY
○ WHERE
○ ORDER BY
8. ?בסיס נתונים - מה עוד
● טבלאות מעניינות
extensions ○
users ○
assets ○
content_frontpage ○
9. בסיס נתונים - היכן המפתחות?
● מפתחות ואינדקסים נועדו לעזור ולשפר את
החיפוש ע"י יצירת אינדקס.
● אינדוקס פשוט מסדר את הטבלה כך שחיפוש ע"י
שדות האינדקס יתבצע במהירות.
● מפתח יכול להיות יחודי אך לא חובה
● מומלץ שלכל טבלה יהיה מפתח ראשי )יחודי(
● אינדקס יכול להיות מורכב יותר משדה אחד
10. בסיס נתונים - למה זה מעניין אותנו?
● אתר סטנדרטי מורכב מהרבה הרחבות וכתוצאה
מכך גם מטבלאות רבות
● אחת הסיבות לאיטיות של אתרים
○ MySQLSlowיסביר לכם
● - Explainיתן לכם הסבר מדוע שאילתא איטית
● מה זה ?Prefix
● מטמון, מטמון ועוד קצת מטמון!
11. קבצים
● ג'ומלה מורכבת ממספר תיקיות מרכזיות שמנהלות אותה
במקביל לסוגי הרכיבים:
○ modules
○ components
○ plugins
○ templates
● בנוסף, ישנה תיקייה שמכילה את הליבה של ג'ומלה
וספריות נוספות שג'ומלה עושה בהם שימוש ).(libraries
12. קבצים - הרשאות
● רוב השרתים מריצים לינוקס
● ישנה הרשאה לכל ספריה וקובץ
● המבנה של ההרשאה: rwxrwxrwx
● כל 3 סיביות זה גורם אחר במערכת:
user, group, other
● ניתן לתרגם זאת מספרית בצורה בינארית
● 777 זה המספר של השטן!
13. קבצים - components
● ההפניות לרכיבים נעשות בצורה הבאות:
○ ?index.php
option=com_content&view=foo&task=bar
○ אם ישנו SEFדלוק, הנתיב נראה יותר ידידותי
● רכיבים בנויים באמצעות ארכיטקטורת .MVC
14. קבצים - modules
● מודולים הינם חתיכת פיסת מידע שמציגים
במיקומים מוגדרים בתבנית
● מודולים אינם ניתנים לגישה לפי נתיב )(URL
אלא לפי פריטי תפריט
15. קבצים - plugins
● פלאגינים הינם הרחבות שדורסות או מוסיפות
להתנהגות ברירת מחדל למערכת.
● למשל, ניתן להוסיף פעולה )התנהגות( כאשר
משתמש נוסף למערכת, או להוסיף תוכן לפני או
אחרי התכנים של ג'ומלה.
● בנוי על ארכיטקטורת .observer
16. קבצים - templates
● תבניות מטפלות בעיצוב של האתר
● דואגות לנראות הכללית וגם הספציפית של כל
רכיב ומודול
● ניתן לדרוס בקלות כל עיצוב של כל רכיב או מודול
ללא דריסת העיצוב ברירת מחדל של ההרחבה
17. ג'ומלה - PHP
● השפה הכי נפוצה לבניית יישומי .web
● פותחה במקור ע"י זנד.
● מהירות פיתוח הינה יתרונה הגדול אך גם
חסרונה.
● דרישה גדולה בשוק למפתחים!
18. ג'ומלה - גירסאות
● החל מגירסה 6.1, ג'ומלה שמה לעצמה את הדגש
לתאימות לאחור
● כל גירסה שלישית הינה עם תמיכה ארוכת טווח
וכל גירסה רגילה היא עם תמיכה לחצי שנה
● גירסת ארוכת טווח היא עם תמיכה לשנתיים
● ניתן לעבור בין גירסאות בלחיצת כפתור!
19. ג'ומלה - מה קורה מאחורי הקלעים
● מי מנהל את הקוד?
● מי מנהל את הפיצ'רים שנכנסים?
● מי בודק ומתקן באגים?
● מי מוציא הודעות שחרור?
● מי מתרגם את זה ל46- שפות?