אינטרנט ישראל
  • ראשי
  • אודות רן בר-זיק ואינטרנט ישראל
  • ערוץ טלגרם
  • מסטודון
  • התחברו אלי בטוויטר
  • התחברו אלי בלינקדאין
  • ספר ג'אווהסקריפט
  • ראשי
  • אודות רן בר-זיק ואינטרנט ישראל
  • ערוץ טלגרם
  • מסטודון
  • התחברו אלי בטוויטר
  • התחברו אלי בלינקדאין
  • ספר ג'אווהסקריפט
ראשי » מדריכים » Zend Framework » יצירת אפליקציה לדוגמא ב-Zend Framework

יצירת אפליקציה לדוגמא ב-Zend Framework

רן בר-זיק נובמבר 14, 2010 8:00 am אין תגובות

במאמר זה אנו יוצרים אפליקציה שמשתמשת ב-Twitter API לחיפוש בפיד של טוויטר באמצעות זנד פריימוורק.

כדאי תמיד להשאר מעודכנים! אם יש לכם טלגרם, בדקו את ערוץ הטלגרם של האתר שבו אני מעדכן על פוסטים חדשים 🙂 אם אתם רוצים ללמוד תכנות באופן מקיף ומסודר, הצטרפו לאלפי הלומדים בפרויקט "ללמוד ג'אווהסקריפט בעברית" שמלמד לתכנת בג'אווהסקריפט, ב-Node.js ובריאקט וגם מלמד על תרומה לקוד פתוח. גם ספרים דיגיטליים וגם ספרים מודפסים. בשיתוף הקריה האקדמית אונו ובתמיכת חברות מובילות כגון Wix, Outbrain, Elementor, Iron Source, Chegg, Really Good ועוד.

במאמר הקודם למדנו על קונטרולרים ו-Actions בזנד פריימוורק, במאמר הזה אנו נלמד ונתרגל יצירת אפליקציה שלמה לדוגמא.

מטרת האפליקציה – להכניס טקסט כלשהו ולקבל בחזרה את התוצאות מחיפוש בטוויטים האחרונים של טוויטר!

בואו ונתחיל! ראשית, ניצור פרויקט בשם mytwit. בפרויקט אנו נשתמש בקונטרולר הדפולטיבי index. לא יודעים איך ליצור פרויקט? הגיע הזמן לעבור על המאמרים הקודמים במדריך!

הכנת ה-view שלנו

ראשית אנחנו צריכים להכין את הטופס, ניגש ל: mytwit/application/views/scripts/index ושם נפתח את קובץ index.phtml, מכאן זה פשט רק להדביק HTML פשוט של טופס עם כותרת:


<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/
xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<title>Search Tweets!</title>
</head>
<body>
<form method="POST" action="http://192.168.123.100/mytwit/public/index/extract" name="mainform">
<label for="tsearch">Twitter search phrase:</label>
<input name="tsearch" id="tsearch" value="Israel" />

<input type="Submit" name="submit" id="submit" value="Get My Tweets!" />
</form>
</body>
</html>

הכנת Action ב-Index Controller

נשים לב שהטופס שלנו מכיל הפניה ל:/index/extract (במקרה של הדוגמא מדובר במלוא הנתיב לתיקיה שלי כי היא נמצאת בשרת הפיתוח והתעצלתי עד מאד להגדיר לאפליקציה Virtual Domain), אם נזכר במאמר הקודם אנו מבינים ש-extract הוא בעצם action. ניצור עם הכלי שלנו action חדש ששמו בישראל הוא extract. (שוב, למי שלא מבין לכל הרוחות על מה אני מדבר – קרא שוב את המאמר הקודם במדריך). נוצרה לנו פונקציה חדשה וחביבה בקונטרולר index הדיפולטיבי:


< ?php
class IndexController extends Zend_Controller_Action
{

    public function init()
    {
        /* Initialize action controller here */
    }

    public function indexAction()
    {
        // action body
    }

