Исходя из другого ответа, я застрял в регулярном выражении (каковы шансы …?).
$matches = array(); // $controller = $this->getRequest()->attributes->get('_controller'); $controller = "Acme\MyBundle\Controller\MyController::myAction"; preg_match('/(.*)\\\Bundle\\\(.*)\\\Controller\\\(.*)Controller::(.*)Action/', $controller, $matches); print_r($matches);
Возвращает ( см. Пример )
Array ( )
Ожидаемый результат
Array ( [0] => Acme\MyBundle\Controller\MyController::myAction [1] => Acme [2] => My [3] => My [4] => my )
Кто-нибудь может помочь? Это регулярное выражение кажется законным, может быть, это просто проблема с обратной косой чертой? Я пробовал, но не понял.
Попробуйте ниже выражение. Ожидается? Или скажите мне ваши точные требования.
<?php $matches = array(); // $controller = $this->getRequest()->attributes->get('_controller'); $controller = "Acme\MyBundle\Controller\MyController::myAction"; preg_match('/(.*)\\\(.*)Bundle\\\Controller\\\(.*)Controller::(.*)Action/', $controller, $matches); print_r($matches);