עבודה עם PHP משורת הפקודה

צריכים לכתוב patch? משימה רוטינית כלשהי? לא חייבים לעשות את זה עם BASH
לוגו PHP

כבר מזמן לא היה לי איזה פוסט חביב על PHP… לפני מעט זמן יצא לי לדבר עם קולגה מהתחום וסיפרתי לו שאני כותב patch למערכת כלשהי ומשתמש ב-PHP על מנת לכתוב אותו.
PHP? הוא התפלא, לא עושים את זה ב-BASH?
אז זהו. לא ממש חייבים. אפשר לעבוד עם PHP גם משורת הפקודה בקלות ובמהירות וכך מרוויחים כמה דברים:

  • עובדים בשפה מוכרת בלי צורך ללמוד סינטקס חדש (אפילו שללמוד את זה לוקח בערך כמה שעות, אבל ניחא)
  • אפשר להשאר בסביבת הפיתוח המוכרת
  • אפשר להשתמש ב-API של הפריימוורק שאתם כותבים לו את ה-patch

מתי עדיף להשתמש ב-BASH? כאשר אתם עושים דברים שרלוונטיים לסביבה ולא למערכת ספציפית שמותקנת עליה. למשל משימות רוטיניות ל-nginx או לapache ודברים דומים.

הרצת PHP משורת הפקודה ב-terminal

אז איך עובדים? על מנת להריץ PHP משורת הפקודה כותבים php ואז את שם הקובץ. למשל php mypatch.php
אם זה לא עובד, יכול להיות שהמודול של php5-cli לא מותקן על הלינוקס שלכם. התקנה מהירה נוסח


sudo apt-get install php5 php5-cli 

תפתור את העניין מהר מאוד.

הדפסת מידע לקונסולה

אם יש לנו סקריפט, אנחנו מן הסתם רוצים שהוא ידפיס מידע חזרה לקונסולה במידת הצורך או לדיבוג הסקריפט. איך עושים את זה? לא באמצעות print אלא באמצעות הפקודה error_log. משהו בסגנון הזה:


<?php
error_log('Hello world!');

ומה קורה אם רוצים להדפיס מערך? גם זה מאוד פשוט:


<?php
error_log(print_r($someArray, 1));

יקיר סיטבון, קורא קבוע, מציין שאפשר להשתמש ב print\echo.

קבלת פרמטרים

הרבה פעמים אני רוצה להפעיל את הסקריפט עם משתנים על מנת להגדיר לו דברים. זה יכול להיות שם של קובץ קונפיגורציות למשל, או שם קובץ הפלט שאני רוצה שהוא יוציא או מיליון דברים אחרים. איך עושים את זה? בדיוק ככה:


php myscript.php var1 var 2 var3... varN

כאשר ה-var1 ודומיו יכולים להיות כל מחרוזת שהיא.
בסקריפט עצמו אפשר לקבל את המשתנים השונים באמצעות שימוש במערך הגלובלי argv. המערך הזה מכיל באיבר הראשון שלו את שם הקובץ שהופעל בשורת הפקודה ושאר האיברים מכילים את שאר הפרמטרים.
אם אתם צריכים לצאת עם status code שישמש סקריפט אחר שמפעיל את הסקריפט שלכם, אפשר לצאת עם exit שמקבל את הפרמטר 1 או 0. בדומה ל-BASH.

בגדול יש עוד כמה פרמטרים נחמדים שאפשר להריץ יחד עם PHP, אבל המידע לעיל הוא מה שחשוב לדעת כאשר עובדים עם PHP בשורת הפקודה. אלו דברים שבאמת חבל שלא לדעת ולא תמיד חייבים לרוץ ל-BASH על כל patch למערכת זו או אחרת.

פוסטים נוספים שכדאי לקרוא

DALL·E 2024-09-06 12.34.24 - A visually engaging post about Python and cryptographic problems. The image should feature a dark-themed background with a glowing, futuristic Python
פתרונות ומאמרים על פיתוח אינטרנט

בעיות במימוש של פונקציות קריפטוגרפיות בפייתון

היום (16 לספטמבר) ממש, אני מעביר הרצאה ב-PyconIL 2024 על בעיות קריפטוגרפיות באפליקציות פייתון. לצערי אי אפשר להכניס את כל הבעיות הקריפטוגרפיות להרצאה אחת או

גלילה לראש העמוד