Upload
shahar-evron
View
1.706
Download
0
Embed Size (px)
Citation preview
PHPהווה ועתידעבר
2007נובמבר <[email protected]>שחר עברון http://php-israel.orgבישראל PHP קבוצת משתמשי
2 קבוצת משתמשי PHP בישראל 11/9/07
מבוא
!ברוכים הבאים●
?מי אני●
כחמש שנים- PHP משתמש ב–
עובד בזנד טכנולוגיות כשנתיים וחצי–
?מי אתם●
- PHP?ת מנוסה ב/משתמש–
- PHP 5.x?ת ב/מתכנת–
3 קבוצת משתמשי PHP בישראל 11/9/07
?PHP מה זה
PHPהיא שפת תכנותרבת משתמשים) סקריפטינג(
-המיועדת במיוחד לפיתוח ל ,Webאם כי אפשר להשתמש
בה גם לצרכים אחרים
4 קבוצת משתמשי PHP בישראל 11/9/07
PHP?מה זה
● PHP והרוב, קוד פתוח/ עצמה היא תוכנה חופשיתהיא חופשית- PHP הגדול של התוכנה הכתובה ב
● PHP פלטפורמות) מאד(רצה בהצלחה על הרבה
● PHPהיא שפה גמישה מאוד וקלה מאוד ללימוד
PHP:אפשר לעשות עוד דברים עם - Web, חוץ מ●–CLI–Desktop applications–Embedded
5 קבוצת משתמשי PHP בישראל 11/9/07
?PHP - מי משתמש ב
אנשיםמאודועוד הרבה , אנחנו ואתם●
● PHPהיא כנראה שפת ה Web -הפופולרית ביותר,- Web.והיא אחד הכוחות המניעים את השינויים ב
הפופולריים ביותר- Web חלק גדול מאתרי ה●י PHP:“מונעים ע
–... ,Yahoo!, Flickr, Facebook, Digg, Wikipedia
ל, אבל גם בנקים... ● “ממשלות וחברות ענק בינ
6 קבוצת משתמשי PHP בישראל 11/9/07
?PHP - מי משתמש ב
: Netcraftמקור
7 קבוצת משתמשי PHP בישראל 11/9/07
...ההיסטוריה בקצרה: עבר
PHP/FIרסמוס לרדורף משחרר את 1995: ●
- Perlאוסף של סקריפטים ב: תחילת הדרך–
ונוספו יכולות גישה- C, עם הזמן הפרוייקט הוסב ל–שאפשרו יצירת תוכן דינמי, לבסיסי נתונים
●PHP/FI 2.0 :1997כמה אלפי משתמשים ברחבי העולם–
משרתי האינטרנט- 50,000 (1%) כ–
8 קבוצת משתמשי PHP בישראל 11/9/07
...ההיסטוריה בקצרה: עבר
אנדי גוטמנס וזאב סורסקי כותבים מחדש 1997: ●כפרוייקט לימודי לטכניוןPHP 3.0 את
את – מזכירה “הגרסה הראשונה ש “ PHPשל היום
: PHP: Hypertext Preprocessorשם חדש–
מפתחים רבים נוספים לפרוייקט–
, OOשיפורי תחביר–
(10%)מאות אלפי אתרים –
1998יוני : שחרור סופי–
9 קבוצת משתמשי PHP בישראל 11/9/07
...ההיסטוריה בקצרה: עבר
אנדי וזאב מתחילים לכתוב מחדש את1998: ●- Zend Engineכך נוצר הPHP: הליבה של
שיפור ביצועים וארכיטקטורה –
שיפור מודולריות–
● PHP 4.0 2000משוחרר במאי–Sessions–Output BufferingApacheתמיכה בשרתים נוספים מלבד –
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
אז מה עוד אפשרPHP 5.x?לעשות עם
- OOP?)חוץ מ(
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'])); }
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"; }
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();
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();
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; }
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"; }
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() . '" />'; }
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
20 קבוצת משתמשי PHP בישראל 11/9/07
אפליקציות פופולריות
21 קבוצת משתמשי PHP בישראל 11/9/07
PHP 4.xמת!
- PHP4ל" סוף חיים"הכרזה על 13/7/2007 – ●
שוחרר- PHP5 שנים אחרי ש3 בדיוק –
רק עידכוני אבטחה-31/12/2007 החל מה●קריטיים
- 8/8/2008הפיתוח יפסק לחלוטין ב●
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
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();
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();
?שאלות
תודה רבה
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.