SlideShare a Scribd company logo
1 of 26
Download to read offline
PHP
‫הווה ועתיד‬ ‫עבר‬
                       2007 ‫נובמבר‬
         <shahar.evron@gmail.com> ‫שחר עברון‬
  http://php-israel.org ‫ בישראל‬PHP ‫קבוצת משתמשי‬
‫מבוא‬

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



                                       ‫מי אני?‬   ‫●‬



          ‫משתמש ב- ‪ PHP‬כחמש שנים‬            ‫–‬

    ‫עובד בזנד טכנולוגיות כשנתיים וחצי‬       ‫–‬



                                     ‫מי אתם?‬     ‫●‬



            ‫משתמש/ת מנוסה ב- ‪?PHP‬‬           ‫–‬

                 ‫מתכנת/ת ב- ‪?PHP 5.x‬‬        ‫–‬


‫2‬     ‫קבוצת משתמשי ‪ PHP‬בישראל‬               ‫70/9/11‬
‫מה זה ‪? PHP‬‬


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

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


     ‫הגדול של התוכנה הכתובה ב- ‪ PHP‬היא חופשית‬
    ‫‪ PHP‬רצה בהצלחה על הרבה )מאד( פלטפורמות‬                   ‫●‬



       ‫‪ PHP‬היא שפה גמישה מאוד וקלה מאוד ללימוד‬               ‫●‬



‫חוץ מ- ‪ ,Web‬אפשר לעשות עוד דברים עם ‪:PHP‬‬                     ‫●‬



                                                   ‫‪CLI‬‬   ‫–‬

                               ‫‪Desktop applications‬‬      ‫–‬

                                              ‫‪Embedded‬‬   ‫–‬

‫4‬                   ‫קבוצת משתמשי ‪ PHP‬בישראל‬              ‫70/9/11‬
‫מי משתמש ב- ‪? PHP‬‬

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



    ‫‪ PHP‬היא כנראה שפת ה- ‪ Web‬הפופולרית ביותר,‬            ‫●‬


     ‫והיא אחד הכוחות המניעים את השינויים ב- ‪.Web‬‬
        ‫חלק גדול מאתרי ה- ‪ Web‬הפופולריים ביותר‬           ‫●‬


                                ‫מונעים ע“י ‪:PHP‬‬
    ‫‪... ,Yahoo!, Flickr, Facebook, Digg, Wikipedia‬‬   ‫–‬




      ‫... אבל גם בנקים, ממשלות וחברות ענק בינ“ל‬          ‫●‬


‫5‬                     ‫קבוצת משתמשי ‪ PHP‬בישראל‬        ‫70/9/11‬
‫מי משתמש ב- ‪? PHP‬‬




    ‫מקור: ‪Netcraft‬‬


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

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



         ‫תחילת הדרך: אוסף של סקריפטים ב- ‪Perl‬‬        ‫–‬

    ‫עם הזמן הפרוייקט הוסב ל- ‪ ,C‬ונוספו יכולות גישה‬   ‫–‬
            ‫לבסיסי נתונים, שאפשרו יצירת תוכן דינמי‬


                                   ‫7991: 0.2 ‪PHP/FI‬‬      ‫●‬


                ‫כמה אלפי משתמשים ברחבי העולם‬         ‫–‬

               ‫כ- 000,05 )%1( משרתי האינטרנט‬         ‫–‬


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

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


             ‫את 0.3 ‪ PHP‬כפרוייקט לימודי לטכניון‬
        ‫הגרסה הראשונה ש“מזכירה“ את ‪ PHP‬של היום‬            ‫–‬

         ‫שם חדש: ‪PHP: Hypertext Preprocessor‬‬              ‫–‬

                     ‫מפתחים רבים נוספים לפרוייקט‬          ‫–‬

                                       ‫שיפורי תחביר, ‪OO‬‬   ‫–‬

                           ‫מאות אלפי אתרים )%01(‬          ‫–‬

                                 ‫שחרור סופי: יוני 8991‬    ‫–‬


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

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


    ‫הליבה של ‪ :PHP‬כך נוצר ה- ‪Zend Engine‬‬
                     ‫שיפור ביצועים וארכיטקטורה ‬            ‫–‬

                                         ‫שיפור מודולריות‬   ‫–‬

               ‫0.4 ‪ PHP‬משוחרר במאי 0002‬                        ‫●‬



                                              ‫‪Sessions‬‬     ‫–‬

                                 ‫‪Output Buffering‬‬          ‫–‬

          ‫תמיכה בשרתים נוספים מלבד ‪Apache‬‬                  ‫–‬


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

                ‫יולי 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‬
‫אז מה עוד אפשר‬
‫לעשות עם ‪?PHP 5.x‬‬
      ‫)חוץ מ- ‪(?OOP‬‬
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
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
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
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
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
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
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
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
‫אפליקציות פופולריות‬




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

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



               ‫בדיוק 3 שנים אחרי ש- 5‪ PHP‬שוחרר‬       ‫–‬



         ‫החל מה-7002/21/13 רק עידכוני אבטחה‬              ‫●‬

                                      ‫קריטיים‬
              ‫הפיתוח יפסק לחלוטין ב- 8002/8/8‬            ‫●‬




‫12‬                 ‫קבוצת משתמשי ‪ PHP‬בישראל‬           ‫70/9/11‬
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
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
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
‫שאלות?‬
‫תודה רבה‬


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.

More Related Content

Viewers also liked (7)

diagrams an Delueze
diagrams an Deluezediagrams an Delueze
diagrams an Delueze
 
Amazing Digital Projects 11
Amazing Digital Projects 11Amazing Digital Projects 11
Amazing Digital Projects 11
 
Hatikvah
HatikvahHatikvah
Hatikvah
 
Digital innovation &amp; creative projects 41
Digital innovation &amp; creative projects 41Digital innovation &amp; creative projects 41
Digital innovation &amp; creative projects 41
 
Gods In The Machine
Gods In The MachineGods In The Machine
Gods In The Machine
 
Linked in 101 Part I: Let's Get Connected
Linked in 101 Part I: Let's Get ConnectedLinked in 101 Part I: Let's Get Connected
Linked in 101 Part I: Let's Get Connected
 
What to Upload to SlideShare
What to Upload to SlideShareWhat to Upload to SlideShare
What to Upload to SlideShare
 

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

PHP ואבטחה - חלק שני
PHP ואבטחה - חלק שניPHP ואבטחה - חלק שני
PHP ואבטחה - חלק שני
Shahar Evron
 
וורדפרס בחמש דקות (WordPress in five minutes, Hebrew))
וורדפרס בחמש דקות (WordPress in five minutes, Hebrew))וורדפרס בחמש דקות (WordPress in five minutes, Hebrew))
וורדפרס בחמש דקות (WordPress in five minutes, Hebrew))
ran.hartstein
 
