كيفية إنشاء تطبيق وحدة التحكم في Zend Framework 3
في Zend Framework 2، من السهل جدًا إضافة شعار الوحدة الأولية إلى تطبيقات وحدة التحكم. كل ما علينا فعله هو تنفيذ الأساليب getConsoleBanner
و getConsoleUsage
وتنفيذ واجهات Zend\ModuleManager\Feature\ConsoleUsageProviderInterface
أو ConsoleBannerProviderInterface
.
هذا يكفي لعرض هذه الرسائل في وحدة التحكم عند بدء تشغيل public/index.php
عبر CLI.
في Zend Framework 3، الأمر ليس كذلك.
فعل نفس الإعداد لا يوفر نفس النتيجة. في الواقع، في وحدة التحكم نرى الصفحة HTML الافتراضية لتطبيق الهيكل العظمي بنفس الطريقة التي نزور بها عبر المتصفح.
تُعرض تلك الصفحة قبل تثبيت الوحدة المخصصة:
هنا توجد وثائق وحدة zend-mvc-console
https://zendframework.github.io/zend-mvc-console/intro/
حتى بعد تثبيت الوحدة كما هو مقترح ('Zend\Mvc\Console'
مُضافة في تعريفات الوحدة) لا تظهر الشعارات في وحدة التحكم. لقد قمت بالاختبار مع تفريغ متغير داخل الأساليب وأنا قادر على عرض البيانات، لذا الإطار ينفذ تلك الأساليب ولكن لا يُظهر أي نتيجة في وحدة التحكم.
لقد قمت بالاختبار مع مسارات وحدة التحكم والمراقبين. تم العثور على المسار، وتم تنفيذ إجراء المراقب ولكن لا يتم عرض شيء في وحدة التحكم مرة أخرى.
لقد قمت بالتفتيش في كود الإطار ويبدو أن فئة Zend\Mvc\Console\ResponseSender\ConsoleResponseSender
لم يتم تنفيذها أبدًا.
هل يجب علي تسجيل بعض استراتيجيات view_manager
للحصول على شيء معروض في CLI؟
هنا المصادر فوق تطبيق هيكل العظمي zf3:
https://gist.github.com/kachar/06f0c9096bcc1cc0b00f4612aed1b68b
تشغيل التطبيق:
$ php -v
PHP 7.0.6 (cli) (built: Apr 27 2016 14:00:40) ( ZTS )
Copyright (c) 1997-2016 The PHP Group
Zend Engine v3.0.0, Copyright (c) 1998-2016 Zend Technologies
$ php public/index.php
Application\Module::getConsoleBanner
Application\Module::getConsoleUsage
$ php public/index.php user
Application\Controller\IndexController::indexAction
المزيد من المعلومات
بالتأكيد، في Zend Framework 3، يتم تشغيل وحدة التحكم في وضع CLI بواسطة الأمر php public/index.php
. لكن، لعرض شعار الموديول واستخدام الوحدة في وضع CLI بشكل صحيح، يجب أن تقوم بتحديد بعض الإعدادات بشكل صحيح في تطبيقك.
أولاً، تأكد من أنك قمت بتحديد وحدة التحكم بشكل صحيح في ملف التكوين module.config.php
، على سبيل المثال:
phpreturn [
'modules' => [
// ...
'Application',
'Zend\Mvc\Console',
],
// ...
];
بعد ذلك، يمكنك تنفيذ الأوامر التالية لعرض شعار الموديول واستخدام الوحدة في وضع CLI:
bash$ php public/index.php $ php public/index.php user
إذا كانت هناك مشكلة في عرض شعار الموديول أو استخدام الوحدة في وضع CLI، يُفضل التحقق من الإعدادات الخاصة بك والتأكد من أن كل شيء مُعدّ بشكل صحيح.