תכנות סקריפטים מצד השרת / PHP


PHP


גרהאם מרשל עובד בניו זילנד בחברת kc multimedia, חברת עיצוב אינטרנט.

לא ניתן להעביר ביקורת על PHP מבלי לבחון קודם את נושא ה-open source. תמצית הפילוסופיה של open source היא בעצמה אחת הסיבות לפופולריות של PHP. מאמרים רבים וויכוחים רבים עוד יותר כבר סבבו סביב שאלת המקום של open source באינטרנט מודרני, מבוסס מסחר אלקטרוני. בואו רק נאמר שהאינטרנט, כמו גם המסחר האלקטרוני, לא היו קיימים לולא מודל ה-open source. קחו לדוגמא תוכנות כגון שרתי NCSA ו-CERN, Apache, Bind, SSLeay, Perl וכן, Linux.
אם ברצונכם ללמוד עוד על הרשת המסועפת שבין עסקים גדולים, open source והאינטרנט, אני ממליץ בחום על "In the beginning was the command line" מאת ניל סטפנסון.

ונמשיך לעניינים עתידיים יותר. הבה נדבר על מדוע כדאי לכם לעשות שימוש ב-PHP כדי ליצור אתר ברמה גבוהה.

אולי הטיעון המוחץ ביותר בעד PHP הוא העלות שלה: כלום. אפס. שום דבר. להרבה מאוד אנשים זוהי נקודה חשובה. ה-PC הישן שלהם יכול להריץ Linux, Free BSD או כל דבר אחר. הם מתקינים Apache, PHP, MySQL או כל עורך אחר ומתחילים לעבוד. המחיר הכולל? הזמן שלוקח לארגן את כל הדברים הללו. להרבה, זה מושך למנטליות ההאקרית שעליה נבנה האינטרנט. למה לשלם על משהו אם אתה יכול להשיג אותו, או מקבילה טובה יותר, בחינם? אותו הדבר תקף לגבי השימוש ב-Perl.

המנטליות ההאקרית הישנה פועלת גם בשיטת התכנות PHP. PHP משאילה את השפה והתחביר שלה ממספר מקורות שונים, בהם C, JAVA ו-Perl. לאנשים רבים עם ניסיון עבר בתכנות, המשמעות של זה היא הוצאה לפועל בקלות של היישום מבוסס הרשת הראשון שלהם ב-PHP, מאחר וכבר יש להם מושג לגבי הדרך שבה האתר אמור להיות מורכב.

משמעותו של דגם ה-open source של PHP הוא שתוספות לשפה הקיימת נמצאים במרחק compile אחד בלבד. כמובן של-ASP יש אובייקטי COM ול-coldfusion יש תוויות מותאמות, אבל אי אפשר לנצח את המהירות הגולמית שבהוספת הפונקציות שלך לקוד המקור של PHP.

יש שיטענו שכל שפות תכנות השרתים הללו הן אך ורק להצגת מידע ממאגר נתונים על גבי מסך, ובדרך כלל הם יהיו צודקים. אבל PHP היא לא רק שפה ממוקדת מאגרי מידע. היא עושה עוד כל כך הרבה: יצירת גרפיקות דינאמיות, IMAP, SNMP, LDAP, XML - כולן שם. נכון, גם Perl עושה את הדברים האלה, אבל הרבה אנשים מחשיבים את Perl כקשה ללמידה ומעט "כבדה" למרבית יישומי הרשת ו-mod_Perl יכול להיות מעט "מעיק". אגב מאגרי מידע, ציינתי כבר ש-PHP יכולה לעשות Sybase, Oracle, Informix, Solid, Postgres ואפילו MSSQL?

PHP היא מתת אל גם למתכנתים קטנים יותר. PHP היא כל כך חותכת-פלטפורמות, שזה מדהים. שוב, בחינם אין כסף, אתם יכולים לתכנת בצורה מלאה, בעזרת PHP (ואולי MySQL), על מכשיר ה-windows/NT שלכם כאילו הוא היה שרת יצירה. לאנשים רבים, זה פותר בעייה מולה הם ניצבים מדי יום. ברור, יש דברים שלא עובדים בגרסת ה-win32, אבל לא תתקלו בהם עד שתתעמקו בתכנות מתקדם, ובשלב ההוא ממילא כבר תחשבו על Unix. בנוסף, PHP תרוץ על כל סוג של Unix שרק תחשבו עליו. אין שום סיבה שתכבלו את עצמכם למערכת הפעלה מסחרית זו או אחרת.

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

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

בדומה, יש גם חוסר בתמיכה ל-ISAPI. אבל ב-PHP4 תוכלו למצוא תמיכה שכזו. אגב, PHP מכילה ספריית שרתי API שמאפשרת להתאים אותה בקלות ל-APIים של שרתי רשת אחרים.

אני מאמין שיש מה לומר בעד הגישה מבוססת האובייקט של ASP. לדוגמא, input מושג דרך אובייקט הבקשה. מחרוזת שאילתא מושגת דרך פקודת Request.QueryString, תבנית מידע מושגת דרך Request.Form ואינפורמציית קוקי'ס דרך Request.Cookie. זה מאפשר לכם ליצור מצבים מרובים של אותו משתנה, כשכל אחד שמור במקום אחר. כל זה יכול גם להוביל למעט בלבול, אך עם זאת, בידיים הנכונות, מדובר ביכולת מעניינת וחזקה. עם PHP, כל מקור של עמוד מידע מטופל בצורה שווה בכך שהוא הופך להיות משתנה רגיל בתוכנה שלך.


אם הייתם שואלים אותי מדוע אני משתמש ב-PHP בעשר מלים או פחות הייתי אומר לכם ש"חינם, פשוט, שימושי, ניתן להרחבה, ופשוט מאוד 'מגניב'". וכל מלה נוספת מיותרת.









רקע
ASP
ColdFusion
JSP
PERL
PHP >