Я борюсь с компонентом DomCrawler для Symfony, в частности с клиентом Метод запроса Я пытался попасть по URL-адресу на моем сайте, "/ foo / path / foo-user-1" где "foo-user-1" - это параметр, через который я прошел. Строка uri, как и ожидалось, но по какой-то причине Я не могу пройти мимо страницы входа в систему .
Я подозреваю, что это может быть связано с тем, что у моего приложения есть путь (app_dev.php
), и я не учитываю это в своих тестах ...?
Заранее спасибо за любую помощь в этом!
<?php
namespace App\FooBundle\Tests\Controller;
use Symfony\Bundle\FrameworkBundle\Test\WebTestCase;
class FooTest extends WebTestCase
{
public function testFooAction()
{
// making a request on the client:
$client = self::createClient([], array("HTTP_HOST" => "127.0.0.1"));
$client->followRedirects(true);
$url = $client->getContainer()->get("router")->generate(
'Route_name'
array("barParam" => "foo-user-1")
);
// $url => "/foo/path/foo-user-1"
$crawler = $client->request(
"GET",
$url
);
print_r($crawler); // => returns my login page html
// uri: https://127.0.0.1/login
// actual url: https://127.0.0.1/app_dev.php/login
}
}
+------------------+------------+
| Q | A |
+------------------+------------+
| Symfony Version? | 2.7.49 |
+------------------+------------+
| Php Version | 5.6.36 |
+------------------+------------+
| PHPUnit | 5.7.27 |
+------------------+------------+
| OS | Mac 10.12.6|
+------------------+------------+
РЕДАКТИРОВАТЬ: Я также повторил этот сценарий, используя последние версии Symfony и php, и он прекрасно работает. Я уверен, что это связано с тем, что моя версия Symfony настолько устарела, что я сомневаюсь, что DomCrawler полностью совместим с Symfony 2.7.x.