26
PHP עבר הווה ועתיד נובמבר 2007 שחר עברון <[email protected]> קבוצת משתמשי PHP בישראל http://php-israel.org

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

Embed Size (px)

Citation preview

Page 1: PHP - עבר הווה ועתיד

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

2007נובמבר <[email protected]>שחר עברון http://php-israel.orgבישראל PHP קבוצת משתמשי 

Page 2: PHP - עבר הווה ועתיד

2 קבוצת משתמשי PHP בישראל 11/9/07

מבוא

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

?מי אני●

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

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

?מי אתם●

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

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

Page 3: PHP - עבר הווה ועתיד

3 קבוצת משתמשי PHP בישראל 11/9/07

?PHP מה זה 

PHPהיא שפת תכנותרבת משתמשים) סקריפטינג(

-המיועדת במיוחד לפיתוח ל ,Webאם כי אפשר להשתמש

בה גם לצרכים אחרים

Page 4: PHP - עבר הווה ועתיד

4 קבוצת משתמשי PHP בישראל 11/9/07

PHP?מה זה 

● PHP והרוב, קוד פתוח/ עצמה היא תוכנה חופשיתהיא חופשית- PHP הגדול של התוכנה הכתובה ב

● PHP פלטפורמות) מאד(רצה בהצלחה על הרבה

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

PHP:אפשר לעשות עוד דברים עם - Web, חוץ מ●–CLI–Desktop applications–Embedded

Page 5: PHP - עבר הווה ועתיד

5 קבוצת משתמשי PHP בישראל 11/9/07

?PHP - מי משתמש ב

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

● PHPהיא כנראה שפת ה Web -הפופולרית ביותר,- Web.והיא אחד הכוחות המניעים את השינויים ב

הפופולריים ביותר- Web חלק גדול מאתרי ה●י  PHP:“מונעים ע

–... ,Yahoo!, Flickr, Facebook, Digg, Wikipedia

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

Page 6: PHP - עבר הווה ועתיד

6 קבוצת משתמשי PHP בישראל 11/9/07

?PHP - מי משתמש ב

: Netcraftמקור

Page 7: PHP - עבר הווה ועתיד

7 קבוצת משתמשי PHP בישראל 11/9/07

...ההיסטוריה בקצרה: עבר

PHP/FIרסמוס לרדורף משחרר את 1995: ●

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

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

●PHP/FI 2.0 :1997כמה אלפי משתמשים ברחבי העולם–

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

Page 8: PHP - עבר הווה ועתיד

8 קבוצת משתמשי PHP בישראל 11/9/07

...ההיסטוריה בקצרה: עבר

אנדי גוטמנס וזאב סורסקי כותבים מחדש 1997: ●כפרוייקט לימודי לטכניוןPHP 3.0 את 

 את – מזכירה “הגרסה הראשונה ש “ PHPשל היום

: PHP: Hypertext Preprocessorשם חדש–

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

, OOשיפורי תחביר–

(10%)מאות אלפי אתרים –

1998יוני : שחרור סופי–

Page 9: PHP - עבר הווה ועתיד

9 קבוצת משתמשי PHP בישראל 11/9/07

...ההיסטוריה בקצרה: עבר

אנדי וזאב מתחילים לכתוב מחדש את1998: ●- Zend Engineכך נוצר הPHP: הליבה של 

שיפור ביצועים וארכיטקטורה –

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

● PHP 4.0 2000משוחרר במאי–Sessions–Output BufferingApacheתמיכה בשרתים נוספים מלבד –

Page 10: PHP - עבר הווה ועתיד

10 קבוצת משתמשי PHP בישראל 11/9/07

...ההיסטוריה בקצרה: עבר

משוחררPHP 5.x :2004 יולי ●

–Zend Engine 2.0- Object modelכתיבה מחדש של ה–

– PHP 5.1 2005משוחרר בנובמברשיפורי ביצועים ותיקוני באגים רבים מאוד ●

● PDOכברירת מחדל

– PHP 5.2 2006משוחרר בנובמברשיפורים בניהול הזיכרון ושיפורי ביצועים נוספים●

●Filter, JSON, Upload hooks

Page 11: PHP - עבר הווה ועתיד

אז מה עוד אפשרPHP 5.x?לעשות עם 

- OOP?)חוץ מ(

Page 12: PHP - עבר הווה ועתיד

12 קבוצת משתמשי PHP בישראל 11/9/07

PDO

try { $db = new PDO('mysql:hostname=losthost;dbname=mydb', 'user', 'xxxxx'); } catch (PDOException $e) { echo "Error connecting to DB: {$e->getMessage()}"; exit; }

$stmt = $db->prepare('INSERT INTO employees (name, salary) VALUES(?, ?)'); foreach ($employeeList as $emp) { $stmt->execute(array($emp['name'], $emp['salary'])); }

Page 13: PHP - עבר הווה ועתיד

13 קבוצת משתמשי 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 "{$bmark->name}: {$bmark->url}\n"; }

Page 14: PHP - עבר הווה ועתיד

14 קבוצת משתמשי 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();

Page 15: PHP - עבר הווה ועתיד

15 קבוצת משתמשי 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();

Page 16: PHP - עבר הווה ועתיד

16 קבוצת משתמשי 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 "Error getting data from remote server: " . $fault->getMessage();

exit; }

Page 17: PHP - עבר הווה ועתיד

17 קבוצת משתמשי 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 "$song - Last played: " . date("Y-m-d h:i:s", $song->getATime()) . "\n"; }

Page 18: PHP - עבר הווה ועתיד

18 קבוצת משתמשי 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 "The {$album->getTitle()} contains " . count($album) . " photos.<br />";

// Iterate using 'foreach()' foreach ($album as $photo) { echo htmlspecialchars($photo->getTitle()) . '<img src="' . $photo->getUrl() . '" />'; }

Page 19: PHP - עבר הווה ועתיד

19 קבוצת משתמשי PHP בישראל 11/9/07

PHP Frameworks

http://ez.no/ezcomponents

http://framework.zend.com

http://pear.php.nethttp://symfony-project.com

http://cakephp.org

Page 20: PHP - עבר הווה ועתיד

20 קבוצת משתמשי PHP בישראל 11/9/07

אפליקציות פופולריות

Page 21: PHP - עבר הווה ועתיד

21 קבוצת משתמשי PHP בישראל 11/9/07

PHP 4.xמת!

- PHP4ל" סוף חיים"הכרזה על 13/7/2007 – ●

שוחרר- PHP5 שנים אחרי ש3 בדיוק –

רק עידכוני אבטחה-31/12/2007 החל מה●קריטיים

- 8/8/2008הפיתוח יפסק לחלוטין ב●

Page 22: PHP - עבר הווה ועתיד

22 קבוצת משתמשי PHP בישראל 11/9/07

- 6.0ו: PHP 5.3 העתיד

● PHP 5.3 כנראה2008 (מתוכנן לתחילת(–Namespaces–Partial Unicode Support–Late Static Binding–Class::__callStatic()

●? PHP 6.0–”“It's ready when it's ready–Full Unicode Support

Page 23: PHP - עבר הווה ועתיד

23 קבוצת משתמשי 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();

Page 24: PHP - עבר הווה ועתיד

24 קבוצת משתמשי PHP בישראל 11/9/07

- 6.0ו: PHP 5.3 העתיד

● :Namespacesאחרי...namespace Zend::Http; // <-- class Client { 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();

Page 25: PHP - עבר הווה ועתיד

?שאלות

Page 26: PHP - עבר הווה ועתיד

תודה רבה

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.