Zend_View-Controllers.xml 6.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171
  1. <sect1 id="zend.view.controllers">
  2. <title>جزء الـ Controller</title>
  3. <para>
  4. الـ controller هو حيث يتم إنشاء نسخة من Zend_View و إعدادها , أنت بعد ذلك
  5. تقم
  6. بإنشاء متغيرات جديدة فيها و إعطائها قيم ليتم إستخدامها فى الـ view ,
  7. ثم تقوم بالأمر بأن يتم معاجلة الـ view و إنتاج الخرج الذى سيتم عرضه.
  8. </para>
  9. <sect2 id="zend.view.controllers.assign">
  10. <title>إنشاء متغيرات و إعطائها قيم</title>
  11. <para>
  12. يجب أن يقوم الـ controller خاصتك بإنشاء المتغيرات التى يحتاج إليها فى
  13. الـ view و تمريرها له
  14. قبل أن يقوم بنقل التحكم إلى الكود الخاص بالـ view , بشكل طبيعى يمكنك
  15. إضافة متغيرات إلى
  16. الـ view عن طريق الـ properties الخاصة بالنسخة التى أنشئتها من Zend_View
  17. :
  18. </para>
  19. <programlisting role="php"><![CDATA[<?php
  20. $view = new Zend_View();
  21. $view->a = "Hay";
  22. $view->b = "Bee";
  23. $view->c = "Sea";
  24. ?>]]>
  25. </programlisting>
  26. <para>
  27. لكن ربما هذا سيكون مزعج فى حالة أنك قد قمت مسبقاً بجمع كل القيم التى
  28. تريد تمريرها فى مصفوفة
  29. أو فى كائن.
  30. </para>
  31. <para>
  32. الـ method المسمى ()assign يسمح لك بإنشاء متغيرات من مصفوفة أو كائن
  33. (بشكل مفكك) ,
  34. المثال التالى لديه نفس التأثير الذى تقوم به عملية إنشاء المتغيرات واحد-واحد
  35. .
  36. </para>
  37. <programlisting role="php"><![CDATA[<?php
  38. $view = new Zend_View();
  39. // assign an array of key-value pairs, where the
  40. // key is the variable name, and the value is
  41. // the assigned value.
  42. $array = array(
  43. 'a' => "Hay",
  44. 'b' => "Bee",
  45. 'c' => "Sea",
  46. );
  47. $view->assign($array);
  48. // do the same with an object's public properties;
  49. // note how we cast it to an array when assigning.
  50. $obj = new StdClass;
  51. $obj->a = "Hay";
  52. $obj->b = "Bee";
  53. $obj->c = "Sea";
  54. $view->assign((array) $obj);
  55. ?>]]>
  56. </programlisting>
  57. <para>
  58. أيضاً, يمكنك ان تستخدم الـ method المسمى assign لإنشاء متغيرت بطريقة
  59. واحد-واحد ,
  60. و ذلك عن طريق تمرير اسم المتغير الذى تريد إنشائه كـ string , ثم فى
  61. البراميتر الثانى
  62. مرر قيمة المتغير .
  63. </para>
  64. <programlisting role="php"><![CDATA[<?php
  65. $view = new Zend_View();
  66. $view->assign('a', "Hay");
  67. $view->assign('b', "Bee");
  68. $view->assign('c', "Sea");
  69. ?>]]>
  70. </programlisting>
  71. </sect2>
  72. <sect2 id="zend.view.controllers.render">
  73. <title>معالجة(تصيير) جزء الـ View</title>
  74. <para>
  75. بمجرد إنتهائك من عملية إنساب المتغيرات التى تحتاجها فى الـ view , يجب أن
  76. يقوم الـ controller
  77. بأمر Zend_View أن يقوم بمعالجة view محدد , يمكن القيام بهذا عن طريق
  78. إستدعاء الـ method
  79. المسمى ()render , لاحظ أن هذا الـ method سيقوم بإرجاع الـ view بعد معالجته
  80. و لن يقوم بطباعته,
  81. لذلك أنت تحتاج لطباعته بنفسك فى الوقت الذى يناسبك.
  82. </para>
  83. <programlisting role="php"><![CDATA[<?php
  84. $view = new Zend_View();
  85. $view->a = "Hay";
  86. $view->b = "Bee";
  87. $view->c = "Sea";
  88. echo $view->render('someView.php');
  89. ?>]]>
  90. </programlisting>
  91. </sect2>
  92. <sect2 id="zend.view.controllers.script-paths">
  93. <title>مسارات أجزاء الـ View</title>
  94. <para>
  95. الأعدادات الأساسية لـ Zend_View تعتبر أن الملفات التى تحتوى أجزاء الـ view
  96. خاصتك
  97. تتواجد فى مسارات لها علاقة "relative" مع مكان تواجد الكود الذى يستدعيها,
  98. على سبيل المثال : إن كان الـ controller خاصتك موجود فى
  99. "path/to/app/controllers/"
  100. و هو يقوم بإستدعاء ('view->render('someView.php$ , سيقوم Zend_View
  101. بالبحث فى المسار "path/to/app/controllers/someView.php/".
  102. </para>
  103. <para>
  104. من الطبيعى أن تكون ملفات الـ view خاصتك محفوظة فى مسار أخر ,
  105. لكى تخبر Zend_View أين يجب عليه أن يبحث عن ملفات الـ view ,
  106. يمكنك إستخدام الـ method المسمى ()setScriptPath .
  107. </para>
  108. <programlisting role="php"><![CDATA[<?php
  109. $view = new Zend_View();
  110. $view->setScriptPath('/path/to/app/views');
  111. ?>]]>
  112. </programlisting>
  113. <para>
  114. الأن عندما ستقوم بإستدعاء ('view->render('someView.php$ ,
  115. سيتم البحث فى المسار "path/to/app/views/someView.php/".
  116. </para>
  117. <para>
  118. فى الحقيقة, يمكنك عمل مرصوصة من المسارات بإستخدام الـ method المسمى
  119. ()addScriptPath ,
  120. كلما قمت بإضافة مسار جديد إلى المرصوصة , سيقوم Zend_View بالبحث فى
  121. المسارات التى تم إضافتها
  122. إلى المرصوصة من أخر واحد تم إضافته إلى المرصوصة صعوداً إلى أول من تم
  123. إضافته
  124. لجلب جزء الـ view المراد معالجته, هذا يسمح لك بأن تقوم بالتغطية على الـ
  125. views
  126. الأساسية و إستخدام views أخرى , و هذا سيسمح لك بأن تقوم بإنشاء themes أو
  127. skins خاصة لبعض
  128. الـ views , مع أمكانية ترك views أخرى بدون.
  129. </para>
  130. <programlisting role="php"><![CDATA[<?php
  131. $view = new Zend_View();
  132. $view->addScriptPath('/path/to/app/views');
  133. $view->addScriptPath('/path/to/custom/');
  134. // now when you call $view->render('booklist.php'), Zend_View will
  135. // look first for "/path/to/custom/booklist.php", then for
  136. // "/path/to/app/views/booklist.php", and finally in the current
  137. // directory for "booklist.php".
  138. ?>]]>
  139. </programlisting>
  140. </sect2>
  141. </sect1>
  142. <!-- vim:se ts=4 sw=4 et: -->