(PECL win32service >=0.1.0)
win32_create_service — Crée une nouvelle entrée pour service dans la base de données SCM
$details, string $machine = ?): voidTente d'ajouter un service dans la base de données SCM. Des privilèges d'administrateur sont nécessaires pour que cela réussisse.
detailsUn tableau des détails des services :
service
           Le nom court du service. C'est le nom que vous utiliserez pour
           contrôler le service en utilisant la commande
           net. Le service doit être unique (deux services
           ne peuvent partager le même nom), et idéalement, devrait éviter
           d'avoir des espaces dans son nom.
          
displayLe nom d'affichage du service. C'est le nom que vous verrez dans l'Applet Services.
descriptionLa description longue du service. C'est la description que vous verrez dans l'Applet des services.
userLe nom de l'utilisateur sous lequel vous voulez que le service s'exécute. Si oublié, le service fonctionnera en tant que LocalSystem. Si le nom de l'utilisateur est spécifié, vous devez aussi fournir un mot de passe.
password
           Le mot de passe qui correspond à user.
          
pathLe chemin complet au module exécutable qui sera démarré lorsque le service est démarré. Si oublié, le chemin du processus courant de PHP sera utilisé.
params
           Paramètres de commande à passer au service lorsqu'il démarre.
           Si vous voulez exécuter un script PHP en tant que service, alors
           le premier paramètre devrait être le chemin complet au script PHP
           que vous prévoyez exécuter. Si le nom du script ou le chemin 
           contiennent des espaces, alors, entourez le chemin complet du script
           PHP par des "
          
load_orderContrôle le load_order. Cela n'est pas encore complètement supporté.
svc_type
           Fixe le type de service. Si oublié, la valeur par défaut est
           WIN32_SERVICE_WIN32_OWN_PROCESS. Ne changez
           pas ceci à moins que vous savez vraiment ce que vous faites.
          
start_type
           Spécifie comment le service devrait être démarré. La valeur par
           défaut est WIN32_SERVIDE_AUTO_START qui
           signifie que le service sera démarré lorsque la machine démarrera.
          
error_control
           Informe le SCM à propos de ce qu'il devrait faire lorsqu'il détecte
           un problème avec le service. La valeur par défaut est
           WIN32_SERVER_ERROR_IGNORE. Le changement de
           cette valeur n'est pas encore complètement supporté.
          
delayed_start
           Si delayed_start est défini à
           true, alors il informera le SCM que ce service doit être
           démarré après les services démarrés automatiquement et un certain
           délai.
          
           N'importe quel service peut être marqué comme étant un service
           retardé après le démarrage automatique ; cependant, cette configuration
           n'a aucun effet tant que le paramètre start_type
           du service vaut WIN32_SERVICE_AUTO_START.
          
Cette configuration n'est application que sous Windows Vista et les serveurs Windows 2008 et suivants.
base_priorityPour réduire l'impacte sur l'utilisation du processeur, il peut être nécessaire de définir une priorité plus basse qu'à la normale.
           Le paramètre base_priority peut être défini à
           une des constantes définies dans les
           classes de basse priorité Win32.
          
dependenciesPour définir les dépendances de votre service, il est nécessaire de définir ce paramètre avec la liste des noms des service dans un tableau.
recovery_delayCe paramètre défini le délai entre la défaillance et l'exécution de l'action de récupération. La valeur est en millisecondes.
La valeur par défaut est 60000.
recovery_action_1
           L'action qui sera exécuté lors de la première défaillance. L'action 
           par défaut est WIN32_SC_ACTION_NONE.
          
           Le paramètre recovery_action_1 peut être défini 
           avec l'une des constantes définie dans les
           Actions de récupération Win32.
          
recovery_action_2
           L'action qui sera exécuté lors de la deuxième défaillance. L'action 
           par défaut est WIN32_SC_ACTION_NONE.
          
           Le paramètre recovery_action_2 peut être défini 
           avec l'une des constantes définie dans les
           Actions de récupération Win32.
          
recovery_action_3
           L'action qui sera exécuté lors des défaillances suivantes. L'action 
           par défaut est WIN32_SC_ACTION_NONE.
          
           Le paramètre recovery_action_3 peut être défini 
           avec l'une des constantes définie dans les
           Actions de récupération Win32.
          
recovery_reset_periodLe compteur des défaillance sera réinitialisé après le délai défini dans ce paramètre. Le délai est exprimé en secondes.
           La valeur par défaut est 86400.
          
recovery_enabled
           Définir ce paramètre à true pour activer les options de récupération, et false 
           pour les désactiver. 
          
           La valeur par défaut est false
          
recovery_reboot_msg
           Ajouter ce paramètre pour définir le message enregistré dans le jounal 
           d'évènements Windows avant le redémarrage. Utilisé uniquement si l'une 
           des actions est défini à 
           WIN32_SC_ACTION_REBOOT.
          
