У меня есть многоязычный сайт, в котором хранятся переводы в файле default.php, заполненные массивом, содержащим все ключи.PHP autodetect translateables/обнаружение фрагмента кода с помощью regex
Я бы предпочел сделать это автоматически. У меня уже есть (singleton) класс, который способен обнаруживать все мои файлы по типу. (Контроллер, действие, вид, модель, и т.д. ...)
Я хотел бы, чтобы обнаружить любой кусок кода из которых формат выглядит так:
$this->translate('[a-zA-Z]');
$view->translate('[a-zA-Z]');
getView()->translate('[a-zA-Z]');
throw new Exception('[a-zA-Z]');
addMessage(array('message' => '[a-zA-Z]');
Однако он должен быть отфильтрован, когда он начинает с/содержит:
$this->translate('((0-9)+_)[a-zA-Z]');
$this->translate('[a-zA-Z]' . $* . '[a-zA-Z]'); // Only a variable in the middle must filtered, begin or end is still allowed
of the course [a-zA-Z] - пример регулярного выражения.
Как и я, у меня уже есть класс, который обнаруживает определенные файлы. Этот класс также использует Reflection (или в этом случае Zend Reflection, поскольку я использую Zend). Однако я не мог видеть способ отражения функции с использованием regex.
Действие будет помещено внутри cronjob и ручного действия, поэтому это не большая проблема, когда используемая память немного «слишком» большой.
Можете ли вы изменить свой вопрос, чтобы показать пример строки вы хотите, чтобы соответствовать –
Это уже там, $ это-перевод ('[A-Za-Z]); Строка будет меняться, но я всегда стараюсь сохранить ее так: _ _ . Например, «Controller_Default_Welcome» –
IMarks