Slackware Tip
Slackware TipSlackware Tip
Slackware Tip
mikilev3
 
עיצוב ויזואלי של מידע ליזי כהן שיעור 2
עיצוב ויזואלי של מידע   ליזי כהן   שיעור 2עיצוב ויזואלי של מידע   ליזי כהן   שיעור 2
עיצוב ויזואלי של מידע ליזי כהן שיעור 2
lizicohen
 
עיצוב ויזואלי של מידע ליזי כהן שיעור 1
עיצוב ויזואלי של מידע   ליזי כהן   שיעור 1עיצוב ויזואלי של מידע   ליזי כהן   שיעור 1
עיצוב ויזואלי של מידע ליזי כהן שיעור 1
lizicohen
 
פסק דין מאיר בוחבוט פדויי שבי
פסק דין מאיר  בוחבוט פדויי שביפסק דין מאיר  בוחבוט פדויי שבי
פסק דין מאיר בוחבוט פדויי שבי
smile2life Israel
 
קורס בניית טורבינות רוח 7-12.6
קורס בניית טורבינות רוח 7-12.6קורס בניית טורבינות רוח 7-12.6
קורס בניית טורבינות רוח 7-12.6
Hanan E. Levy
 
Cloud Computing round table (Hebrew) summary
Cloud Computing round table (Hebrew) summaryCloud Computing round table (Hebrew) summary
Cloud Computing round table (Hebrew) summary
Galit Fein
 
על היפה רותם אפפל
על היפה רותם אפפלעל היפה רותם אפפל
על היפה רותם אפפל
rotem42
 
The National Water Conduit
The National Water ConduitThe National Water Conduit
The National Water Conduit
Ilan
 
It Help Desk Round Table Summary
It Help Desk Round Table SummaryIt Help Desk Round Table Summary
It Help Desk Round Table Summary
Galit Fein
 
Erp Round Table Summary
Erp Round Table SummaryErp Round Table Summary
Erp Round Table Summary
STKI
 

Similar to PHP - עבר הווה ועתיד (20)

PHP ואבטחה - חלק שני
PHP ואבטחה - חלק שניPHP ואבטחה - חלק שני
PHP ואבטחה - חלק שני
 
וורדפרס בחמש דקות (WordPress in five minutes, Hebrew))
וורדפרס בחמש דקות (WordPress in five minutes, Hebrew))וורדפרס בחמש דקות (WordPress in five minutes, Hebrew))
וורדפרס בחמש דקות (WordPress in five minutes, Hebrew))
 
