PHP
‫הווה ועתיד‬ ‫עבר‬
                       2007 ‫נובמבר‬
         <shahar.evron@gmail.com> ‫שחר עברון‬
  http://php-i...
‫מבוא‬

                                ‫ברוכים הבאים!‬    ‫●‬



                                       ‫מי אני?‬   ‫●‬

...
‫מה זה ‪? PHP‬‬


    ‫‪ PHP‬היא שפת תכנות‬
‫)סקריפטינג( רבת משתמשים‬
 ‫המיועדת במיוחד לפיתוח ל-‬
‫‪ ,Web‬אם כי אפשר להשתמ...
‫מה זה ‪?PHP‬‬

    ‫‪ PHP‬עצמה היא תוכנה חופשית / קוד פתוח, והרוב‬              ‫●‬


     ‫הגדול של התוכנה הכתובה ב- ‪ P...
‫מי משתמש ב- ‪? PHP‬‬

                ‫אנחנו ואתם, ועוד הרבה מאוד אנשים‬         ‫●‬



    ‫‪ PHP‬היא כנראה שפת ה- ‪ Web...
‫מי משתמש ב- ‪? PHP‬‬




    ‫מקור: ‪Netcraft‬‬


‫6‬                    ‫קבוצת משתמשי ‪ PHP‬בישראל‬   ‫70/9/11‬
‫עבר: ההיסטוריה בקצרה...‬

    ‫5991: רסמוס לרדורף משחרר את ‪PHP/FI‬‬                   ‫●‬



         ‫תחילת הדרך: אוסף ...
‫עבר: ההיסטוריה בקצרה...‬

    ‫7991: אנדי גוטמנס וזאב סורסקי כותבים מחדש ‬                ‫●‬


             ‫את 0.3 ‪ PH...
‫עבר: ההיסטוריה בקצרה...‬

    ‫8991: אנדי וזאב מתחילים לכתוב מחדש את‬                      ‫●‬


    ‫הליבה של ‪ :PHP‬כך ...
‫עבר: ההיסטוריה בקצרה...‬

                ‫יולי 4002: ‪ PHP 5.x‬משוחרר‬                    ‫●‬



                       ...
‫אז מה עוד אפשר‬
‫לעשות עם ‪?PHP 5.x‬‬
      ‫)חוץ מ- ‪(?OOP‬‬
PDO

     try {
         $db = new PDO('mysql:hostname=losthost;dbname=mydb',
                       'user',
             ...
XML: SimpleXML

     $xml = <<<EOXML
     <bookmarks>
         <bookmark>
             <name>CNN World News</name>
       ...
XML: DOM

     // continuing from previous example...
     $domBookmarks = dom_import_simplexml($bookmarks);

     $domDoc...
Web Services: SOAP


     // SOAP Server
     class myServiceClass
     {
         public function doServiceAction($foo, $...
Web Services: SOAP


     // SOAP client
     $myWsdl = 'http://www.example.com/service/myService.wsdl';
     $client = ne...
SPL: Standard PHP Library

               ‫( וממשקים‬Classes) ‫אוסף של מחלקות‬                     ●


            ‫( שנוע...
SPL: Standard PHP Library

     // SPL Interfaces: Iterator, Countable

     class PhotoAlbum implements Iterator, Countab...
PHP Frameworks




http://cakephp.org


                              http://framework.zend.com

                         ...
‫אפליקציות פופולריות‬




‫02‬   ‫קבוצת משתמשי ‪ PHP‬בישראל‬   ‫70/9/11‬
‫‪ PHP 4.x‬מת!‬

     ‫7002/7/31 – הכרזה על quot;סוף חייםquot; ל- 4‪PHP‬‬             ‫●‬



               ‫בדיוק 3 שנים ...
6.0 -‫ ו‬PHP 5.3 :‫העתיד‬

     (‫ מתוכנן לתחילת 8002 )כנראה‬PHP 5.3                  ●



                               ...
6.0 -‫ ו‬PHP 5.3 :‫העתיד‬

                                         ...‫: לפני‬Namespaces   ●


     class Zend_Http_Clien...
6.0 -‫ ו‬PHP 5.3 :‫העתיד‬
     namespace Zend::Http; // <--
     class Client
                                        ...‫...
‫שאלות?‬
‫תודה רבה‬


This work is licensed under the Creative Commons Attribution-Share Alike 2.5 Israel License. To view a copy o...
Upcoming SlideShare
Loading in...5
×

PHP - עבר הווה ועתיד

1,753

Published on

Published in: Technology
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total Views
1,753
On Slideshare
0
From Embeds
0
Number of Embeds
1
Actions
Shares
0
Downloads
11
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Transcript of "PHP - עבר הווה ועתיד"

  1. 1. PHP ‫הווה ועתיד‬ ‫עבר‬ 2007 ‫נובמבר‬ <shahar.evron@gmail.com> ‫שחר עברון‬ http://php-israel.org ‫ בישראל‬PHP ‫קבוצת משתמשי‬
  2. 2. ‫מבוא‬ ‫ברוכים הבאים!‬ ‫●‬ ‫מי אני?‬ ‫●‬ ‫משתמש ב- ‪ PHP‬כחמש שנים‬ ‫–‬ ‫עובד בזנד טכנולוגיות כשנתיים וחצי‬ ‫–‬ ‫מי אתם?‬ ‫●‬ ‫משתמש/ת מנוסה ב- ‪?PHP‬‬ ‫–‬ ‫מתכנת/ת ב- ‪?PHP 5.x‬‬ ‫–‬ ‫2‬ ‫קבוצת משתמשי ‪ PHP‬בישראל‬ ‫70/9/11‬
  3. 3. ‫מה זה ‪? PHP‬‬ ‫‪ PHP‬היא שפת תכנות‬ ‫)סקריפטינג( רבת משתמשים‬ ‫המיועדת במיוחד לפיתוח ל-‬ ‫‪ ,Web‬אם כי אפשר להשתמש‬ ‫בה גם לצרכים אחרים‬ ‫3‬ ‫קבוצת משתמשי ‪ PHP‬בישראל‬ ‫70/9/11‬
  4. 4. ‫מה זה ‪?PHP‬‬ ‫‪ PHP‬עצמה היא תוכנה חופשית / קוד פתוח, והרוב‬ ‫●‬ ‫הגדול של התוכנה הכתובה ב- ‪ PHP‬היא חופשית‬ ‫‪ PHP‬רצה בהצלחה על הרבה )מאד( פלטפורמות‬ ‫●‬ ‫‪ PHP‬היא שפה גמישה מאוד וקלה מאוד ללימוד‬ ‫●‬ ‫חוץ מ- ‪ ,Web‬אפשר לעשות עוד דברים עם ‪:PHP‬‬ ‫●‬ ‫‪CLI‬‬ ‫–‬ ‫‪Desktop applications‬‬ ‫–‬ ‫‪Embedded‬‬ ‫–‬ ‫4‬ ‫קבוצת משתמשי ‪ PHP‬בישראל‬ ‫70/9/11‬
  5. 5. ‫מי משתמש ב- ‪? PHP‬‬ ‫אנחנו ואתם, ועוד הרבה מאוד אנשים‬ ‫●‬ ‫‪ PHP‬היא כנראה שפת ה- ‪ Web‬הפופולרית ביותר,‬ ‫●‬ ‫והיא אחד הכוחות המניעים את השינויים ב- ‪.Web‬‬ ‫חלק גדול מאתרי ה- ‪ Web‬הפופולריים ביותר‬ ‫●‬ ‫מונעים ע“י ‪:PHP‬‬ ‫‪... ,Yahoo!, Flickr, Facebook, Digg, Wikipedia‬‬ ‫–‬ ‫... אבל גם בנקים, ממשלות וחברות ענק בינ“ל‬ ‫●‬ ‫5‬ ‫קבוצת משתמשי ‪ PHP‬בישראל‬ ‫70/9/11‬
  6. 6. ‫מי משתמש ב- ‪? PHP‬‬ ‫מקור: ‪Netcraft‬‬ ‫6‬ ‫קבוצת משתמשי ‪ PHP‬בישראל‬ ‫70/9/11‬
  7. 7. ‫עבר: ההיסטוריה בקצרה...‬ ‫5991: רסמוס לרדורף משחרר את ‪PHP/FI‬‬ ‫●‬ ‫תחילת הדרך: אוסף של סקריפטים ב- ‪Perl‬‬ ‫–‬ ‫עם הזמן הפרוייקט הוסב ל- ‪ ,C‬ונוספו יכולות גישה‬ ‫–‬ ‫לבסיסי נתונים, שאפשרו יצירת תוכן דינמי‬ ‫7991: 0.2 ‪PHP/FI‬‬ ‫●‬ ‫כמה אלפי משתמשים ברחבי העולם‬ ‫–‬ ‫כ- 000,05 )%1( משרתי האינטרנט‬ ‫–‬ ‫7‬ ‫קבוצת משתמשי ‪ PHP‬בישראל‬ ‫70/9/11‬
  8. 8. ‫עבר: ההיסטוריה בקצרה...‬ ‫7991: אנדי גוטמנס וזאב סורסקי כותבים מחדש ‬ ‫●‬ ‫את 0.3 ‪ PHP‬כפרוייקט לימודי לטכניון‬ ‫הגרסה הראשונה ש“מזכירה“ את ‪ PHP‬של היום‬ ‫–‬ ‫שם חדש: ‪PHP: Hypertext Preprocessor‬‬ ‫–‬ ‫מפתחים רבים נוספים לפרוייקט‬ ‫–‬ ‫שיפורי תחביר, ‪OO‬‬ ‫–‬ ‫מאות אלפי אתרים )%01(‬ ‫–‬ ‫שחרור סופי: יוני 8991‬ ‫–‬ ‫8‬ ‫קבוצת משתמשי ‪ PHP‬בישראל‬ ‫70/9/11‬
  9. 9. ‫עבר: ההיסטוריה בקצרה...‬ ‫8991: אנדי וזאב מתחילים לכתוב מחדש את‬ ‫●‬ ‫הליבה של ‪ :PHP‬כך נוצר ה- ‪Zend Engine‬‬ ‫שיפור ביצועים וארכיטקטורה ‬ ‫–‬ ‫שיפור מודולריות‬ ‫–‬ ‫0.4 ‪ PHP‬משוחרר במאי 0002‬ ‫●‬ ‫‪Sessions‬‬ ‫–‬ ‫‪Output Buffering‬‬ ‫–‬ ‫תמיכה בשרתים נוספים מלבד ‪Apache‬‬ ‫–‬ ‫9‬ ‫קבוצת משתמשי ‪ PHP‬בישראל‬ ‫70/9/11‬
  10. 10. ‫עבר: ההיסטוריה בקצרה...‬ ‫יולי 4002: ‪ PHP 5.x‬משוחרר‬ ‫●‬ ‫0.2 ‪Zend Engine‬‬ ‫–‬ ‫כתיבה מחדש של ה- ‪Object model‬‬ ‫–‬ ‫1.5 ‪ PHP‬משוחרר בנובמבר 5002‬ ‫–‬ ‫שיפורי ביצועים ותיקוני באגים רבים מאוד ‬ ‫●‬ ‫‪ PDO‬כברירת מחדל‬ ‫●‬ ‫2.5 ‪ PHP‬משוחרר בנובמבר 6002‬ ‫–‬ ‫שיפורים בניהול הזיכרון ושיפורי ביצועים נוספים‬ ‫●‬ ‫‪Filter, JSON, Upload hooks‬‬ ‫●‬ ‫01‬ ‫קבוצת משתמשי ‪ PHP‬בישראל‬ ‫70/9/11‬
  11. 11. ‫אז מה עוד אפשר‬ ‫לעשות עם ‪?PHP 5.x‬‬ ‫)חוץ מ- ‪(?OOP‬‬
  12. 12. PDO try { $db = new PDO('mysql:hostname=losthost;dbname=mydb', 'user', 'xxxxx'); } catch (PDOException $e) { echo quot;Error connecting to DB: {$e->getMessage()}quot;; exit; } $stmt = $db->prepare('INSERT INTO employees (name, salary) VALUES(?, ?)'); foreach ($employeeList as $emp) { $stmt->execute(array($emp['name'], $emp['salary'])); } 12 ‫ בישראל‬PHP ‫קבוצת משתמשי‬ 11/9/07
  13. 13. XML: SimpleXML $xml = <<<EOXML <bookmarks> <bookmark> <name>CNN World News</name> <url>http://cnn.com</url> </bookmark> <bookmark> <name>Planet PHP</name> <url>http://planet-php.org</url> </bookmark> </bookmarks> EOXML; $bookmarks = new SimpleXMLElement($xml); foreach($bookmarks->bookmark as $bmark) { echo quot;{$bmark->name}: {$bmark->url}nquot;; } 13 ‫ בישראל‬PHP ‫קבוצת משתמשי‬ 11/9/07
  14. 14. XML: DOM // continuing from previous example... $domBookmarks = dom_import_simplexml($bookmarks); $domDoc = new DOMDocument(); $domBookmarks = $domDoc->importNode($domBookmarks, true); $domDoc->appendChild($domBookmarks); foreach ($domDoc->getElementsByTagName('bookmark') as $bmark) { $rank = $domDoc->createElement('ranking', '5'); $bmark->appendChild($rank); } echo $domDoc->saveXML(); 14 ‫ בישראל‬PHP ‫קבוצת משתמשי‬ 11/9/07
  15. 15. Web Services: SOAP // SOAP Server class myServiceClass { public function doServiceAction($foo, $bar) { // ... } } // Set up SOAP server $server = new SoapServer('myService.wsdl'); $server->setClass('myServiceClass'); // Handle request $server->handle(); 15 ‫ בישראל‬PHP ‫קבוצת משתמשי‬ 11/9/07
  16. 16. Web Services: SOAP // SOAP client $myWsdl = 'http://www.example.com/service/myService.wsdl'; $client = new SoapClient($myWsdl); try { $myData = $client->doServiceAction('foo', 'bar'); } catch (SoapFault $fault) { echo quot;Error getting data from remote server: quot; . $fault->getMessage(); exit; } 16 ‫ בישראל‬PHP ‫קבוצת משתמשי‬ 11/9/07
  17. 17. SPL: Standard PHP Library ‫( וממשקים‬Classes) ‫אוסף של מחלקות‬ ● ‫( שנועדו לפתור בעיות נפוצות‬Interfaces) ● http://www.php.net/~helly/php/ext/spl/ // SPL Directory Iterator $musicDir = new DirectoryIterator('/home/shahar/Music'); foreach ($musicDir as $song) { if ($song->isDir()) continue; echo quot;$song - Last played: quot; . date(quot;Y-m-d h:i:squot;, $song->getATime()) . quot;nquot;; } 17 ‫ בישראל‬PHP ‫קבוצת משתמשי‬ 11/9/07
  18. 18. SPL: Standard PHP Library // SPL Interfaces: Iterator, Countable class PhotoAlbum implements Iterator, Countable { // ... a bunch of code here ... } $album = new PhotoAlbum('/home/shahar/Albums/India'); // Access the object using the 'count()' function echo quot;The {$album->getTitle()} contains quot; . count($album) . quot; photos.<br />quot;; // Iterate using 'foreach()' foreach ($album as $photo) { echo htmlspecialchars($photo->getTitle()) . '<img src=quot;' . $photo->getUrl() . 'quot; />'; } 18 ‫ בישראל‬PHP ‫קבוצת משתמשי‬ 11/9/07
  19. 19. PHP Frameworks http://cakephp.org http://framework.zend.com http://pear.php.net http://symfony-project.com http://ez.no/ezcomponents 19 ‫ בישראל‬PHP ‫קבוצת משתמשי‬ 11/9/07
  20. 20. ‫אפליקציות פופולריות‬ ‫02‬ ‫קבוצת משתמשי ‪ PHP‬בישראל‬ ‫70/9/11‬
  21. 21. ‫‪ PHP 4.x‬מת!‬ ‫7002/7/31 – הכרזה על quot;סוף חייםquot; ל- 4‪PHP‬‬ ‫●‬ ‫בדיוק 3 שנים אחרי ש- 5‪ PHP‬שוחרר‬ ‫–‬ ‫החל מה-7002/21/13 רק עידכוני אבטחה‬ ‫●‬ ‫קריטיים‬ ‫הפיתוח יפסק לחלוטין ב- 8002/8/8‬ ‫●‬ ‫12‬ ‫קבוצת משתמשי ‪ PHP‬בישראל‬ ‫70/9/11‬
  22. 22. 6.0 -‫ ו‬PHP 5.3 :‫העתיד‬ (‫ מתוכנן לתחילת 8002 )כנראה‬PHP 5.3 ● Namespaces – Partial Unicode Support – Late Static Binding – Class::__callStatic() – ? PHP 6.0 ● “It's ready when it's ready” – Full Unicode Support – 22 ‫ בישראל‬PHP ‫קבוצת משתמשי‬ 11/9/07
  23. 23. 6.0 -‫ ו‬PHP 5.3 :‫העתיד‬ ...‫: לפני‬Namespaces ● class Zend_Http_Client { const METHOD_POST = 'POST'; public function request($method) { // ... } static public function encodeFormData() { // ... } } $client = new Zend_Http_Client(); $client->request(Zend_Http_Client::METHOD_POST); $body = Zend_Http_Client::encodeFormData(); 23 ‫ בישראל‬PHP ‫קבוצת משתמשי‬ 11/9/07
  24. 24. 6.0 -‫ ו‬PHP 5.3 :‫העתיד‬ namespace Zend::Http; // <-- class Client ...‫: אחרי‬Namespaces ● { const METHOD_POST = 'POST'; public function request($method) { // ... } static public function encodeFormData() { // ... } } use Zend::Http::Client as Client; // <-- $client = new Client(); $client->request(Client::METHOD_POST); $body = Client::encodeFormData(); 24 ‫ בישראל‬PHP ‫קבוצת משתמשי‬ 11/9/07
  25. 25. ‫שאלות?‬
  26. 26. ‫תודה רבה‬ This work is licensed under the Creative Commons Attribution-Share Alike 2.5 Israel License. To view a copy of this license, visit http://creativecommons.org/licenses/by-sa/2.5/il/ or send a letter to Creative Commons, 171 Second Street, Suite 300, San Francisco, California, 94105, USA.
  1. A particular slide catching your eye?

    Clipping is a handy way to collect important slides you want to go back to later.

×