recovery_command
           Ajouter ce paramètre pour définir la commande a exécuter lorsqu'une 
           action est définie à 
           WIN32_SC_ACTION_RUN_COMMAND.
          
machineLe nom optionnel de la machine sur lequel vous voulez créer le service. Si oublié, cela utilisera la machine locale.
Aucune valeur n'est retournée.
    Avant la version 1.0.0, retournait WIN32_NO_ERROR on success, false if there is a problem with the parameters or a Win32 Error Code on failure.
  
   Une ValueError est levée si la valeur du paramètre 
   serviceest vide.
  
   Une ValueError est levée si la valeur du paramètre 
   path est omis ou vide.
  
   Une ValueError est levée si la valeur du paramètre 
   svc_type est incorrect.
  
   Une ValueError est levée si la valeur du paramètre 
   start_type est incorrect.
  
   Une ValueError est levée si la valeur du paramètre 
   error_control est incorrect.
  
   Une ValueError est levée si la valeur du paramètre 
   base_priority est incorrect.
  
   Une ValueError est levée si la valeur du paramètre 
   recovery_delay n'est pas entre 
   0 et PHP_INT_MAX.
  
   Une ValueError est levée si la valeur du paramètre 
   recovery_action_1 est incorrect.
  
   Une ValueError est levée si la valeur du paramètre 
   recovery_action_2 est incorrect.
  
   Une ValueError est levée si la valeur du paramètre 
   recovery_action_3 est incorrect.
  
   Une ValueError est levée si la valeur du paramètre 
   recovery_reset_period n'est pas entre 
    0 et PHP_INT_MAX.
  
Une Win32ServiceException est levée en cas d'erreur.
| Version | Description | 
|---|---|
| PECL win32service 1.0.0 | Lance une ValueError si un paramètre est invalide,
        avant falseétait retourné. | 
| PECL win32service 1.0.0 | Lance une Win32ServiceException en cas d'erreur, avant un Code d'erreur Win32 était retourné. | 
| PECL win32service 1.0.0 | Le type de retour est maintenant void, avant il était mixed. | 
| PECL win32service 0.4.0 | Les paramètres dependencies,recovery_delay,recovery_action_1,recovery_action_2,recovery_action_3,recovery_reset_period,recovery_enabled,recovery_reboot_msgetrecovery_commandont été ajoutés. | 
Exemple #1 Exemple avec win32_create_service()
Crée un service dont le nom court est 'dummyphp'.
<?php
$x = win32_create_service(array(
    'service'     => 'dummyphp',                                        // le nom de votre service
    'display'     => 'service PHP simple PHP',                            // la description courte
    'description' => 'Ceci est un service Windows créé en utilisant PHP', // la description longue
    'params'      => '"' . __FILE__ . '"  run',                           // chemin vers le script ainsi que les paramètres
));
debug_zval_dump($x);
?>
Exemple #2 Un exemple win32_create_service() avec les dépendances
Crée un service dont le nom court est 'dummyphp' avec des dépendances.
<?php
$x = win32_create_service(array(
    'service'      => 'dummyphp',                                       // Le nom du service
    'display'               => 'service PHP simple PHP',                             // Une courte description
    'description'           => 'Ceci est un service Windows créé en utilisant PHP.', // Une longue description
    'params'                => '"' . __FILE__ . '"  run',                            // chemin vers le script ainsi que les paramètres
    'dependencies' => array("Netman"),                                      // La liste des dépendances
));
debug_zval_dump($x);
?>
Exemple #3 Exemple de win32_create_service() avec les options de récupération
Crée un service dont le nom court est 'dummyphp' avec les options de récupération.
<?php
$x = win32_create_service(array(
    'service'               => 'dummyphp',                                           // Le nom du service
    'display'               => 'service PHP simple PHP',                             // Une courte description
    'description'           => 'Ceci est un service Windows créé en utilisant PHP.', // Une longue description
    'params'                => '"' . __FILE__ . '"  run',                            // chemin vers le script ainsi que les paramètres
    'recovery_delay'        => 120000,                                               // Les actions de récupération seront exécuté après 2 minutes
    'recovery_action_1'     => WIN32_SC_ACTION_RESTART,                              // Première défaillance, redémarrage du service
    'recovery_action_2'     => WIN32_SC_ACTION_RUN_COMMAND,                          // Deuxième défaillance, exécution d'une commande
    'recovery_action_3'     => WIN32_SC_ACTION_NONE,                                 // Défaillance suivante, ne rien faire
    'recovery_reset_period' => 86400,                                                // Réinitialiser le compteur des défaillance après 1 jour (86400 minutes)
    'recovery_enabled'      => true,                                                 // Activer les options de récupération
    'recovery_reboot_msg'   => null,                                                 // Ne pas définir de message de redémarrage, il n'est pas utile.
    'recovery_command'      => "c:\clean-service.bat",                               // Lorsque l'action est WIN32_SC_ACTION_RUN_COMMAND, exécuter cette commande.
));
debug_zval_dump($x);
?>