php / ברכת שלום ל Zend / יישומים חדשים

יישומים חדשים



אז מה עוד חדש ב-PHP 4? כל הפונקציות הנפלאות שהכרנו ואהבנו ב-PHP 3 עדיין נמצאות, רק נוספו כמה שעשועים חדשים. לראשונה בהיסטוריה נוספו יישומים כגון תמיכה ב"פגישות" (sessions),מסמכי "here", תמיכה ב-FTP, PCRE ועוד רבים וטובים, יש גם הרבה פונקציות חדשות ומורחבות שחלקם נעשו גם ב-PHP3. אנחנו נדון בחלקם בהרחבה בעמודים הבאים.


התקנות

תמיכת ISAPI לה חיכינו שנים רבות כל כך סוף סוף הגיעה. הקובץ DLL מופיע כפילטר וכמפה מנחה, שמציעה לנו את כל היתרונות והיישומים הטמונים בשלוחת ISAPI, כגון השבחת הביצועים.

למשתמשי UNIX טמונה הפתעה נוספת PHP 3 ו-PHP 4 באים עם כלי לניהול גרסאות. ע"י שימוש בכלים שניתנים לך כעת, תוכל להיעזר באפאצ'י כדי ליצור מודולים נפרדים לכל גרסה של התוכנית ולהשתמש בהם המקביל. כאשר אתה עושה זאת, אל תשכח לקרוא את המסמכים המתאימים.

תמיכה לשרתי אינטרנט אפשרית כעת, ע"י שימוש בתוכנת הSAPI בצירוף עם אפאצ'י, IIS, AOL Server, ZEUS, ו-Roxen


"סשנים" (פגישות -Sessions)

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

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

<?php
if (!isset($count)) $count=0;
session_register("count");
$count++;
?>
<html>
<head>
<title>Session Example</title>
</head>
<body>
Hello, visitor, you have seen this page <?php echo $count; ?>
times.
<p>
To continue, <A HREF="<?php echo $PHP_SELF ."?".
$ PHPSESSID?>">
click here</A>.
</body>
</html>


זה הכל! אם תלחץ על הקישור המופיע בעמוד או תלחץ על כפתור "רענן", יופיע אותו דף, רק המספר שבכיתוב יגדל באחד. אם לחצת על הקישור תוכל גם לראות את מספר ה"פגישה" בשורת הכתובת של הדפדפן. (זה קצת יותר קידוד מכיוון שצריך לצרף את ה-session לתוך מחרוזת השאילתא אבל אתה תשמח לקבל את הפונקציונליות המורחבת).


הדפסת "here "

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

<html>
<head>
<title>Here Example</title>
</head>
<body>
<?php
$x = "World";
print <<<EOF
<pre>
Hello $x 1.
This is a line of text.
EOF;
?>
</body>
</html>


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


תמיכת FTP

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

<html>
<head>
<title>FTP Example</title>
</head>
<body>
<?php
$host = "mirror.aarnet.edu.au";
$quake_dir = "pub/q3demotest/win32";
if (!$ftp = ftp_connect($host)) {
echo "Sorry could not connect";
} else {
ftp_login($ftp, "anonymous", "monkey@wired.com");
$current_dir = ftp_pwd($ftp);
echo "Current directory is $current_dir <br>";
ftp_chdir($ftp, $quake_dir);
$current_dir = ftp_pwd($ftp);
echo "Current directory is $current_dir <br>";
if ($contents = ftp_nlist($ftp,".")) {
for ($i=0; $i<count($contents);$i++) {
$size = ftp_size($ftp, $contents[$i]);
printf("%s (%s bytes)<br>", $contents[$i], $size);
}
} else {
echo "No dir!";
}
ftp_quit($ftp);
}
?>
</body>
</html>


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


PCRE

לכל מתכנתי פרל בעולם הרחב, אל דאגה, פחד וייאוש! בעזרת ה-PCRE המעבר שלכם ל-PHP הוא קליל ומסוגנן, עם הכללת הספריה:
Perl Compatible Regular Expression

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


ג'אוה

כאן בא משהו שאני לחלוטין לא מתכנן להעמיד פנים ולהגיד שאני יודע.
ציטוט מהיר מקובץ ה Readme של ג'אוה טוען ש"תמיכת ג'אוה ב-PHP 4 מספקת דרך פשוטה ויעילה ליצירה והעלאת שיטות לאובייקט ג'אוה ישירות מתוך PHP ".
הנה דוגמא מהירה. (תודה רבה לסם רובי מצוות הפיתוח של PHP שהרשה לי להשתמש בדוגמא החושפנית שלעיל).

<html>
<head>
<title>Java Example</title>
</head>
<body>
<?php $system = new Java("java.lang.System");
print "Java version=".$system->getProperty("java.version")."
<br>\n";
print "Java vendor=".$system->getProperty("java.vendor")."
<p>\n\n";
print "OS=".$system->getProperty("os.name")." ".
$system->getProperty("os.version")." on ".
$system->getProperty("os.arch")." <br>\n";

$formatter = new Java("java.text.SimpleDateFormat",
"EEEE, MMMM dd, yyyy 'at' h:mm:ss a zzzz");

print $formatter->format(new Java("java.util.Date"))."\n";
?>
</body>
</html>


לא צריך להיות גאון ג'אוה כדי להבין שזה יישום מדליק ממש. לאנשי NT שבניכם, ישנה גם תמיכה ב-COM שתורחב בעתיד.


PEAR

PEAR הוא יישום חדש שנמצא בשלבי פתוח מוקדמים כרגע, אבל הצורך שבו ברור לכל אחד.( בתקוה ש-PEAR יהיה ל-PHP מה ש-CPAN כיום ל-Perl.)
PEAR הוא ייצור סטנדרט אחיד למפתחי PHP. כיום המצב הוא שהמוני מפתחים כותבים קודים שונים ומשונים ללא סטנדרט קבוע, (יש הרבה אתרי אינטרנט מפתחי PHP חלקם מכילים חלקי קוד ,חלקם classes וחלקם סקריפטים), מה שמקשה על שימוש חוזר בקוד.

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



עמוד הבא: יישומים לחנונים >>




הקדמה
אופטימיזציה
PHP מול ASP
יישומים חדשים >
יישומים לחנונים