    public function extractAction()
    {
        // action body
    }
}

ה-Action הזה מופעל כאשר הטופס נשלח, מה שהוא צריך זה לקבל את השדה 'tsearch', לפנות אל ה-API של טוויטר ואז לשלוח את מערך התוצאות ל-view שלנו.

ראשית, אנו נקבל את מחרוזת הטקסט שלנו מהטופס שטרחנו והכנו אותו מבעוד מועד באמצעות השורה הבאה שממוקמת בפונקצית ה-Action:


    $tsearch = Zend_Filter::get($this->getRequest()->getPost('tsearch'), 'StripTags');

ראשית, אנו משתמשים באמצעות $this->getRequest לקבל את אובייקט ה-Request ואז אנו משתמשים במתודת getPost.

אגב, אם מישהו לא מכיר את שיטת העבודה הזו: this-> method->method2->method3 – זה נקרא מחלקות משורשרות ומשתמשים בזה די הרבה ב-PHP OOP. הסבר מפורט על המחלקות המשורשרות אפשר למצוא בבלוג websupport.

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

עולה השאלה, מאיפה לי בדיוק ש-Zend_Filter קיים בכלל ויש לו את המתודה get שמקבלת שני פרמטרים? את זה אני יודע כמובן באמצעות Zend Framework Reference מדריך שבו יש את כל המתודות, המחלקות ומה שתרצו בכל מה שקשור לזנד פריימוורק. נסו לאתר שם את Zend_Filter ותראו שם את כל המתודות שלו ומה הוא בדיוק עושה.

Twitter API

אחרי שקיבלתי את הפרמטר, כל מה שעלי לעשות זה לבצע קריאה ל- API של טוויטר. בטח עכשיו מי שקורא את המאמר משנס את איזור חלציו כדי לראות איזה יישום מבריק אני הולך לכתוב על מנת שיתקשר עם ה-API הלז אל האפליקציה שלי. אך צר לי לאכזב את מי שחושב שאני הולך לכתוב כאן משהו מורכב. בזנד פריימוורק יש Services רבים כולל לטוויטר! כלומר, אם חשקה נפשי להתחבר לענן של אמאזון, לאזור של מיקרוסופט או אפילו סתם לטוויטר, פליקר או דלישס – ישנם שפע של שירותים שקיימים כבר בזנד! אם תכנסו ל-Zend Framework Reference ותחפשו 'Twitter', תגלו שיש ספריה שלמה שמטפלת בחיבור לטוויטר. כל מה שעלי לעשות זה לזמן אותה, להשתמש במתודה הנכונה עם טקסט החיפוש שלי ולקבל את המידע חזרה. הוריי!


	$twitterSearch  = new Zend_Service_Twitter_Search('json');
	$searchResults  = $twitterSearch->search("$tsearch", array('lang' => 'en'));
	$result = $searchResults['results'];

אין דבר שמתכנתים אוהבים לעשות מלא לעבוד קשה. באמצעות שלוש שורות בלבד יצרתי קשר עם טוויטר וקיבלתי את מה שרציתי. כל מה שעלי לעשות זה להעביר את התוצרת אל ה-view שלי, ואת זה אני עושה באמצעות:


	$this->view->tsearch = $tsearch;
	$this->view->result = $result;

כלומר, אני מוסיף את המשתנים result ו-tsearch לשימוש ה-view. ה-Action המלא יראה כך:


    public function extractAction()
    {
        $tsearch = Zend_Filter::get($this->getRequest()->getPost('tsearch'), 'StripTags');

	$twitterSearch  = new Zend_Service_Twitter_Search('json');
	$searchResults  = $twitterSearch->search("$tsearch", array('lang' => 'en'));
	$result = $searchResults['results'];

	$this->view->tsearch = $tsearch;
	$this->view->result = $result;
    }

יצירת ה-View להצגת המידע