IBM WebSphere Portal and Web Content management - Hebrew Overview
IBM WebSphere Portal and Web Content management - Hebrew OverviewIBM WebSphere Portal and Web Content management - Hebrew Overview
IBM WebSphere Portal and Web Content management - Hebrew Overview
 
Hebrew, Introduction to Zend Controller And new technique
Hebrew, Introduction to Zend Controller And new techniqueHebrew, Introduction to Zend Controller And new technique
Hebrew, Introduction to Zend Controller And new technique
 
Slackware Tip
Slackware TipSlackware Tip
Slackware Tip
 
עיצוב ויזואלי של מידע ליזי כהן שיעור 2
עיצוב ויזואלי של מידע   ליזי כהן   שיעור 2עיצוב ויזואלי של מידע   ליזי כהן   שיעור 2
עיצוב ויזואלי של מידע ליזי כהן שיעור 2
 
Netica UX design
Netica UX designNetica UX design
Netica UX design
 
עיצוב ויזואלי של מידע ליזי כהן שיעור 1
עיצוב ויזואלי של מידע   ליזי כהן   שיעור 1עיצוב ויזואלי של מידע   ליזי כהן   שיעור 1
עיצוב ויזואלי של מידע ליזי כהן שיעור 1
 
Mount Mutant
Mount MutantMount Mutant
Mount Mutant
 
פסק דין מאיר בוחבוט פדויי שבי
פסק דין מאיר  בוחבוט פדויי שביפסק דין מאיר  בוחבוט פדויי שבי
פסק דין מאיר בוחבוט פדויי שבי
 
קורס בניית טורבינות רוח 7-12.6
קורס בניית טורבינות רוח 7-12.6קורס בניית טורבינות רוח 7-12.6
קורס בניית טורבינות רוח 7-12.6
 
Ella Jimmy Iseeqs Pm Heart
Ella Jimmy Iseeqs Pm HeartElla Jimmy Iseeqs Pm Heart
Ella Jimmy Iseeqs Pm Heart
 
Cloud Computing round table (Hebrew) summary
Cloud Computing round table (Hebrew) summaryCloud Computing round table (Hebrew) summary
Cloud Computing round table (Hebrew) summary
 
Profile
ProfileProfile
Profile
 
על היפה רותם אפפל
על היפה רותם אפפלעל היפה רותם אפפל
על היפה רותם אפפל
 
The National Water Conduit
The National Water ConduitThe National Water Conduit
The National Water Conduit
 
GoLinks שיווק אינטרנט
GoLinks שיווק אינטרנטGoLinks שיווק אינטרנט
GoLinks שיווק אינטרנט
 
It Help Desk Round Table Summary
It Help Desk Round Table SummaryIt Help Desk Round Table Summary
It Help Desk Round Table Summary
 
ויקיפדיה ומאגרי מידע באינטרנט
ויקיפדיה ומאגרי מידע באינטרנטויקיפדיה ומאגרי מידע באינטרנט
ויקיפדיה ומאגרי מידע באינטרנט
 
Erp Round Table Summary
Erp Round Table SummaryErp Round Table Summary
Erp Round Table Summary
 

More from Shahar Evron

Amazon Cloud Services and Zend Framework
Amazon Cloud Services and Zend FrameworkAmazon Cloud Services and Zend Framework
Amazon Cloud Services and Zend Framework
Shahar Evron
 
Building Scalable Development Environments
Building Scalable Development EnvironmentsBuilding Scalable Development Environments
Building Scalable Development Environments
Shahar Evron
 

More from Shahar Evron (11)

Best Practices in PHP Application Deployment
Best Practices in PHP Application DeploymentBest Practices in PHP Application Deployment
Best Practices in PHP Application Deployment
 
Amazon Cloud Services and Zend Framework
Amazon Cloud Services and Zend FrameworkAmazon Cloud Services and Zend Framework
Amazon Cloud Services and Zend Framework
 
PHP and Zend Framework on Windows
PHP and Zend Framework on WindowsPHP and Zend Framework on Windows
PHP and Zend Framework on Windows
 
Zend Server: A Guided Tour
Zend Server: A Guided TourZend Server: A Guided Tour
Zend Server: A Guided Tour
 
Zend Server: Scalability & Performance
Zend Server: Scalability & PerformanceZend Server: Scalability & Performance
Zend Server: Scalability & Performance
 
Intro To Couch Db
Intro To Couch DbIntro To Couch Db
Intro To Couch Db
 
