debug_callback_line_processor.php 605 B

123456789101112131415161718192021222324252627282930313233343536
  1. <?php
  2. class LineProcessor {
  3. protected $_processor;
  4. public function readLineLoop() {
  5. $fh = fopen('php://stdin', 'r');
  6. $p = $this->_processor;
  7. while(($line = fgets($fh))) {
  8. echo $p($line);
  9. }
  10. }
  11. public function setProcessor($p) {
  12. $this->_processor = $p;
  13. }
  14. }
  15. $v8 = new V8Js();
  16. $v8->lp = new LineProcessor();
  17. $v8->startDebugAgent('LineProcessor', 9222, V8Js::DEBUG_AUTO_BREAK_NEVER);
  18. $JS = <<< EOT
  19. print("Hello LineProcessor User!\\n");
  20. PHP.lp.setProcessor(function (foo) {
  21. return foo.toUpperCase();
  22. });
  23. PHP.lp.readLineLoop();
  24. EOT;
  25. $v8->executeString($JS, 'processor.js');