小编Mad*_*ort的帖子

在 Zend Framework 2 中注册自定义翻译器加载器

我正在尝试注册一个自定义数据库翻译器加载器。

为此,我的灵感来自: Feeding Zend Translator

我在(module.config.php)中有以下工厂代码:

'service_manager' => array(
    'factories' => array(
        'translator' => function($sm){
            $translator = new \V1\Service\DatabaseTranslationService();
            return $translator->createService($sm);
        },
    ),
),
Run Code Online (Sandbox Code Playgroud)

DatabaseTranslationService 看起来像这样:

$config = $serviceLocator->get('Config');
    $trConfig = isset($config['translator']) ? $config['translator'] : array();
    $translator = new \Zend\I18n\Translator\Translator();
    $translator->getPluginManager()->setInvokableClass('database', '\Foo\I18n\Translator\Loader\DatabaseTranslator', true);
    $translator->addTranslationFile('database', 'en_EN');

    return $translator;
Run Code Online (Sandbox Code Playgroud)

但似乎没有使用“setInvokableClass”:我收到了这个错误:

Zend\ServiceManager\ServiceManager::get was unable to fetch or create an instance for database
Run Code Online (Sandbox Code Playgroud)

有谁知道如何正确注册翻译器

zend-translate zend-framework2

5
推荐指数
1
解决办法
2285
查看次数

从子视图将Javascript文件附加到InlineScript集合的末尾

我正在使用Zend Framework 2.

在我的布局文件中,我注入了一些像这样的javascript文件:

$this->InlineScript()
            ->appendFile($this->basePath() . '/js/myfile.js');


echo $this->InlineScript();
Run Code Online (Sandbox Code Playgroud)

现在我想从视图中注入一些javascript,以便它附加到InlineScript集合的末尾.

所以我在动作视图中写了这个:

<?php $this->InlineScript()->offsetSetFile(100,$this->basePath() . '/js/xyz.js'); ?>
Run Code Online (Sandbox Code Playgroud)

但结果是文件xyz首先在渲染视图中加载.

我正在使用Zend Framework 2.0.5

有人可以给我一个建议如何管理吗?

zend-framework2

5
推荐指数
1
解决办法
7407
查看次数

使用内联结果在Map/Reduce之后排序

在尝试了这个解决方案后又向前迈了一步,我有另外一个关于mongodb的问题.

我的问题是:

我怎样才能对输出进行排序:

doc = {_id : 16, days : { 1 : 123, 2 : 129, 3 : 140, 4 : 56, 5 : 57, 6 : 69, 7 : 80 }};
db.so.insert(doc);

map = function() {
  emit(this._id, this.days["1"]);
  emit(this._id, this.days["3"]); 
  emit(this._id, this.days["7"]); 
}

reduce = function (k, vals) {
  var sum = 0;
  vals.forEach(function (v) {sum += v;});
  return sum;
}

res = db.so.mapReduce(map, reduce, {out : {inline : 1}});
res.find();
Run Code Online (Sandbox Code Playgroud)

输出是这样的:

"results" : [
    { …
Run Code Online (Sandbox Code Playgroud)

mapreduce mongodb

4
推荐指数
3
解决办法
1万
查看次数

Zend Framework 2主题管理器

有关Zend框架2的问题.在我的应用程序中,我有一个模块可以处理我的整个应用程序.

为了进一步改进,我想开发一个主题管理器.

主题管理器应该使用url params,例如?theme = lightTheme.主题在模块之外的文件夹"模板"中组织.主题还应包括视图脚本.

据我所知,通过阅读一些ZF2文档,可以通过一些监听器事件来实现.

有没有人做得那么好或者能给我一些例子如何解决这个要求?

zend-framework-mvc zend-framework2

1
推荐指数
1
解决办法
3373
查看次数

在 Jenkins 中构建和部署 Zend Framework PHP 应用程序

我正在设置 jenkins 作业来构建和部署 Zend Framework 2 php 应用程序。在我的 ant 构建脚本中,我定义了一个用于验证 php 文件的 lint 作业。

构建作业失败,因为 lint 在 ZF2 库文件中检测到错误。

这是 lint 生成的输出:

[apply] PHP Fatal error:  Constructor Zend\Captcha\Factory::factory() cannot be static in /var/lib/jenkins/workspace/XXX/vendor/zendframework/zendframework/library/Zend/Captcha/Factory.php on line 90
[apply] Errors parsing /var/lib/jenkins/workspace/XXX/vendor/zendframework/zendframework/library/Zend/Captcha/Factory.php
Run Code Online (Sandbox Code Playgroud)

有谁知道为什么验证Zend/Captcha/Factory.php fails

ANT 任务如下所示:

    <target name="lint" description="Perform syntax check of sourcecode files">
  <apply executable="php" failonerror="true">
   <arg value="-l" />

   <fileset dir="${basedir}/">
    <include name="**/*.php" />
    <modified />
   </fileset>

   <fileset dir="${basedir}/tests">
    <include name="**/*.php" />
    <modified />
   </fileset>
  </apply>
 </target>
Run Code Online (Sandbox Code Playgroud)

jenkins zend-framework2 phplint

1
推荐指数
1
解决办法
978
查看次数