[GENERIC] Zend_Translate:
[zend.git] / documentation / manual / he / module_specs / Zend_View-Abstract.xml
blobb6f7bb68b34389150197df16baf188f691802100
1 <sect1 id="zend.view.abstract">
2     <title>Zend_View_Abstract</title>
4     <para>
5         <code>Zend_View_Abstract</code> הינו מחלקת הבסיס עליה <code>Zend_View</code> מבוססת; <code>Zend_View</code> בעצמה בסך הכל מרחיבה אותה ומגדירה את המתודה
6         <code>_run()</code> (אשר מיוחסת לאחר מכן אל <code>render()</code>).
7     </para>
9     <para>
10         מתכנתים רבים רוצים להרחיב את <code>Zend_View_Abstract</code> ולהוסיף פונקציונליות מותאמת אישית,
11         ובאופן בלתי נמנע נתקלים בבעיות עם העיצוב שלה, המסמך הזה נועד להצגת ההחלטות מאחורי עיצוב הרכיב הזה.
12     </para>
14     <para>
15         <code>Zend_View</code> היא סוג של אנטי-מנוע-טמפלייטס בכך שהיא משתמשת ב PHP בתור מנוע טמפלייט.
16         כתוצאה מכך כל הפונקציות של PHP קיימות, וסקריפטים של תצוגה מקבלים את כל האובייקטים הקיימים.
17     </para>
19     <para>
20         <code>Zend_View::_run()</code> מבצע את הדבר הבא:
21     </para>
23     <programlisting role="php"><![CDATA[
24 protected function _run()
26     include func_get_arg(0);
28 ]]>
29     </programlisting>
31     <para>
32         לכן, סקריפטים של התצוגה יכולים לגשת לאובייקט הנוכחי (<code>$this</code>), וכל המתודות או המשתמשים של אותו אובייקט.
33         מאחר וכמה פעולות מבוססת על משתמשים עם גישה וראות מסויימת, זה גורם לבעיה: סקריפט התצוגה יכול לקרוא למתודות מסויימות שהוא לא אמור או לדרוס הגדרות ישירות.
34         לדוגמא תארו לעצמכם שסקריפט התצוגה ידרוס את <code>$_path</code> או <code>$_file</code> -- כל קריאות נוספות ל <code>render()</code> לא יפעלו.
35     </para>
37     <para>
38         למרבה המזל, PHP 5 מכילה פתרון לבעיה זו עם הגדרות הראות שלה: משתמשים פרטיים לא ניתנים לגישה או דריסה על ידי אובייקט אשר מרחיב מחלקה מסויימת. זה הוביל לעיצוב המחלקה הנוכחית:
39         מאחר ו <code>Zend_View</code> מרחיב את <code>Zend_View_Abstract</code>, סקריפטי תצוגה מוגבלים רק למתודות וערכים ציבוריים ומוגנים של <code>Zend_View_Abstract</code> --
40         ולמעשה מגבילים את האפשרויות והפעולות שניתן לבצע, ומאפשר לנו לאבטח איזורים קריטיים במערכת מפני שימוש לא נכון או לא תקני שלהם בסקריפטי תצוגה.
41     </para>
42 </sect1>
43 <!--
44 vim:se ts=4 sw=4 et:
45 -->