מספר הגרסה של הליבה הוא מחרוזת אחת בקובץ אחד: api/core/version.txt בריפו, system/core/version.txt באתר. כל מנגנון בליבה שצריך לדעת "איזו גרסה זו" קורא אותו, והשרת הראשי משווה אליו כדי להחליט אם אתר צריך עדכון. בדף הזה: מבנה המספר, מי קורא אותו, איך משווים גרסאות בלי להיכשל, איך נקבעת רצפת ה-PHP, ומה נדרש מכם כשמעלים גרסה.
מבנה המספר#
הגרסה הנוכחית בענף הזה היא 5.0.115. הפורמט הוא 5.0.N: שני החלקים הראשונים קבועים כרגע, והאחרון עולה ב-1 בכל שינוי ליבה שיוצא ללקוחות. הגרסה היא קובץ טקסט שעולה ידנית באותו שינוי שמשנה את הקוד.
cat api/core/version.txt
| כלל | פירוט |
|---|---|
| מי מעלה | מי שמשנה קוד ב-api/core/ או ב-api/js/, באותו PR |
| כמה | 0.0.1, כלומר 5.0.115 הופך ל-5.0.116 |
| מתי לא | שינוי בתיעוד (website/, docs/) לא מעלה גרסה |
| מי מפרסם | צוות Wizzo. הפרסום ל-latest ולצי הוא החלטה אנושית. ראו זרימת עבודה |
מנגנון העדכון מסתמך על מספר שרק עולה. בהיסטוריה יש טעות אחת מתועדת: ב-11.09.2026 הקובץ נדרס מ-5.0.49 ל-5.0.34 ותוקן שלושה ימים אחר כך כ-5.0.51, ואתרים שבין 5.0.35 ל-5.0.50 קיבלו רשימת שינויים שגויה. לכן לפני מיזוג תמיד מסנכרנים עם main ובודקים שהמספר שלכם גבוה ממה שכבר שם. ראו תרומה לליבה.
מי קורא את הגרסה#
כל המקומות האלה קוראים trim(file_get_contents(CONFIG::$core_path . "/version.txt")):
| קורא | לשם מה |
|---|---|
admin/wizzo_update.php, controllers/check_version.php | השוואה מול השרת הראשי, בניית ה-ZIP לפי גרסה, ערוצי latest ו-stable. ראו עדכון עצמי |
controllers/core_ping.php | מחזיר את הגרסה שרצה בפועל, כדי לאמת החלפה |
controllers/wizzo_market_api.php, external_mcp | הכותרת X-Core-Version: לפיה המרקט וה-gateway בוחרים שמות שירותים ויכולות שמתאימים לליבה (ראו סקירת Wizzo Market) |
controllers/connector.php, SeoHosted, OlegAgent, perf_runner, seo_runner | מצהירים על גרסת הליבה (core) למנועים החיצוניים |
controllers/agent_mcp.php | דיווח לפני ואחרי עדכון שהופעל משרת הסוכנים |
PARAMS attaches_version | לא הגרסה עצמה, אלא מונה שעולה ב-1 בכל עדכון ומוסף כ-?ver= לנכסי JS ו-CSS, כדי שהדפדפן יטען מחדש |
$core = trim((string)@file_get_contents(CONFIG::$core_path . "/version.txt"));
if (version_compare($core, "5.0.111", ">="))
{
// the market already sends the product name "kama" to this core
}
אל תשוו גרסאות כמספר עשרוני. (float)"5.0.115" הוא 5.0, ולכן כל הגרסאות נראות זהות. השוו תמיד עם version_compare($a, $b, ...) על המחרוזת השלמה. בקוד העדכון עצמו נשאר שימוש ב-(float) רק כגיבוי למקרה שהקובץ ריק, והשוואת הגרסאות האמיתית מתבצעת על המחרוזת.
מה תלוי בגרסה#
כמה התנהגויות ידועות שתלויות במספר שהאתר מצהיר עליו:
| מאז | מה השתנה |
|---|---|
| 5.0.53 | המרקט שולח את שם השירות poosh (במקום wizzopoosh) לאתרים שמצהירים על גרסה זו ומעלה |
| 5.0.59 / 5.0.64 | מנוע ה-SEO עובר לשרת חיצוני: seo_runner (5.0.59) ופאנל ה-SEO יוצא מהליבה (5.0.64) |
| 5.0.62 | פאנלי המוצרים נפתחים כשוק מוכן על כלי (wizzo_market?tool=<tool>), ונוסף ה-connector |
| 5.0.83 | אולג ומנוע הביצועים (perf_runner) יוצאים לשרת חיצוני. בליבה נשאר OlegHosted |
| 5.0.107 | חיבור ה-MCP למרקט עם אסימון הכרה (vouch). אתר שחובר לפני כן מתחבר מחדש אוטומטית בקריאה אחת |
| 5.0.109 | השרת הראשי עונה על בקשת עדכון ב-JSON עם sha256 ורצפת PHP. אתר מול מאסטר ישן יותר חוזר לדלת הטקסט הישנה |
| 5.0.111 | המרקט שולח את השם kama (במקום wizzoradar) |
אתר שלא עודכן ממשיך לעבוד, אבל המרקט מותאם אליו: הוא מקבל את השמות והיכולות שהגרסה שלו מכירה. לכן קוד שלכם תמיד קורא שירותים דרך market_service, שמכיר את שני השמות.
רצפת PHP#
הליבה דורשת PHP 8.3 ומעלה. השרת הראשי מחשב את הרצפה בכל תשובת עדכון:
check_version::php_floor()מחפש מספר בשדהrequire.phpשלcomposer.jsonשל הליבה.- אם אין שדה כזה (וכך זה היום:
requireמכיל רק חבילות, ו-config.platform.phpהוא8.3אבל אינו נקרא), ברירת המחדל היא8.3. - הערך מוחזר באתר ב-
php_floorבתשובת ה-JSON. - בצד האתר,
preflightמשווה אותו ל-PHP_VERSION, ועדכון על PHP ישן נעצר לפני שנגע בקובץ אחד, עםphp_too_old <גרסה> < <רצפה>ביומן.
ליבה שדורשת PHP חדש יותר מהמותקן מפילה כל בקשה. אתר על PHP ישן לא יכול להתעדכן דרך הפאנל, וצריך קודם לשדרג את PHP בשרת (בדקו את גרסת ה-PHP של האתר לפני עדכון). ראו דרישות מערכת.
איך הגרסה מגיעה מהקוד לאתר#
- שינוי ליבה נכנס ל-
mainעםversion.txtמוגדל. - הקבצים עולים לשרת הראשי. הוא מחשב טביעת אצבע של עץ הקבצים (בלי
check_version.php), ובונה ZIP חדש אם הטביעה השתנתה:backups/core-<גרסה>-<טביעה>.zip. - כל אתר ששואל
check_version/get?ver=<גרסתו>מקבל את ה-ZIP רק אם גרסתו נמוכה ממה שבקובץ בשרת הראשי. בלי הגדלה שלversion.txt, אתר לא יוריד, גם אם הקבצים השתנו. - ערוץ
stableמגיש גרסה שהוקפאה ב-promote, וערוץlatestמגיש את הדיסק החי. ראו עדכון עצמי.
ההשוואה היא version_compare($asked, $target, "<"): אתר שגרסתו שווה או גבוהה מהיעד לא מקבל כלום (up_to_date). לכן אי אפשר "לרדת גרסה" דרך המנגנון הרגיל. ירידה דורשת החלפת תיקיית הליבה ידנית מגיבוי core_bup_<ts>.
בדיקת גרסה של אתר#
| איך | מה מתקבל |
|---|---|
GET {site}/system/core_ping | {"ok":true,"version":"…","db":true,"php":"…"}. בלי הרשאה, בלי מטמון |
cat system/core/version.txt | הגרסה שמותקנת |
GET {site}/system/check_version/check?ver=<גרסה>&format=json (על השרת הראשי) | האם יש עדכון (update_available), הערוצים ו-php_floor |
CRM_wizzo_update_log | היסטוריית העדכונים של האתר, כולל כישלונות |
SELECT to_version, status, date_created
FROM CRM_wizzo_update_log
ORDER BY id DESC
LIMIT 1
ראו גם#
- עדכון עצמי, התהליך המלא והיומן
- היסטוריית גרסאות
- תרומה לליבה, כללי העלאת גרסה ב-PR
- זרימת עבודה, מ-
api/coreל-system/core - דרישות מערכת