Scaling PHP Applications with Zend Platform
Scaling PHP Applications with Zend PlatformScaling PHP Applications with Zend Platform
Scaling PHP Applications with Zend Platform
 
Zend Framework Components for non-framework Development
Zend Framework Components for non-framework DevelopmentZend Framework Components for non-framework Development
Zend Framework Components for non-framework Development
 
PHP ואבטחה - חלק ראשון
PHP ואבטחה - חלק ראשוןPHP ואבטחה - חלק ראשון
PHP ואבטחה - חלק ראשון
 
Content Indexing with Zend_Search_Lucene
Content Indexing with Zend_Search_LuceneContent Indexing with Zend_Search_Lucene
Content Indexing with Zend_Search_Lucene
 
Building Scalable Development Environments
Building Scalable Development EnvironmentsBuilding Scalable Development Environments
Building Scalable Development Environments
 

Recently uploaded

Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire business
panagenda
 
Architecting Cloud Native Applications
Architecting Cloud Native ApplicationsArchitecting Cloud Native Applications
Architecting Cloud Native Applications
WSO2
 

Recently uploaded (20)

TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
 
Ransomware_Q4_2023. The report. [EN].pdf
Ransomware_Q4_2023. The report. [EN].pdfRansomware_Q4_2023. The report. [EN].pdf
Ransomware_Q4_2023. The report. [EN].pdf
 
MS Copilot expands with MS Graph connectors
MS Copilot expands with MS Graph connectorsMS Copilot expands with MS Graph connectors
MS Copilot expands with MS Graph connectors
 
Apidays Singapore 2024 - Modernizing Securities Finance by Madhu Subbu
Apidays Singapore 2024 - Modernizing Securities Finance by Madhu SubbuApidays Singapore 2024 - Modernizing Securities Finance by Madhu Subbu
Apidays Singapore 2024 - Modernizing Securities Finance by Madhu Subbu
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processors
 
Manulife - Insurer Transformation Award 2024
Manulife - Insurer Transformation Award 2024Manulife - Insurer Transformation Award 2024
Manulife - Insurer Transformation Award 2024
 
DBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor PresentationDBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor Presentation
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
 
Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire business
 
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin WoodPolkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
 
A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?
 
Apidays Singapore 2024 - Scalable LLM APIs for AI and Generative AI Applicati...
Apidays Singapore 2024 - Scalable LLM APIs for AI and Generative AI Applicati...Apidays Singapore 2024 - Scalable LLM APIs for AI and Generative AI Applicati...
Apidays Singapore 2024 - Scalable LLM APIs for AI and Generative AI Applicati...
 
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
 
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
 
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
 
GenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdfGenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdf
 
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a Fresher
 
