Мне никогда не везло с Ранкитом.
Вы просили альтернативы, и я определенно могу порекомендовать это:
Лоскутная
Patchwork - это библиотека переопределения функций PHP. Другими словами, он выполняет ту же работу, что и Runkit.
Основное отличие состоит в том, что он написан на чистом PHP - никаких расширений для установки; просто require_once()
вверху вашего кода.
Обратная сторона этого заключается в том, что, поскольку он является чистым PHP, он может заменять только функции, определенные в вашей программе; то есть он не может переопределить встроенную функцию PHP, как Runkit. Пример в вашем вопросе будет хорошо работать с Patchwork, но попытка переопределить функцию PHP, такую как mysql_query()
, невозможна.
Однако, в отличие от Runkit, он работает отлично, поэтому, если вы можете жить с этим ограничением, я настоятельно рекомендую его.
Другой альтернативой Runkit, которую вы можете попробовать, является PHP Test Helpers . Это расширение PHP, которое охватывает практически то же основание, что и Runkit. Он написан тем же автором, что и PHPUnit, поэтому он должен быть довольно хорошим. Однако у меня не было особой радости, когда я пытался установить это, поэтому я не могу комментировать это очень много.
В ваших комментариях по этому вопросу я отмечаю, что вы используете Windows (то есть WAMP). Ни Runkit, ни PHP Test Helpers не предоставляются с исполняемыми файлами Windows; чтобы использовать любой из них в Windows, вам нужно самостоятельно скомпилировать расширение из исходного кода C. По этой причине, если вы используете Windows, Patchwork - ваш единственный разумный выбор.