עכשיו נשאר לכתוב את ה-View. ניגש אל mytwit/application/views/scripts/index
ונפתח את קובץ extract.phtml. נכניס את הקוד הבא שאמור להיות מובן לכל מתכנת PHP ולו ברמה הבסיסית ביותר:


<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<title>Results Page</title>
</head>
<body >
<h1>
<?php echo $this->escape($this->tsearch);?>
</h1>

<hr />
<ul>
<?php foreach ($this->result as $item) { 
	echo '<li>'.$item['text'].'</li>';
}
?>
</ul>
</body>
</html>


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

במאמר הבא אנו נלמד על base controllers בזנד פריימוורק.

כדאי תמיד להשאר מעודכנים! אם יש לכם טלגרם, בדקו את ערוץ הטלגרם של האתר שבו אני מעדכן על פוסטים חדשים 🙂 אם אתם רוצים ללמוד תכנות באופן מקיף ומסודר, הצטרפו לאלפי הלומדים בפרויקט "ללמוד ג'אווהסקריפט בעברית" שמלמד לתכנת בג'אווהסקריפט, ב-Node.js ובריאקט וגם מלמד על תרומה לקוד פתוח. גם ספרים דיגיטליים וגם ספרים מודפסים. בשיתוף הקריה האקדמית אונו ובתמיכת חברות מובילות כגון Wix, Outbrain, Elementor, Iron Source, Chegg, Really Good ועוד.
Zend Framework

השארת תגובה

ביטול

ללמוד ג'אווהסקריפט בעברית

ללמוד לתכנת ג'אווהסקריפט בעברית שגייס יותר משלוש מאות אלף שקל ולמעלה מ-2000 תומכים - בואו ללמוד עכשיו איך לתכנת.

רשימת הנושאים
  • מדריכים
    • ריאקט
    • טייפסקריפט
    • ECMAScript 6
    • ES20XX
    • Node.js
    • Express
    • רספברי פיי
    • Babel
    • docker
    • MongoDB
    • Git
    • לימוד MySQL
    • SASS
    • jQuery
    • CSS3
    • HTML 5
    • SVN
    • LESS
  • פיתוח אינטרנט
    • פתרונות ומאמרים על פיתוח אינטרנט
    • jQuery Scripts
    • jQuery למתקדמים
    • יסודות בתכנות
    • נגישות אינטרנט
  • חדשות אינטרנט
  • מידע כללי על אינטרנט
    • רשת האינטרנט
    • בניית אתרי אינטרנט
  • rss logo

    לכל המאמרים

    לכל המאמרים שפורסמו באינטרנט ישראל משנת 2008 ועד עכשיו.
  • rss logo

    RSS Feed

    משתמשים בקורא RSS? אם כן, עקבו אחרי אינטרנט ישראל באמצעות פיד ה-RSS!
    מה זה RSS?
  • Twitter logo

    עקבו אחרי בטוויטר

    בחשבון הטוויטר שלי אני מפרסם עדכונים מהירים על חדשות בתחום התכנות והיזמות, התרעות על מצבי חירום ורכילות בוערת על תחום הווב.
    מה זה טוויטר?
  • facebook like image

    ערוץ הטלגרם של אינטרנט ישראל

    בערוץ הטלגרם של אינטרנט ישראל אני מפרסם את הפוסטים של באתר וכן עדכונים טכנולוגיים נוספים.
    מה זה טלגרם?
  • github logo

    הפרויקטים שלי בגיטהאב

    הפרויקטים שאני כותב ושוחררו לציבור ברישיון קוד פתוח נמצאים ברובם בגיטהאב.
חיפוש

כל הזכויות שמורות לרן בר-זיק ולאינטרנט ישראל | מדיניות הפרטיות של אתר אינטרנט ישראל | אתר אינטרנט ישראל נגיש לפי תקן WCAG 2.0 AA | הצהרת הנגישות של האתר | אבטחת מידע ודיווח על בעיית אבטחת מידע

גלילה לראש העמוד