Architecting Cloud Native Applications
Architecting Cloud Native ApplicationsArchitecting Cloud Native Applications
Architecting Cloud Native Applications
 

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

  • 1. PHP ‫הווה ועתיד‬ ‫עבר‬ 2007 ‫נובמבר‬ <shahar.evron@gmail.com> ‫שחר עברון‬ http://php-israel.org ‫ בישראל‬PHP ‫קבוצת משתמשי‬
  • 2. ‫מבוא‬ ‫ברוכים הבאים!‬ ‫●‬ ‫מי אני?‬ ‫●‬ ‫משתמש ב- ‪ PHP‬כחמש שנים‬ ‫–‬ ‫עובד בזנד טכנולוגיות כשנתיים וחצי‬ ‫–‬ ‫מי אתם?‬ ‫●‬ ‫משתמש/ת מנוסה ב- ‪?PHP‬‬ ‫–‬ ‫מתכנת/ת ב- ‪?PHP 5.x‬‬ ‫–‬ ‫2‬ ‫קבוצת משתמשי ‪ PHP‬בישראל‬ ‫70/9/11‬
  • 3. ‫מה זה ‪? PHP‬‬ ‫‪ PHP‬היא שפת תכנות‬ ‫)סקריפטינג( רבת משתמשים‬ ‫המיועדת במיוחד לפיתוח ל-‬ ‫‪ ,Web‬אם כי אפשר להשתמש‬ ‫בה גם לצרכים אחרים‬ ‫3‬ ‫קבוצת משתמשי ‪ PHP‬בישראל‬ ‫70/9/11‬
  • 4. ‫מה זה ‪?PHP‬‬ ‫‪ PHP‬עצמה היא תוכנה חופשית / קוד פתוח, והרוב‬ ‫●‬ ‫הגדול של התוכנה הכתובה ב- ‪ PHP‬היא חופשית‬ ‫‪ PHP‬רצה בהצלחה על הרבה )מאד( פלטפורמות‬ ‫●‬ ‫‪ PHP‬היא שפה גמישה מאוד וקלה מאוד ללימוד‬ ‫●‬ ‫חוץ מ- ‪ ,Web‬אפשר לעשות עוד דברים עם ‪:PHP‬‬ ‫●‬ ‫‪CLI‬‬ ‫–‬ ‫‪Desktop applications‬‬ ‫–‬ ‫‪Embedded‬‬ ‫–‬ ‫4‬ ‫קבוצת משתמשי ‪ PHP‬בישראל‬ ‫70/9/11‬
  • 5. ‫מי משתמש ב- ‪? PHP‬‬ ‫אנחנו ואתם, ועוד הרבה מאוד אנשים‬ ‫●‬ ‫‪ PHP‬היא כנראה שפת ה- ‪ Web‬הפופולרית ביותר,‬ ‫●‬ ‫והיא אחד הכוחות המניעים את השינויים ב- ‪.Web‬‬ ‫חלק גדול מאתרי ה- ‪ Web‬הפופולריים ביותר‬ ‫●‬ ‫מונעים ע“י ‪:PHP‬‬ ‫‪... ,Yahoo!, Flickr, Facebook, Digg, Wikipedia‬‬ ‫–‬ ‫... אבל גם בנקים, ממשלות וחברות ענק בינ“ל‬ ‫●‬ ‫5‬ ‫קבוצת משתמשי ‪ PHP‬בישראל‬ ‫70/9/11‬
  • 6. ‫מי משתמש ב- ‪? PHP‬‬ ‫מקור: ‪Netcraft‬‬ ‫6‬ ‫קבוצת משתמשי ‪ PHP‬בישראל‬ ‫70/9/11‬
  • 7. ‫עבר: ההיסטוריה בקצרה...‬ ‫5991: רסמוס לרדורף משחרר את ‪PHP/FI‬‬ ‫●‬ ‫תחילת הדרך: אוסף של סקריפטים ב- ‪Perl‬‬ ‫–‬ ‫עם הזמן הפרוייקט הוסב ל- ‪ ,C‬ונוספו יכולות גישה‬ ‫–‬ ‫לבסיסי נתונים, שאפשרו יצירת תוכן דינמי‬ ‫7991: 0.2 ‪PHP/FI‬‬ ‫●‬ ‫כמה אלפי משתמשים ברחבי העולם‬ ‫–‬ ‫כ- 000,05 )%1( משרתי האינטרנט‬ ‫–‬ ‫7‬ ‫קבוצת משתמשי ‪ PHP‬בישראל‬ ‫70/9/11‬
  • 8. ‫עבר: ההיסטוריה בקצרה...‬ ‫7991: אנדי גוטמנס וזאב סורסקי כותבים מחדש ‬ ‫●‬ ‫את 0.3 ‪ PHP‬כפרוייקט לימודי לטכניון‬ ‫הגרסה הראשונה ש“מזכירה“ את ‪ PHP‬של היום‬ ‫–‬ ‫שם חדש: ‪PHP: Hypertext Preprocessor‬‬ ‫–‬ ‫מפתחים רבים נוספים לפרוייקט‬ ‫–‬ ‫שיפורי תחביר, ‪OO‬‬ ‫–‬ ‫מאות אלפי אתרים )%01(‬ ‫–‬ ‫שחרור סופי: יוני 8991‬ ‫–‬ ‫8‬ ‫קבוצת משתמשי ‪ PHP‬בישראל‬ ‫70/9/11‬
  • 9. ‫עבר: ההיסטוריה בקצרה...‬ ‫8991: אנדי וזאב מתחילים לכתוב מחדש את‬ ‫●‬ ‫הליבה של ‪ :PHP‬כך נוצר ה- ‪Zend Engine‬‬ ‫שיפור ביצועים וארכיטקטורה ‬ ‫–‬ ‫שיפור מודולריות‬ ‫–‬ ‫0.4 ‪ PHP‬משוחרר במאי 0002‬ ‫●‬ ‫‪Sessions‬‬ ‫–‬ ‫‪Output Buffering‬‬ ‫–‬ ‫תמיכה בשרתים נוספים מלבד ‪Apache‬‬ ‫–‬ ‫9‬ ‫קבוצת משתמשי ‪ PHP‬בישראל‬ ‫70/9/11‬
  • 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‬
  • 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. 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. 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. 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. 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. 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. 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. 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. ‫אפליקציות פופולריות‬ ‫02‬ ‫קבוצת משתמשי ‪ PHP‬בישראל‬ ‫70/9/11‬
  • 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. 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. 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. 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
  • 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.