Esempi

La libreria è composta da una sola classe PosixDaemon che va inclusa nel proprio codice. Una volta effettuata quest'operazione è possibile scrivere una classe estendendo la prima oppure scrivere del codice procedurale che richiama direttamente la classe base per effettuare le operazioni di forking e detaching dalla sessione.

Di seguito sono riportati due esempi, estremamente semplici, che svolgono le identiche operazioni una però in modo procedurale l'altra OOP:

  1. <?php
  2.  
  3. require_once('PosixDaemon.class.php');
  4.  
  5. $posixDaemon = new PosixDaemon();
  6. $posixDaemon->Fork();
  7. $posixDaemon->DetachSession();
  8.  
  9. $counter = 0;
  10. while($counter < 5)
  11. {
  12. sleep(1);
  13. $counter++;
  14. }
  15.  
  16. exit(PosixDaemon::EXIT_OK);
  17.  
  18. ?>

L'esempio invece che sfrutta l'OOP

  1. <?php
  2.  
  3. require_once('PosixDaemon.class.php');
  4.  
  5. class MyPosixDaemon extendes PosixDaemon
  6. {
  7. public function __construct()
  8. {
  9. $this->Fork();
  10. $this->DetachSession();
  11. $this->MainLoop();
  12. }
  13.  
  14. private function MainLoop()
  15. {
  16. $counter = 0;
  17. while($counter < 5)
  18. {
  19. sleep(1);
  20. $counter++;
  21. }
  22.  
  23. exit(MyPosixDaemon::EXIT_OK);
  24. }
  25. }
  26.  
  27. $myPosixDaemon = new MyPosixDaemon();
  28.  
  29. ?>

Come potete vedere è estremamente semplice e non richiede strutture particolari! Tramite questa semplice struttura è possibile sviluppare codice molto più complesso ed evoluto che sfrutta il forking per effettuare operazioni avanzate!