小编edi*_*igu的帖子

PHP&ZF2 /比较:预期==实际

有谁知道为什么一些开发人员(特别是在Zend Framework 2的资源中看到)在比较中的实际值之前写出预期值?

例:

if (true === $actualValue) { ... }
Run Code Online (Sandbox Code Playgroud)

代替

if ($actualValue === true) { ... }
Run Code Online (Sandbox Code Playgroud)

这种情况没有在PSR编码标准中定义.

注意: c ++有一个类似的主题,但没有真正有用的答案.

php comparison coding-style zend-framework2

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

如何在ZF2中配置Doctrine文件映射驱动程序

我有这个错误:

致命错误:未捕获的异常'Doctrine\Common\Persistence\Mapping\MappingException'及消息'文件映射驱动程序必须具有有效的目录路径,但是给定路径[path/to/my/entities]似乎不正确

我在我的module.config.php中有这个:

'doctrine' => array(
    'driver' => array(
        // defines an annotation driver with two paths, and names it `my_annotation_driver`
        'my_annotation_driver' => array(
            'class' => 'Doctrine\ORM\Mapping\Driver\AnnotationDriver',
            'cache' => 'array',
            'paths' => array(
                __DIR__ . '/../src/Realez/Entity',
                'another/path'
            ),
        ),

        // default metadata driver, aggregates all other drivers into a single one.
        // Override `orm_default` only if you know what you're doing
        'orm_default' => array(
            'drivers' => array(
                // register `my_annotation_driver` for any entity under namespace `My\Namespace`
                'Realez/Entity' => 'my_annotation_driver'
            ) …
Run Code Online (Sandbox Code Playgroud)

php doctrine-orm zend-framework2

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

用户的Apigility和oAuth

我即将开始使用rest API进行应用程序,我想使用apigility.不幸的是,这个想法存在一个问题.我无法找到可靠的信息来源,如何允许oAuth对普通用户进行身份验证.

我需要为角度应用和原生移动设备提供访问权限(可能在将来用于第三方Web应用程序).我找到的所有资源都是关于为特定客户端应用程序授予对api的访问权限,而不是为使用此应用程序的特定用户授予访问权限.我不想实现两种不同的身份验证方法,所以如果有办法用apigility来解决这个问题,那就太棒了.

您对此有何建议?我知道我可以为所有注册用户生成客户端ID和密码,但是这会产生一些糟糕的解决方案,并且我已经有了用于存储用户信息的数据库模式.

oauth zend-framework2 apigility

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

Zend Framework 2和Doctrine 2 - 多个数据库的配置

我将配置文件从configuration.md文件粘贴到

module.config.php

'doctrine' => array(
        'connection' => array(
            'orm_crawler' => array(
                'driverClass' => 'Doctrine\DBAL\Driver\PDOMySql\Driver',
                'params' => array(
                    'host'     => 'localhost',
                    'port'     => '3306',
                    'user'     => 'root',
                    'password' => 'root',
                    'dbname'   => 'crawler',
                    'driverOptions' => array(
                        1002 => 'SET NAMES utf8'
                    ),
                )
            )
        ),

        'configuration' => array(
            'orm_crawler' => array(
                'metadata_cache'    => 'array',
                'query_cache'       => 'array',
                'result_cache'      => 'array',
                'driver'            => 'orm_crawler',
                'generate_proxies'  => true,
                'proxy_dir'         => 'data/DoctrineORMModule/Proxy',
                'proxy_namespace'   => 'DoctrineORMModule\Proxy',
                'filters'           => array()
            )
        ),

        'driver' => array(
            'Crawler_Driver' …
Run Code Online (Sandbox Code Playgroud)

php zend-framework doctrine-orm zend-framework2

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

如何在Windows上安装Zend OPcache Extension + PHP> = 5.4

是否可以在Windows环境中为PHP 5.4.29安装Zend OPcache模块?我已经下载了与PHP 5.4兼容的OPCache但是

php -v
Run Code Online (Sandbox Code Playgroud)

没有显示任何新加载.

php windows opcache

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

在ZF2项目中启用Doctrine 2缓存

如何在使用Zend Framework 2和Doctrine 2的项目中启用缓存?什么缓存应该启用doctrine缓存或zend缓存?

在这里,我尝试过,但在时间执行中添加的时间内看不出任何差异

模块\应用\设置\ module.config.php

 'doctrine.cache.my_memcache' => function ($sm) {
            $cache = new \Doctrine\Common\Cache\MemcacheCache();
            $memcache = new \Memcache();
            $memcache->connect('localhost', 11211);
            $cache->setMemcache($memcache);
        return $cache;
      }, 


    'doctrine.cache.apc' => function ($sm){
            $apc = new \Doctrine\Common\Cache\ApcCache();
            return $apc;
    },



    // Doctrine config
    'doctrine' => array(
        'driver' => array(
            __NAMESPACE__ . '_driver'   => array(
                'class' => 'Doctrine\ORM\Mapping\Driver\AnnotationDriver',
                'cache' => 'array',
                'paths' => array(__DIR__ . '/../src/' . __NAMESPACE__ . '/Entity'),
            ),
            'orm_default' => array(
                'drivers' => array(
                    __NAMESPACE__ . '\Entity' => __NAMESPACE__ . '_driver' …
Run Code Online (Sandbox Code Playgroud)

php caching zend-framework doctrine-orm zend-framework2

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

rails to_xlsx无法找到所有具有'id'的漏洞:(全部,{})(找到0结果,但正在寻找2)

我有一个Rails应用程序(ruby 2.0.0,Rails 4.2.1).我想用excel将数据导出到excel acts_as_xlsx gem.

这是我的控制器:

class VulnerabilitiesController < ApplicationController
  before_action :set_vulnerability, only: [:show, :edit, :update, :destroy]
  # GET /vulnerabilities
  # GET /vulnerabilities.json
def index

  @vulnerabilities = Vulnerability.all 

  respond_to do | format |  
  format.html # index.html.erb
  format.json { render :json => @vulnerabilities }
  format.xlsx {
    send_data @vulnerabilities.to_xlsx.to_stream.read, :filename => 'costings.xlsx', :type => "application/vnd.openxmlformates-officedocument.spreadsheetml.sheet"
  }
end
(…)
Run Code Online (Sandbox Code Playgroud)

这是我的模型:

class Vulnerability < ActiveRecord::Base
  acts_as_xlsx
end
Run Code Online (Sandbox Code Playgroud)

但是当我点击我的按钮时:

<%= link_to 'Download', url_for(:format=>"xlsx") %>
Run Code Online (Sandbox Code Playgroud)

我有一个错误:

Couldn't find all Vulnerabilities with 'id': (all, {}) (found …
Run Code Online (Sandbox Code Playgroud)

ruby ruby-on-rails axlsx

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

在没有serviceLocator-> get()方式的ZF2中依赖注入的新方式是否效率更低?

由于zend-mvc的2.7.0版本已ServiceLocatorAwareInterface被删除,因此$this->serviceLocator->get()控制器内部的调用也是如此.

这就是为什么几天前我对我的所有模块进行了大量重构,通过构造函数注入所需的服务/对象,使用工厂来处理大部分内容.

当然,我理解为什么这是更好/更清洁的做事方式,因为现在更容易看到家属.但另一方面:

这会导致繁重的开销和更多从未使用过的类实例,不是吗?

我们来看一个例子:

因为我的所有控制器都有依赖关系,所以我为所有控制器创建了工厂.

CustomerControllerFactory.php

namespace Admin\Factory\Controller;
class CustomerControllerFactory implements FactoryInterface {
    public function createService(ServiceLocatorInterface $controllerManager) {
        $serviceLocator = $controllerManager->getServiceLocator();
        $customerService = $serviceLocator->get('Admin\Service\CustomerService');
        $restSyncService = $serviceLocator->get('Admin\Service\SyncRestClientService');

        return new \Admin\Controller\CustomerController($customerService, $restSyncService);
    }
}
Run Code Online (Sandbox Code Playgroud)

CustomerController.php

namespace Admin\Controller;

class CustomerController extends AbstractRestfulController {
    public function __construct($customerService, $restSyncService) {
        $this->customerService = $customerService;
        $this->restSyncService = $restSyncService;
    }
}
Run Code Online (Sandbox Code Playgroud)

module.config.php

'controllers' => [
  'factories' => [
    'Admin\Controller\CustomerController' => 'Admin\Factory\Controller\CustomerControllerFactory',
  ]
],
'service_manager' => [
  'factories' => [
    'Admin\Service\SyncRestClientService' …
Run Code Online (Sandbox Code Playgroud)

php dependency-injection overhead zend-framework2 zend-framework3

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

如何使用ZF3设置延迟加载(从任何地方都没有ServiceLocator模式)

我正在写一个新的ZF2应用程序.我注意到ZF3已经弃用了"从任何地方"调用服务的ServiceLocator使用模式.我想为ZF3编写代码.

我能够设置我的Controller在构造函数时调用所有依赖项.但这意味着Doctrine在我需要它之前加载ie 对象.

如何设置它以便仅在我需要它时立即加载?(延迟加载).我知道ZF3将加载移动到Controller构造,这使得如何加载Just-In-Time的东西并不明显.

旧代码

class CommissionRepository
{

    protected $em;

    function getRepository()
    {
        //Initialize Doctrine ONLY when getRepository is called
        //it is not always called, and Doctrine is not always set up
        if (! $this->em)
            $this->em = $this->serviceLocator->get('doctrine');
        return $this->em;
    }
}
Run Code Online (Sandbox Code Playgroud)

重构ServiceLocator模式后的当前代码

class CommissionRepository
{

    protected $em;

    function getRepository()
    {
        return $this->em;
    }

    function setRepository($em)
    {
        $this->em = $em;
    }

    function useRepository($id)
    {
        return $this->em->find($id);
    }
}


class CommissionControllerFactory implements FactoryInterface
{

    public function createService(ServiceLocatorInterface $serviceLocator) …
Run Code Online (Sandbox Code Playgroud)

deprecated service-locator zend-framework2 zend-framework3 zend-expressive

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

如何摆脱Zend Framework 3"入门"教程中的致命错误?

我一直试图通过Zend Framework 3的"入门"教程.它一直很顺利,但是一旦我进入"表单和操作",事情就会停止工作.

教程如下:https://docs.zendframework.com/tutorials/getting-started/forms-and-actions/

这是我不断得到的错误:

致命错误:Zend\Form\Form :: bindValues(array $ values = Array)的声明必须与Zend\Form\Fieldset :: bindValues(array $ values = Array,?array $ validationGroup = NULL)兼容...第24行\ zendtest\vendor\zendframework\zend-form\src\Form.php

我在创建了AlbumForm.php之后得到了这个,在Album.php中实现了InputFilterAwareInterface,创建了add.phtml视图脚本并在AlbumController.php中复制了所需的逻辑.从教程中复制了所有内容.

我无法通过谷歌找到任何有同样问题的人,所以我一定做错了什么,但我看不出它是什么.

有没有人知道我可能做错了什么?

php forms zend-framework3

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