小编Hug*_*ira的帖子

从DEBUG日志中禁用"通知事件"消息

分析我的实际开发日志是一项痛苦的工作,因为大量的"event.DEBUG:Notified event ..."消息.任何人都知道如何禁用调度程序通知日志?

提前致谢!

logging symfony

11
推荐指数
2
解决办法
5098
查看次数

在Symfony中使用Mautic api-library时,尝试调用名为"validateAccessToken"的未定义方法

我正在尝试在我的Symfony项目中使用mautic/api-library.我正在使用Symfony 2.8.9和PHP 5.6.14.

我在composer和autoload.php文件中包含了api-library项目.在我的控制器中,我已经声明了api-library类:

use Mautic\Auth\ApiAuth;
use Mautic\Auth\OAuth;
Run Code Online (Sandbox Code Playgroud)

并尝试从我的mautic安装中获取令牌:

$settings = array(
    'baseUrl'      => 'http://mymauticinstallation.com',
    'version'      => 'OAuth1a',
    'clientKey'    => 'myCLientKey',    
    'clientSecret' => 'mySecretClient',  
    'callback'     => 'https://api.mysymfonyapp.com/'
);
$auth = new ApiAuth();
$auth->newAuth($settings);
if ($auth->validateAccessToken()) {
    if ($auth->accessTokenUpdated()) {
        $accessTokenData = $auth->getAccessTokenData();
    }
}
Run Code Online (Sandbox Code Playgroud)

但是当我尝试运行此代码时,我在控制台中收到此错误:

request.CRITICAL: Uncaught PHP Exception Symfony\Component\Debug\Exception\UndefinedMethodException: "Attempted to call an undefined method named "validateAccessToken" of class "Mautic\Auth\ApiAuth"
Run Code Online (Sandbox Code Playgroud)

查看mautic ApiAuth类,newAuth方法通过refection 使用实例化:

public function newAuth($parameters = array(), $authMethod = 'OAuth')
{
    $class      = 'Mautic\\Auth\\'.$authMethod;
    $authObject …
Run Code Online (Sandbox Code Playgroud)

php oauth symfony mautic

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

Symfony2:使用composer时如何解决两个bundle的需求冲突?

我需要使用两个包:

我在尝试更新作曲家时遇到问题,因为他们对kriswallsmith/buzz包有不同的要求:

  1. kriswallsmith/buzz:<= 0.5
  2. kriswallsmith/buzz:> = 0.9

解决这个问题的最佳方法是什么?我是否必须在捆绑github问题跟踪器中报告问题?或者更好地分叉google-geolocation-bundle来更新其依赖项?

dependencies bundle symfony composer-php

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

Symfony2语言环境检测:不考虑会话中的_locale

我正在尝试实现一个检测用户首选语言的LocaleListener(考虑Accept-Language标头)并将其存储在会话中以避免每次请求都检查它.我已经开发了以下代码来完成此任务:

public function onKernelRequest(GetResponseEvent $event) {
    $request = $event->getRequest();

    if (HttpKernelInterface::MASTER_REQUEST !== $event->getRequestType()) {
        return;
    }

    $preferredLocale = $request->getPreferredLanguage($this->availableLocales);

    if ($this->container->has('session')) {
        $session = $this->container->get('session');
        if (!$session->has('_locale')) {
            $session->set('_locale', $preferredLocale);
        }
    } else {
        $request->setLocale($preferredLocale);
    }
}
Run Code Online (Sandbox Code Playgroud)

代码正在运行,首选语言存储在会话中,但symfony不考虑存储在会话中的语言环境来翻译字符串.在我的情况下,我的首选语言是'pt_BR',当我逃脱时:

{{ app.request.locale }}
Run Code Online (Sandbox Code Playgroud)

symfony正在逃避'en'.symfony不应该考虑存储在session('_ locale')中的值来定义请求语言环境吗?这是正确的行为吗?我怎么能做到这一点?

locale translation localization symfony

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

Symfony2:在实体或控制器中使用业务(存储库)逻辑的最佳方法

我在我的项目中遇到了一个设计问题,与哪些业务逻辑相关.

我有三个实体,Event,TicketOrder和Ticket.One Event有很多TicketOrders,一个TicketOrder有很多Tickets.

在我的模板中,我必须显示一个事件有多少票.我想到了实现这一目标的最佳方法,并没有得到一个好的解决方案.我试过这个:

1)使用setTicketsCount和getTicketsCount方法在Event实体中创建私有成员'ticketsCount'.使用LifeCycleCallback'PostLoad'创建'loadTicketsCount'方法,以访问TicketRepository方法'findByEvent'.这是不可能的,因为我无法访问实体类中的存储库.

