سؤال

أبدأ بـ ZF (1.9.7) ، وأريد استخدام مساعدي عرض من مكتبة مشتركة بين جميع مشاريعي. لكن لا يمكنني العثور على كيفية إضافته إلى مسار المساعدين. يعمل Herpers على غرامات عندما أضعها في مسار مساعدي التطبيق.

فيما يلي الخطأ ، حيث أجد المسار إلى مساعدي ZF ، والمسار إلى التطبيقات.

object(ArrayObject)#71 (3) {
  ["exception"]=>
  object(Zend_Loader_PluginLoader_Exception)#70 (6) {
    ["message:protected"]=>
    string(151) "Plugin by name 'Voo' was not found in the registry; used paths:
Zend_View_Helper_: Zend/View/Helper/;C:/ZendStd/www/applis/VOO4_PROJECTX/views\helpers/"
    ["string:private"]=>
    string(0) ""
    ["code:protected"]=>
    int(0)
    ["file:protected"]=>
    string(89) "C:\Program Files\Zend\ZendServer\share\ZendFramework\library\Zend\Loader\PluginLoader.php"
    ["line:protected"]=>
    int(401)

مع أطيب التحيات
سيدريك

هل كانت مفيدة؟

المحلول

يمكن القيام به بسهولة شديدة مع مورد Zend_Application المدمج للعرض. إذا كنت تستخدم تكوينات INI ، أضف سطرًا كهذا:

resources.view.helperPath.My_View_Helper = "My/View/Helper"

نهاية المفتاح هي بادئة اسم الفئة ، والقيمة المسار الذي يقيمون فيه.

نصائح أخرى

تتم إضافة مسارات المساعدة من خلال zend_view_abstract :: addhelperpath (). يمكنك استدعاء هذه الطريقة مباشرة على مثيل عرض موجود.

يمكن أيضًا تكوين مسارات المساعدة بطرق مختلفة أثناء bootstrap. تحقق من الفصل اليدوي ZF في Zend_Application لمعرفة كيفية استخدام فصول وموارد bootstrap:

هناك مشكلة عند استخدام

resources.view.helperPath.App_View_Helper = APPLICATION_PATH "/../library/App/views/helpers"

لا يمكنني الوصول إلى أي مساعد عرض في التخطيط حتى المساعدين المحليين في الوحدة النمطية. (لم يتم العثور على البرنامج المساعد بالاسم "loggedinas" في السجل) لكنه لا يزال يعمل في ملفات قالب طرق العرض.

لقد وضعت هذا الرمز "echo zend_debug :: dump ($ this)" في نهاية ملف التخطيط وهناك جزء من الإخراج.

        ["_prefixToPaths:protected"] => array(3) {
          ["Zend_View_Helper_"] => array(2) {
            [0] => string(17) "Zend/View/Helper/"
            [1] => string(16) "./views\helpers/"
          }
          ["ZendX_JQuery_View_Helper_"] => array(1) {
            [0] => string(25) "ZendX/JQuery/View/Helper/"
          }
          ["Zend_View_Helper_Navigation_"] => array(1) {
            [0] => string(28) "Zend/View/Helper/Navigation/"
          }
        }

ولكن عند استخدام هذه الكود في ملف bootstrap ، لا توجد مشكلة.

    //Initialize and/or retrieve a ViewRenderer object on demand via the helper broker
    $viewRenderer = Zend_Controller_Action_HelperBroker::getStaticHelper('viewRenderer');
    $viewRenderer->initView();
    //add the global helper directory path
    $viewRenderer->view->addHelperPath(APPLICATION_PATH.'/../library/App/views/helpers', 'App_View_Helper');

كان الإخراج كما يلي:

            ["_prefixToPaths:protected"] => array(4) {
              ["Zend_View_Helper_"] => array(3) {
                [0] => string(17) "Zend/View/Helper/"
                [1] => string(16) "./views\helpers/"
                [2] => string(86) "D:/zf/application/modules/default/views\helpers/"
              }
              ["App_View_Helper_"] => array(1) {
                [0] => string(85) "D:\zf\application/../library/App/views/helpers/"
              }
              ["ZendX_JQuery_View_Helper_"] => array(1) {
                [0] => string(25) "ZendX/JQuery/View/Helper/"
              }
              ["Zend_View_Helper_Navigation_"] => array(1) {
                [0] => string(28) "Zend/View/Helper/Navigation/"
              }
            }

تحرير: تحقق من عرض المساعد في إطار Zend للحصول على أكثر تفصيلاً حول هذه المشكلة باستخدام HORDINAS VIEW'S ROB Allen's LoggedInas.

لا يمكنك فقط القيام بذلك كما هو محدد من قبل David Caunt ، ولكن يمكنك أيضًا القيام بذلك مثل هذا في bootstrap الخاص بك. لاحظ أن هناك دائمًا أكثر من طريقة لفعل أي شيء في إطار Zend

الدفع http://devzone.zend.com/article/3412

إذا كان لديك إمكانية الوصول إلى كائن العرض ، فقم بما يلي.

<?php    
$view->addHelperPath('My/View/Helper/', 'My_View_Helper'); 
?>

قد تحتاج إلى الحصول على كائن View إذا كنت في مكونات التحكم الأمامية

تحقق أيضًا من هذه المجموعة الرائعة من المنشورات التي تبدأ هنا:

http://zend-framework-community.634137.n4.nabble.com/getting-view-from-bootstrap-zf1-8-tp659447p659460.html

لقد كتبت برنامجًا تعليميًا قصيرًا قصيرًا لتسجيل مساعدي عرض Zend من دليل مشترك ، والذي يمكن الوصول إليه خلال التطبيق. ألق نظرة من فضلك.

http://www.mixedwaves.com/2010/03/accessing-and-using-zend-view-helpers-from-a-common-directory/

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top