我没什么问题.当我需要我的应用程序要求用户授予应用程序权限时,我使用以下代码:
<?php
$loginUrl = $facebook->getLoginUrl(
array(
'canvas' => 1,
'fbconnect' => 0,
'scope' => 'email,publish_stream,offline_access',
));
?>
echo "<script type='text/javascript'>top.location.href = '$loginUrl';</script>";
Run Code Online (Sandbox Code Playgroud)
我工作正常,但在用户按"授予权限"后,他被重定向到我的应用程序URL.我的意思是直接http://mydomain.com/myapp/,而不是Facebook上的应用页面.我可以解决它 - 我知道我的应用程序的Facebook地址,所以我将他重定向到正确的http://apps.facebook.com/myappname.它也可以.但是 - 当有人在某个页面选项卡上添加我的应用程序时 - 这里出现问题.因为我不知道在哪里重定向用户 - 我不知道,从我的应用程序调用的页面.
有什么办法可以了解,从我的应用程序调用的页面,或者更好的是,让Facebook正确地将用户重定向到"Facebook页面",其中"授予权限"对话框后添加了应用程序选项卡?
我的问题如下 - 我在OSX上使用包含Redis,NginX,PHP 7和Unison的容器的Docker.映射到php容器我有Symfony 3.1.7的卷.
一切正常,但Symfony的"欢迎"页面平均需要1.5秒的加载时间.同时没有泊坞窗的相同设置给我0.2秒的加载时间.与Symfony的控制台命令相同,所以,我想,这不是NginX的问题,Unison应该否定与Docker文件同步OSX问题相关的所有问题.
现在我已经没有想法我能做些什么来加快速度,以及如何找出造成1.5秒延迟的原因.
我在我的第二个MBP上遇到了同样的问题,但这种情况不会发生在同事笔记本电脑上,这与我的相似,但我们无法找到两个设置之间的任何差异.
一切都在我的MBP上运行,具有2.5 GHz i5,8 Gb RAM和SSD.
Docker 1.12.3,OSX 10.12.1(Sierra)
泊坞窗,compose.yml:
mydockerbox-redis:
image: phpdockerio/redis:latest
container_name: mydockerbox-redis
mydockerbox-webserver:
image: phpdockerio/nginx:latest
container_name: mydockerbox-webserver
volumes:
- ..:/var/www/mydockerbox
- ./nginx/nginx.conf:/etc/nginx/conf.d/default.conf
ports:
- "80:80"
links:
- mydockerbox-php-fpm
unison:
image: leighmcculloch/unison:latest
environment:
- UNISON_WORKING_DIR=/unison
volumes:
- ../mydockerbox:/var/www/mydockerbox
ports:
- "5000:5000"
mydockerbox-php-fpm:
build: .
dockerfile: php-fpm/Dockerfile
container_name: mydockerbox-php-fpm
volumes_from:
- unison
volumes:
- ./php-fpm/php-ini-overrides.ini:/etc/php/7.0/fpm/conf.d/99-overrides.ini
links:
- mydockerbox-redis
Run Code Online (Sandbox Code Playgroud)
UPD这里是php-fpm容器的Dockerfile:
FROM phpdockerio/php7-fpm:latest
# Install selected extensions and other stuff
RUN apt-get update \ …Run Code Online (Sandbox Code Playgroud) 我正在尝试将我的存储库服务注入到EventListener中,但这导致我发现异常,这是因为我对Symfony2的基本知识,我不知道如何解决.例外情况是:
bootstrap.php.cache第2129行中的ServiceCircularReferenceException:
检测到服务"doctrine.orm.default_entity_manager"的循环引用,路径:"doctrine.orm.default_entity_manager - > doctrine.dbal.default_connection - > person.connect.listener - > tag.repository.service".
这是我如何声明存储库和监听器:
tag.repository.service:
class: Application\Bundle\PersonBundle\Entity\TagRepository
factory: ["@doctrine", getRepository]
arguments: [ Application\Bundle\PersonBundle\Entity\Tag ]
person.connect.listener:
class: Application\Bundle\PersonBundle\EventListener\ConnectListener
arguments:
tokenStorage: "@security.token_storage"
tagRepo: "@tag.repository.service"
tags:
- { name: doctrine.event_listener, event: postPersist, connection: default }
Run Code Online (Sandbox Code Playgroud)
我能找到的大多数答案建议注入服务容器,但我真的不想这样做.有没有办法妥善解决这个问题?
UPD:这是监听器的代码.在我尝试注入TagRepository之前,一切正常
class ConnectListener
{
/**
* @var TokenStorage
*/
private $tokenStorage;
/**
* @var TagRepository
*/
private $tagRepo;
/**
* @param TokenStorage $tokenStorage
* @param TagRepository $tagRepo
*/
public function __construct(TokenStorage $tokenStorage, TagRepository $tagRepo)
{
$this->tokenStorage = $tokenStorage; …Run Code Online (Sandbox Code Playgroud)