2)在将用于显示事件的操作中,我可以访问Ticket Repository并手动设置事件'ticketsCount'属性.我不知道这是否是一个好方法,因为如果我的动作列出了很多事件,我将不得不循环所有事件并对每个事件进行存储库调用.

我真的不知道实现这一目标的最佳方法,如果有人可以帮助我,我将非常感激.

谢谢!;)

entity business-logic repository symfony doctrine-orm

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

浏览器偶尔中止Ajax请求而不返回任何错误

在我的项目中(PHPSymfony 2)我在每个页面中都做了很多Ajax请求.我遇到了很多问题,因为它看起来像浏览器(在谷歌浏览器Firefox中测试)正在中止请求而不会给我一个错误.我已经做了一个干净的页面来测试可能导致此问题的原因并且错误仍然存​​在.我已经尝试过在for循环中执行10个请求的测试(我相信我们没有任何问题,对吧?).

这是我的代码:

<!DOCTYPE html>
<html>
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
        <title>Test page</title>
    </head>
    <body>Test page.
        <script type="text/javascript" src="/js/compressed_jquery-1.8.2.min_1.js"></script>
        <script type="text/javascript">
            $(document).ready(function() {
                for (var i = 0; i < 10; i++) {
                    $.get('/i18n/javaScript/pt.json', function(data) {
                        console.log(data);
                    });
                }
            });
        </script>
    </body>
</html>
Run Code Online (Sandbox Code Playgroud)

以下是Firebug中请求结果的屏幕截图:

Ajax请求截图

如您所见,某些请求已完成,而其他请求未完成.有时浏览器会完成所有10个请求而不会出错.是什么导致这个?


我已经测试了所有解决方案,但我很确定它是Windows,Apache或PHP配置问题.今天我在我的机器中配置了一个VM,VirtualBox运行Ubuntu 13.04(Raring Ringtail)和Apache 2.2 + PHP,并且没有错误发生,证明这与我的JavaScript,HTML或PHP代码无关.我不确定这是配置问题.我如何发现此配置?

javascript ajax jquery xmlhttprequest symfony

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

如何处理ROLES和FOSOAuthServerBundle范围

我有一个基本的api,使用FOSOAuthServerBundle验证用户.用户可以拥有ROLE_USER和ROLE_ADMIN角色.基于FOSOAuthServerBundle文档,默认行为是使用范围的角色,所以我认为,当我有一个普通用户,捆绑将返回scope: user的响应,并且当它是一个管理员用户,将返回scope: admin.但它不是这样的.捆绑包返回supported_scopes条目中配置的任何内容.以下是我的config.yml.

fos_oauth_server:
    service:
        options:
            supported_scopes: user admin
Run Code Online (Sandbox Code Playgroud)

我的access_control部分security.yml是空的,我的firewalls部分如下:

firewalls:
        users_create:
            pattern: ^/v1/users
            methods: [POST]
            security: false

        api:
            pattern:    ^/
            security: true
            fos_oauth:  true
            stateless:  true

access_control:
        # You can omit this if /api can be accessed both authenticated and anonymously
Run Code Online (Sandbox Code Playgroud)

这样user admin,即使用户没有ROLE_ADMIN角色,bundle也始终作为作用域返回.

{
"access_token": "ZGQ2ODE5ZjAzNTZkOWY0OWMyNmZmODE4MjcwZTJmYjExNzY0NzQxOTRmMzk4NzA2Mjc2NjIyZmY1ZDgwMzk4NA"
"expires_in": 3600
"token_type": "bearer"
"scope": "user admin"
"refresh_token": "NmM5ZGFmNzBiNTNjYmQzMTQ1MTk0ODJjOTAxMWU0YWIwMzM1MzgyODg4ZTAzNTI5ZTk2MDc3OGU2MTg0MWZiMA"
}
Run Code Online (Sandbox Code Playgroud)

我错过了什么?用户角色是否附加到令牌范围?有没有更好的方法来了解我的用户是否是管理员?

php oauth symfony fosoauthserverbundle

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

如何使用 AWS Cli 批量删除 lambda 函数

我有大约 200 个 lambda 函数需要删除。使用控制台我一次只能删除一个,这真的很痛苦。有谁知道批量删除所有功能的 cli 命令吗?谢谢!

command-line-interface amazon-web-services aws-lambda

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