是否可以将 ZF2 Controller 中的某些变量登录到 Zend 开发人员工具工具栏?
最佳答案
好吧,我已经创建了一个收集器来在 ZendDevelopersTool 上添加个人信息。
您需要来自 Controller 的信息,这是我从未尝试过的。 :)
我将向您展示我如何创建收集器,也许您可以找到某种方法从 Controller 获取信息。
在您的 MyModule\module.config.php
中
/* ZendDeveloperTools Configuration */
'invokables' => array(
'MyModule\ConfigCollector' => 'MyModule\Collector\ConfigCollector',
),
'view_manager' => array(
'template_map' => array(
'zend-developer-tools/toolbar/mymodule-configs' => __DIR__ . '/../view/zend-developer-tools/toolbar/mymodule-configs.phtml',
),
),
'zenddevelopertools' => array(
'profiler' => array(
'collectors' => array(
'mymodule_configs' => 'MyModule\ConfigCollector',
),
),
'toolbar' => array(
'entries' => array(
'mymodule_configs' => 'zend-developer-tools/toolbar/mymodule-configs',
),
),
),
在
MyModule\Module.php
上,你需要加载你的可调用对象,我通过添加以下方法来做到这一点:public function getServiceConfig()
{
return include __DIR__ . '/config/module.config.php';
}
在您的 View 上添加
.phtml
文件:MyModule/view/zend-developer-tools/toolbar/mymodule-configs.phtml
并添加,例如:
<?php /* @var $collector \DoctrineORMModule\Collector\MappingCollector */ ?>
<div class="zdt-toolbar-entry">
<div class="zdt-toolbar-preview">
<img src="data:image/png;base64,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" alt="VnsDesenvolvimento">
<span class="zdt-toolbar-info">
Configurações Gerais
</span>
</div>
<div class="zdt-toolbar-detail">
<span class="zdt-toolbar-info">
<span class="zdt-detail-label">Environment</span>
<span class="zdt-detail-value">
<?php echo $this->collector->getEnvironment(); ?>
</span>
</span>
<span class="zdt-toolbar-info">
<span class="zdt-detail-label">Default Locale</span>
<span class="zdt-detail-value">
<?php echo $this->collector->getDefaultLocale(); ?>
</span>
</span>
<span class="zdt-toolbar-info">
<span class="zdt-detail-label">Time Zone</span>
<span class="zdt-detail-value">
<?php echo $this->collector->getTimeZone(); ?>
</span>
</span>
</div>
</div>
现在,最后一部分!
我们需要创建一个收集器,它会抓取我们想要显示的所有信息:
<?php
namespace MyModule\Collector;
use ZendDeveloperTools\Collector;
use Zend\Mvc\MvcEvent;
/**
* Collector to be used in ZendDeveloperTools to record and display personal information
*
* @license MIT
* @author Vinicius Garcia <vinigar[...].com>
*/
class ConfigCollector extends \ZendDeveloperTools\Collector\AbstractCollector
{
/**
* {@inheritDoc}
*/
public function getName()
{
return 'mymodule_configs';
}
/**
* {@inheritDoc}
*/
public function getPriority()
{
return 10;
}
/**
* {@inheritDoc}
*/
public function collect(MvcEvent $mvcEvent)
{
$date = new \DateTime();
$this->data = array(
'environment' => ucfirst(getenv('APPLICATION_ENV') ?: 'production'),
'timezone' => $date->getTimezone()->getName(),
'defaultlocale' => \Locale::getDefault(),
);
}
/**
* Returns the environment
*
* @return string
*/
public function getEnvironment()
{
return $this->data['environment'];
}
/**
* Returns the timezone
*
* @return string
*/
public function getTimeZone()
{
return $this->data['timezone'];
}
/**
* Returns the default locale
*
* @return string
*/
public function getDefaultLocale()
{
return $this->data['defaultlocale'];
}
}
这个类有方法,比如
getDefaultLocale()
,我们在 zend-developer-tools/toolbar/mymodule-configs.phtml
上使用它们。它应该是这样的:
您可以尝试调整这段代码,以满足您的需求。
如果您知道如何从 Controller 获取信息,请与我们分享!
编辑
在
ConfigCollector
类中,注意方法 collect(MvcEvent $mvcEvent)
。如您所见,那里有一个 MvcEvent 对象。也许您可以使用它传递您的个人信息。
关于zend-framework2 - 如何将某些内容记录到 Zend Developer Tools 工具栏?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20325842/