זמן הריצה של PHP

הפונקציה של Cloud Run פועלת בסביבה שכוללת גרסת מערכת הפעלה, חבילות של תוספים, תמיכה בשפה וספריית Functions Framework שתומכת בפונקציה ומפעילה אותה. הסביבה הזו מזוהה לפי גרסת השפה, והיא נקראת זמן ריצה.

סביבות זמן הריצה האלה משתמשות ב-nginx וב-PHP-FPM כדי לטפל בבקשות. מידע נוסף על סביבות זמן ריצה באופן כללי, ועל גרסת Ubuntu שבה נעשה שימוש בכל סביבת זמן ריצה של PHP, זמין במאמר סביבת ההפעלה של פונקציות Cloud Run.

בחירת זמן הריצה

‫פונקציות Cloud Run תומכות בכמה גרסאות של PHP, שמפורטות בדף תמיכה בזמן ריצה. אתם יכולים לבחור את זמן הריצה המועדף של PHP לפונקציה במהלך הפריסה.

אם משתמשים ב-Google Cloud CLI, מציינים את סביבת זמן הריצה באמצעות הפרמטר --runtime. ‫NAME מציין את שם הפונקציה. לדוגמה:

gcloud functions deploy NAME --no-gen2 --runtime php82 --trigger-http

פרמטרים נוספים לפריסה מפורטים במאמר פריסת פונקציה ב-Cloud Run.

הכנת הפונקציה

אתם יכולים לכתוב פונקציה במחשב המקומי ולהעלות אותה. כדי להכין את המחשב המקומי לפיתוח PHP, אפשר לעיין במאמר בנושא שימוש ב-PHP ב- Google Cloud.

הספרייה שמפעילה את הפונקציה היא PHP Functions Framework.

מבנה קוד המקור

כדי שפונקציות Cloud Run יוכלו למצוא את ההגדרה של הפונקציה, קוד המקור צריך להיות במבנה מסוים. מידע נוסף זמין במאמר כתיבת פונקציות Cloud Run.

הגדרת PHP

מגדירים את פונקציית ה-PHP באמצעות קובץ php.iniבתיקיית השורש של הפונקציה. אפשר להציג את הגדרות ה-PHP הקיימות באמצעות הפונקציה phpinfo(), כמו בדוגמת הקוד הבאה:

  
use Psr\Http\Message\ServerRequestInterface;

function phpInfoDemo(ServerRequestInterface $request): string
{
    // phpinfo() displays its output directly in the function's
    // HTTP response, so we don't need to explicitly return it
    //
    // Note: we recommend deleting the deployed Cloud Function once you no
    // longer need it, as phpinfo() may broadcast potential security issues.
    phpinfo();
    return '';
}

ציון יחסי תלות

כדי לציין תלויות של הפונקציה, מוסיפים אותן לקובץ פרויקט בשם composer.json. מידע נוסף זמין במאמר בנושא ציון יחסי תלות ב-PHP.