标签: zend-framework2

ZF2 - Module.php中请求的模拟服务

我正在尝试测试我的ZF2应用程序的控制器.假设这个控制器在我的A模块中.

在模块的onBootstrap方法中,我使用服务管理器来检索另一个模块的服务,比如说我没有加载.Module.phpAB

如何在服务管理器中设置所请求服务的模拟?请注意,我不能$this->getApplicationServiceLocator()在测试中使用它,因为这已经调用了Module.onBootstrap我的A模块的方法.

要发布一些代码,这就是我现在正在做的事情

bootstrap.php中

namespace Application;

use Zend\Mvc\Service\ServiceManagerConfig;
use Zend\ServiceManager\ServiceManager;
use RuntimeException;

class Bootstrap
{
    protected static $serviceManager;

    public static function init()
    {
        $modulePath = static::findParentPath('module');
        $vendorPath = static::findParentPath('vendor');

        if (is_readable($vendorPath . '/autoload.php')) {
            $loader = include $vendorPath . '/autoload.php';
        } else {
            throw new RuntimeException('Cannot locate autoload.php');
        }

        $config = [
            'modules' => [
                'Application',
            ],
            'module_listener_options' => [
                'module_paths' => [
                    $modulePath,
                    $vendorPath
                ] …
Run Code Online (Sandbox Code Playgroud)

php testing phpunit zend-framework2

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

在Mac OS X上为Zend Framework 2安装和配置Apache 2的mod_rewrite

我开始使用zend框架2,他们有一个安装和配置mod_rewrite for apache 的先决条件.Apache 2.2.22预装在Mac OS X 10.8.2上.是否有一种简单的方法来安装和配置apache的mod_rewrite?

我遇到的唯一帮助建议重新编译apache.这是唯一的方法吗?

apache macos zend-framework2

31
推荐指数
2
解决办法
8万
查看次数

ZF2针对高流量进行优化

当超过3个用户同时使用它时,我的ZF2应用程序似乎非常慢.

我使用xdebug和webgrind来分析我的代码,而我的函数似乎很慢,所以它必须是zf2中的自我优化问题.

对于缓存我使用EvanDotPro的EdpSuperluminal模块,这似乎提高了应用程序的性能.

我们使用nginx反向代理,但也没有意义.

我需要一些好的建议来增加高流量的响应.我同时谈论30多个连接用户.

optimization performance zend-framework2

31
推荐指数
3
解决办法
2万
查看次数

如何在zf2中使用Zend\Session?

有人试过zf2吗?我无法理解在zf2中使用会话的新机制.如何在新的zend框架中编写和读取会话?

我也在互联网上找不到任何例子.

php session zend-framework2

29
推荐指数
2
解决办法
4万
查看次数

如何在HostGator上使用PHP Composer

我最近决定在Zend Framework 2中启动一个项目,并且无法在HostGator共享服务器上运行它.

默认情况下,HostGator的共享服务器在PHP 5.2.2中运行,如果您上传ZF2 Skeleton应用程序,它将无法开箱即用.

此外,如果您碰巧具有对HG共享帐户的SSH访问权限(通常必须请求它),您将无法运行.PHAR文件,因为PHP的CLI版本也是5.2.2.

幸运的是,我得到了它的工作......见下文.

php phar php-5.2 zend-framework2 composer-php

28
推荐指数
2
解决办法
1万
查看次数

在zf2中配置多个数据库

如何在Zend Framework 2中配置(和使用)多个数据库?目前我在global.php中有这个:

return array(
    'db' => array(
        'driver'         => 'Pdo',
        'dsn'            => 'mysql:dbname=my_db;host=localhost',
        'driver_options' => array(
            PDO::MYSQL_ATTR_INIT_COMMAND => 'SET NAMES \'UTF8\''
        ),
        'username' => 'user',
        'password' => '******',
    ),
    'service_manager' => array(
        'factories' => array(
            'Zend\Db\Adapter\Adapter' => 'Zend\Db\Adapter\AdapterServiceFactory',
        ),
    ),
);
Run Code Online (Sandbox Code Playgroud)

但我没有看到添加第二个的方法.

php zend-framework2

28
推荐指数
2
解决办法
2万
查看次数

如何在ZF2中全局传递变量到layout.phtml?

我想在整个应用程序(全局)中将一系列变量传递给我的layout.phtml.我的意思是我不想用

$this->layout()->someVar = someValue;
Run Code Online (Sandbox Code Playgroud)

在我所获得的每一个动作中,因为这将是许多额外的工作和代码.那么有没有办法在一个地方做到这一点?或者我提到的就是我得到的一切!希望不是 :)

也许使用会话? - 雷米托马斯

谢谢你的解决方案.暂时这就是我正在使用的东西.用于登录用户信息,系统和布局设置以及ACL列表.但问题是我必须在layout.phtml中定义一个我认为不合适的新对象,是吗?我在某处读到,我们需要在视图模型中使用的任何数据都应该使用控制器操作传递给它.特别是我不喜欢偷工减料,所以如果有一个干净的方法,我宁愿不这样做.最近我必须为每个用户获取未读消息的数量,并在layout.phtml中使用它.所以,如果我在layout.phtml中这样做,那么在视图模型或布局中有很多php脚本.

谢谢

zend-framework2

28
推荐指数
2
解决办法
3万
查看次数

更改Zend Framework 2.0控制器中的布局

我正在学习ZF2.0测试版.在ZF1中,我们可以在控制器中动态更改布局:

Zend_Layout::getMvcInstance()->setLayout('layoutname');
Run Code Online (Sandbox Code Playgroud)

但是在ZF2.0中, Zend\Layout类没有方法getMvcInstance().我认为它可以使用依赖注入但不确定.

php zend-framework zend-framework2

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

从Zend Framework 1到2逐步迁移

我必须将应用程序从Zend Framework 1.12.0迁移到版本2.似乎还没有迁移指南.我已经研究过ZF2编码约定,并且我采用了依赖注入(Zend\Di)和PHP 5.3命名空间.我的目标是将我的ZF1应用程序重构为ZF2模块.

问题:是否可以在每个步骤之后逐步执行至少部分工作的应用程序避免大量重构步骤?如果是,步骤是什么?

这是我对这种逐步迁移的想法,但我不知道在每一步之后我是否最终得到了一个有效的应用程序:

  1. 首先设置ZF2 Skeleton Application
  2. 设置新模块(MyApp)并将我的ZF1应用程序的内容重新组织到MyApp模块文件夹结构中.然后设置非常基本的配置和引导,并通过从ZF2 AbstractActionController扩展它来迁移IndexController.稍后将迁移模型(Zend_Db)和视图(Zend_View).这里的目标是有一个工作的IndexController :: indexAction,它没有很多依赖项.
  3. 设置更多配置和引导(Routing,Translate,Locale,Cache,Db,Acl,ViewHelpers,...).我想首先设置这些组件的ZF1版本,然后逐个迁移它们.
  4. 迁移其他控制器并使用Zend\Di或使用ServiceManager将依赖注入设置到控制器中.
  5. 通过使旧的phing脚本使用新的目录结构来设置自动部署.
  6. 将视图(包括帮助程序)和表单迁移到ZF2.
  7. 迁移模型(从Zend_Db到ZF2 Zend\Db或Doctrine).
  8. 逐个迁移其他ZF1组件(Translate,Locale,Cache,Acl,...).
  9. 重构康复和长假.

但是,只有当某些ZF2组件与ZF1组件一起工作时,我才会在每个步骤后都有一个workin应用程序.我不知道是否可以使用ZF1控制器来使用ZF1视图(和查看助手).

php migration zend-framework zend-framework2

26
推荐指数
2
解决办法
2万
查看次数

Zend Framework 2 Doctrine 2一对多复选框保湿

我有一个ManyToMany我闯入OneToManyManyToOne关系.我想构建一个具有复选框而不是集合的表单,我正在使用'DoctrineObject'保湿器,但它不起作用,我不知道出了什么问题.

我从我的代码中删除了所有其他不相关的字段.

角色实体:

/**
 * @orm\Entity
 * @orm\Table(name="roles")
 */
class RolesEntity extends HemisEntity {
    /**
     * @orm\Id
     * @orm\Column(type="integer");
     * @ORM\GeneratedValue(strategy="IDENTITY")
     */
    protected $id;

    /**
     * @orm\Column(name="role_code",type="string")
     */
    protected $roleCode;

    /**
     * @orm\OneToMany(targetEntity="RolesPermissionsEntity", mappedBy="role", cascade={"persist"})
     */
    protected $rolePermissions;

    public function __construct()
    {
        $this->rolePermissions = new ArrayCollection();
    }

    public function setRolePermissions($rolePermissions)
    {
        $this->rolePermissions = $rolePermissions;
        return $this;
    }

    public function addRolePermissions(Collection $rolePermissions)
    {
        foreach ($rolePermissions as $rolePermission) {
            $rolePermission->setRole($this);
            $this->rolePermissions->add($rolePermission);
        }
    }

    public function …
Run Code Online (Sandbox Code Playgroud)

doctrine-orm zend-framework2 zend-form2

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