我试图testing一个场景,一方面,匿名用户应该立即从WebSocket连接断开连接,另一方面,经过身份validation的用户应该停留在WebSocket连接中。 第一种情况很容易通过使用下面的代码来testing。 身份validation过程不起作用。 对于会话存储,我使用Cookie身份validation与数据库结合使用: Symfony PDO会话存储 。 这一切工作正常,但是当涉及到使用身份validation来testing所描述的行为时,我不知道如何在testing中对用户进行身份validation。 作为一个客户端,我使用PawlasynchronousWebsocket客户端。 这看起来如下: \Ratchet\Client\connect('ws://127.0.0.1:8080')->then(function($conn) { $conn->on('message', function($msg) use ($conn) { echo "Received: {$msg}\n"; }); $conn->send('Hello World!'); }, function ($e) { echo "Could not connect: {$e->getMessage()}\n"; }); 我知道,作为第三个参数,我可以将头信息传递给“连接”方法,但我无法find一种方式,以便客户端连接,并在ws握手期间cookie正确传递。 我想到了这样的事情: 通过创build身份validation令牌来validation客户端 我使用序列化用户在数据库的会话表中创build一个新条目 我将创build的cookie作为第三个parameter passing给connect方法 这是我认为会起作用的理论,但用户总是在websocket端匿名。 这里到目前为止的理论代码: // … use Symfony\Bundle\FrameworkBundle\Test\WebTestCase; class WebsocketTest extends WebTestCase { static $closed; protected function setUp() […]
我试图在symfony2上通过facebook或userbundle对我的用户进行身份validation 以下是我到目前为止所做的工作(虽然不是我想要的,但工作起来): firewalls: main: pattern: .* fos_facebook: app_url: "http://apps.facebook.com/appName/" server_url: "http://localhost/facebookApp/" login_path: /fblogin check_path: /fblogin_check default_target_path: / provider: my_fos_facebook_provider form_login: check_path: /login_check anonymous: true logout: handlers: ["fos_facebook.logout_handler"] 该configuration的问题是,当用户没有login,他被redirect到/login(form_login),而我希望他被默认redirect到Facebook身份validation 我已经尝试简单地删除form_login,但如果我访问/login(这是我想如何用户loginFacebook以外),它不知道/ login_check路线提交login表单 也许chain_provider会是一个解决scheme? 我也没有得到它的工作
使用: for($i=1; $i<= 10000; ++$i) { $arrayOfNumbers[] = rand(1, 99999); } 有人可以解释为什么有这样的速度差异: array_map(array($maxHeap, 'insert'), $arrayOfNumbers); # Avg Time: 0.92856907844543s # against foreach($arrayOfNumbers as $number) { $maxHeap->insert($number); } # Avg Time: 1.3148670101166 $maxHeap是一个对象class MaxHeap extends SplMaxHeap
好的,我对PHP编程相对来说比较陌生,一直在不知不觉中可以在C#中实际使用PHP中的命名空间。 这真的很难看,因为他们决定使用反斜杠 – 为什么? 无论如何,我感兴趣的其他PHP程序员的观点是否将命名空间在PHP中,以及我现在是否应该开始使用它们?
最近我遇到了一个在类定义里面使用use语句的类。 有人可以解释它到底做了什么 – 因为我找不到任何有关它的信息。 我知道这可能是一种将其从给定文件的全局范围移开的方式,但它是否允许给定类inheritance多个父类 – 因为extends只允许一个父类引用? 我看到的例子是在Laravel的原始安装的用户模型中: <?php use Illuminate\Auth\UserTrait; use Illuminate\Auth\UserInterface; use Illuminate\Auth\Reminders\RemindableTrait; use Illuminate\Auth\Reminders\RemindableInterface; class User extends Eloquent implements UserInterface, RemindableInterface { use UserTrait, RemindableTrait; /** * The database table used by the model. * * @var string */ protected $table = 'users'; /** * The attributes excluded from the model's JSON […]
参考是否有一个静态代码分析器[如Lint]的PHP文件? – 我正在研究如何在开发人员提交之前评估PHP文件的内容。 无论哪种解决scheme是适当的将通过类似于答案的SVN挂钩触发: 是否可以检查PHP的PHP文件语法? 当我检查到SVN这是我要去的angular度时,我遇到了PHP文件的自动语法检查 ,但是… php -l是不够的。 例如,给定代码: if ($foo == 'bar') { echo $foo; } 这导致: 2012/01/15 02:51:14 [error] 694#0:* 164在stderr中发送FastCGI:“PHP注意:Undefinedvariables:foo 相比: if (isset($foo)) { echo $foo; } 其中一些涉及教育编码人员的最佳做法。 不幸的是,有些人不像其他人那样快速学习,唯一能够确保符合编码标准的方法就是减less未经testing或不符合要求的SVN。 从这个问题的第一个环节来看,我试过了: php -l 不会通知$foo的问题 phplint-pure-c-1.0_20110223 – PHPLint 不会通知$foo的问题 if ($foo == 'bar') { \_ HERE ==== /mnt/hgfs/workspace/scratch-pad/phpinfo.php:44:警告:比较(未知)==(string):无法检查未知types之间的比较 phpcs – PHP代码嗅探器 虽然PHP Sanity […]
任何人都可以给我一个使用PHP的彗星技术的一个很好和简单的例子吗? 我只需要一个使用持久HTTP连接或类似的例子。 我不想使用投票技术,因为我有类似的build议,不仅难以合作,而且还要pipe理一大笔资源。 另外我使用IIS7不是Apache。 一个很好的例子会非常有用,所以我可以从这个丑陋的轮询技术中继续。
我一直在努力学习Yii,但没有运气。 我发现Zend Framework,Kohana,Code Igniter等其他框架比Yii更容易学习。 文件也是这样。 你可以张贴链接到易于理解和写得很好的教程/文章? 官方文档充满了语法错误,似乎被赶了出来。
我制作了一个Android应用程序,可以使用应用内结算function购买商品。 购买商品后,交易可以在Android电子市场和手机之间轻松同步 – 可以在应用程序中使用。 但是,我需要我的服务器来了解购买。 交付特定于应用程序的数据的决定应在我的服务器上进行,而不是在客户端应用程序中进行。 例如 用户从Android电子市场购买项目X. 交易数据Y被发送到客户端。 客户端将Y发送到我的服务器。 客户端请求服务器为X提供内容。 如果Y有效,服务器将传送内容。 这怎么能做到呢? 问:如何validation来自Android客户端(可能源自Google服务器)的交易数据不是假的? 即黑客没有生成数据。 Google服务器 – > Android客户端 – >我的服务器 – > Android客户端 也许这是一个比其他任何问题更多的PHP问题。 我的服务器脚本(PHP)为了validation检索的数据是真实的,究竟应该做什么?
以下两种方法(性能,可读性等)之间有什么区别?你喜欢什么? echo "Welcome {$name}s!" 与 echo "Welcome ".$name."!";