Я использую этот пакет Composer для разработка, которая требует функциональности, предоставляемой этим пакетом. В поисках альтернатив я обнаружил, что это мой лучший выбор, поскольку доступные альтернативы слишком просты, чтобы их можно было реализовать в условиях ограниченного времени, с которым я имею дело.
Теперь я протестировал его на локальном компьютере с PHP 5.5 (в подсистеме Linux для Windows 10), на личном сервере с PHP 5.6, но рабочий сервер работает под управлением PHP 5.4, что может не может быть повышен по причинам.
Сначала у меня была эта ошибка:
Parse error: syntax error, unexpected 'class' (t_class), expecting identifier (t_string) in …
В поисках решений я нажал этот вопрос, поэтому я зашел в код пакета и нашел следующий фрагмент:
protected static $classmap = [
'getTransactionResult' => getTransactionResult::class,
'getTransactionResultResponse' => getTransactionResultResponse::class,
'transactionResultOutput' => transactionResultOutput::class,
'cardDetail' => cardDetail::class,
'wsTransactionDetailOutput' => wsTransactionDetailOutput::class,
'wsTransactionDetail' => wsTransactionDetail::class,
'acknowledgeTransaction' => acknowledgeTransaction::class,
'acknowledgeTransactionResponse' => acknowledgeTransactionResponse::class,
'initTransaction' => initTransaction::class,
'wsInitTransactionInput' => wsInitTransactionInput::class,
'wpmDetailInput' => wpmDetailInput::class,
'initTransactionResponse' => initTransactionResponse::class,
'wsInitTransactionOutput' => wsInitTransactionOutput::class
];
Я обнаружил, что определение ::class
несовместимо с PHP 5.4, и при попытке сделать что предложил ответ на вопрос, у меня были результаты в этом комментарии к этому ответу.
Итак, до сих пор я прокомментировал строки с проблемами (оба являются array
s, содержащими эти ::class
определения), протестировано на рабочем сервере и работает до сих пор. Но я хочу знать, есть ли реальная замена этому определению ::class
.
Важное примечание. В примерах, которые я видел в Интернете, говорится о get_class('ClassName')
, относящемся к ClassName::class
, но не о classMethod::class
случаях. Я также столкнулся с этот вопрос, но пример, приведенный в ответе, не дает мне понять, как его использовать.