Maison cadre php Workerman Développement Workerman : Comment implémenter un système de traitement de fichiers batch basé sur le protocole HTTP

Développement Workerman : Comment implémenter un système de traitement de fichiers batch basé sur le protocole HTTP

Nov 07, 2023 pm 12:16 PM
workerman http协议 Traitement des fichiers batch

Développement Workerman : Comment implémenter un système de traitement de fichiers batch basé sur le protocole HTTP

Développé par Workerman : Comment implémenter un système de traitement de fichiers batch basé sur le protocole HTTP, des exemples de codes spécifiques sont nécessaires

Avec le développement d'Internet et du numérique, le traitement des données est devenu de plus en plus important, notamment dans les entreprises . Parfois, nous devons traiter un grand nombre de fichiers, tels que des images, des vidéos, des audios, etc. À l’heure actuelle, l’opération manuelle est non seulement longue et laborieuse, mais également sujette aux erreurs. Comment mettre en œuvre un système de traitement de fichiers par lots est le sujet qui sera abordé dans cet article.

Workerman est un framework de socket hautes performances développé en PHP, facile à utiliser, et sa particularité est de fournir un modèle de programmation basé sur les événements. Cet article se concentrera sur la façon d'utiliser Workerman pour développer un système de traitement de fichiers batch basé sur le protocole HTTP. Nous pouvons réaliser des fonctions telles que le téléchargement par lots, la compression et le transcodage de fichiers via ce système.

1. Mettre en place un environnement de développement
Tout d'abord, nous devons installer PHP, Composer et Workerman. Voici une introduction à la façon d’installer Composer. Ouvrez votre outil de ligne de commande et entrez la commande suivante :

$ php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');"
$ php -r "unlink('composer-setup.php');"

Une fois l'installation terminée, nous devons exécuter la commande suivante dans le répertoire du projet pour installer Workerman :

$ composer require workman/workerman

2. Créer le projet et la structure des répertoires

Nous créons un projet de système de traitement de fichiers par lots, le nom du projet est batchfile, la structure des répertoires est la suivante :

├─applications #Répertoire d'applications

│ ├─app #Répertoire d'applications
│ │ └─Répertoire d'application Http #Http
│ │ ├─Répertoire de configuration #Configuration
│ │ ├─Répertoire du contrôleur #Controller
│ │ ├─Répertoire des événements #Événements
│ │ ├─Répertoire des bibliothèques #Bibliothèque
│ │ ├─Modèles #Répertoire modèle
│ │ ├ ─Tâches #Répertoire de tâches
│ │ └─Vues #Répertoire de visualisation
│ └─config #Fichier de configuration global
├─public #Répertoire racine Web
│ ├─css #Répertoire de fichiers CSS
│ ├ ─js #Répertoire de fichiers JS
│ └─index.php #Fichier d'entrée du site Web
├─start.php #Fichier de démarrage du système
└─composer.json #Fichier de gestion des dépendances

Nous avons créé un répertoire d'application dans la structure de répertoires, qui contient Config, Controller, Events, Libraries, Models et autres répertoires. Ces répertoires sont utilisés pour gérer les composants de l'application. Par exemple, le répertoire Controller est utilisé pour gérer les classes de contrôleurs, et le répertoire Models est utilisé pour gérer les classes de modèles de données, etc.

Nous créons le fichier index.php dans le répertoire public, qui est le fichier d'entrée de notre site Web. Nous configurerons ce fichier dans les prochaines étapes.

3. Écrivez le script de démarrage

Le framework Workerman utilise le mode Socket et n'est pas accessible via le navigateur. Nous devons donc enregistrer le fichier de démarrage en tant que fichier PHP distinct. Ouvrez le fichier start.php et entrez le code suivant :

use WorkermanWorker;
require_once
DIR '/vendor/autoload.php';$http_worker = new Worker("http://. 0.0.0.0:9000");

$http_worker->count = 4;

$http_worker->onWorkerStart = function($worker) {

require_once __DIR__ . '/applications/app/Http/routes.php';
Copier après la connexion

};

Worker::runAll();

Dans le code ci-dessus, nous avons créé une instance de Worker nommée $http_worker et chargé le fichier de routage routes.php via l'événement onWorkerStart.

4. Écrivez des routes

Ouvrez le fichier /applications/app/Http/routes.php et entrez le code suivant :

utilisez WorkermanProtocolsHttp;

$http->onMessage = function($connection , $ data) {

$request_data = Http::requestData($data);
$request_path = $request_data['path'];
if (($pos = strpos($request_path, '?')) !== false) {
    $request_path = substr($request_path, 0, $pos);
}
$controller_action = str_replace('/', '\', $request_path);
$controller_action = ucfirst(strtolower($controller_action));
$controller_action = str_replace('-', '', $controller_action);
$controller_action = trim($controller_action, '\');
$controller_action = 'App\Http\Controllers\' . $controller_action . 'Controller';
if (!class_exists($controller_action)) {
    Http::header("HTTP/1.1 404 Not Found
Copier après la connexion

");

    Http::end("404 Not Found");
    return;
}
$controller = new $controller_action();
$method = isset($request_data['query']['method']) ? $request_data['query']['method'] : 'index';
if (!method_exists($controller, $method)) {
    Http::header("HTTP/1.1 404 Not Found
Copier après la connexion

");

    Http::end("404 Not Found");
    return;
}
$controller->$method();
Copier après la connexion

};

Dans le code ci-dessus, nous analysons les données de la requête via le protocole Http, chargeons le contrôleur correspondant en fonction de l'itinéraire de la requête, et accéder à la méthode du contrôleur.

5. Écrivez le contrôleur

Ouvrez le fichier /applications/app/Http/Controllers/BatchfileController.php et entrez le code suivant :

namespace AppHttpControllers;

utilisez WorkermanProtocolsHttp;

utilisez WorkermanProtocolsHttpResponse;
use WorkermanProtocolsHttpRequest ;

class BatchfileController

{

public function index()
{
    return new Response('Hello world'.PHP_EOL);
}

public function uploadFiles(Request $request)
{
    $files = $request->file();
    if(empty($files)){
        return new Response(json_encode([
            'message' => 'No files were uploaded.',
        ]));
    }
    //处理你需要处理的逻辑
    return new Response(json_encode([
        'message' => 'Files uploaded successfully.',
    ]));
}
Copier après la connexion

}

Dans le code ci-dessus, nous avons écrit un contrôleur BatchfileController, qui définit les méthodes index() et uploadFiles(Request $request).

6. Recevoir la demande de téléchargement de fichier

Ouvrez le fichier /applications/app/Http/Controllers/BatchfileController.php et entrez le code suivant dans la méthode uploadFiles :

public function uploadFiles(Request $request)

{

$files = $request->file();
if(empty($files)){
    return new Response(json_encode([
        'message' => 'No files were uploaded.',
    ]));
}
$result = [];
foreach ($files as $name => $file) {
    $path = 'uploads/' . $file['name'];
    if(move_uploaded_file($file['tmp_name'], $path)){
        $result[] = [
            'name' => $file['name'],
            'type' => $file['type'],
            'size' => $file['size'],
            'path' => $path,
        ];
    }
}

//处理你需要处理的逻辑

return new Response(json_encode([
    'message' => 'Files uploaded successfully.',
    'files' => $result,
]));
Copier après la connexion

}

Dans le code ci-dessus, nous obtenons le fichier téléchargé via la méthode $request->file(), utilisons la méthode move_uploaded_file pour déplacer le fichier téléchargé vers notre répertoire de téléchargement personnalisé, puis enregistrons les informations du fichier dans un tableau, et enfin renvoie le résultat.

7. Exécutez le test
En mode ligne de commande, entrez dans le répertoire du projet et exécutez la commande php start.php pour démarrer le service Workerman. Si tout est normal, entrez http://localhost:9000 dans la barre d'adresse du navigateur et vous verrez la sortie "Hello world". Les résultats d'exécution sont les suivants :

Si vous souhaitez tester la fonction de téléchargement de fichiers, vous pouvez utiliser les commandes Postman ou curl pour les tests de simulation. L'exemple de code de la requête est le suivant :

curl -X POST
http://localhost:9000/file/upload
-H 'cache-control: no-cache'
-H 'content-type: multipart/form- data; border =----WebKitFormBoundary7MA4YWxkTrZu0gW'
-F 'file1=@/path/to/file1.png'
-F 'file2=@/path/to/file2.jpg'

À ce stade, nous avons a utilisé avec succès Workerman pour développer un système de traitement de fichiers par lots basé sur le protocole HTTP et implémente la fonction de téléchargement de fichiers. Nous pouvons développer davantage sur cette base pour réaliser la compression de fichiers, le transcodage et d’autres fonctions. Le modèle de programmation événementielle du framework Workerman nous permet d'étendre facilement les fonctionnalités de l'application.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn

Outils d'IA chauds

Undresser.AI Undress

Undresser.AI Undress

Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover

AI Clothes Remover

Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

AI Hentai Generator

AI Hentai Generator

Générez AI Hentai gratuitement.

Article chaud

R.E.P.O. Crystals d'énergie expliqués et ce qu'ils font (cristal jaune)
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Meilleurs paramètres graphiques
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Comment réparer l'audio si vous n'entendez personne
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25: Comment déverrouiller tout dans Myrise
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌

Outils chauds

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Implémenter le téléchargement et le téléchargement de fichiers dans les documents Workerman Implémenter le téléchargement et le téléchargement de fichiers dans les documents Workerman Nov 08, 2023 pm 06:02 PM

Pour implémenter le téléchargement et le téléchargement de fichiers dans des documents Workerman, des exemples de code spécifiques sont requis Introduction : Workerman est un framework de communication réseau asynchrone PHP hautes performances, simple, efficace et facile à utiliser. Dans le développement réel, le téléchargement et le téléchargement de fichiers sont des exigences fonctionnelles courantes. Cet article explique comment utiliser le framework Workerman pour implémenter le téléchargement et le téléchargement de fichiers, et donne des exemples de code spécifiques. 1. Téléchargement de fichiers : le téléchargement de fichiers fait référence à l'opération de transfert de fichiers de l'ordinateur local vers le serveur. Ce qui suit est utilisé

Lequel est le meilleur, Swoole ou Workerman ? Lequel est le meilleur, Swoole ou Workerman ? Apr 09, 2024 pm 07:00 PM

Swoole et Workerman sont tous deux des frameworks de serveur PHP hautes performances. Connu pour son traitement asynchrone, ses excellentes performances et son évolutivité, Swoole convient aux projets qui doivent gérer un grand nombre de requêtes simultanées et un débit élevé. Workerman offre la flexibilité des modes asynchrone et synchrone, avec une API intuitive mieux adaptée à la facilité d'utilisation et aux projets gérant des volumes de concurrence inférieurs.

Comment mettre en œuvre l'utilisation de base des documents Workerman Comment mettre en œuvre l'utilisation de base des documents Workerman Nov 08, 2023 am 11:46 AM

Introduction à la façon d'implémenter l'utilisation de base des documents Workerman : Workerman est un framework de développement PHP hautes performances qui peut aider les développeurs à créer facilement des applications réseau à haute concurrence. Cet article présentera l'utilisation de base de Workerman, y compris l'installation et la configuration, la création de services et de ports d'écoute, la gestion des demandes des clients, etc. Et donnez des exemples de code correspondants. 1. Installez et configurez Workerman. Entrez la commande suivante sur la ligne de commande pour installer Workerman : c

Développement Workerman : Comment mettre en œuvre des appels vidéo en temps réel basés sur le protocole UDP Développement Workerman : Comment mettre en œuvre des appels vidéo en temps réel basés sur le protocole UDP Nov 08, 2023 am 08:03 AM

Développement Workerman : appel vidéo en temps réel basé sur le protocole UDP Résumé : Cet article présentera comment utiliser le framework Workerman pour implémenter la fonction d'appel vidéo en temps réel basée sur le protocole UDP. Nous aurons une compréhension approfondie des caractéristiques du protocole UDP et montrerons comment créer une application d'appel vidéo en temps réel simple mais complète à travers des exemples de code. Introduction : Dans la communication réseau, les appels vidéo en temps réel sont une fonction très importante. Le protocole TCP traditionnel peut rencontrer des problèmes tels que des retards de transmission lors de la mise en œuvre d'appels vidéo en temps réel. Et UDP

Comment implémenter la fonction de proxy inverse dans le document Workerman Comment implémenter la fonction de proxy inverse dans le document Workerman Nov 08, 2023 pm 03:46 PM

La façon d'implémenter la fonction de proxy inverse dans le document Workerman nécessite des exemples de code spécifiques.Introduction : Workerman est un cadre de communication réseau multi-processus PHP hautes performances qui offre des fonctions riches et des performances puissantes et est largement utilisé dans la communication Web en temps réel et à long terme. connexions. Parmi eux, Workerman prend également en charge la fonction de proxy inverse, qui peut réaliser l'équilibrage de charge et la mise en cache des ressources statiques lorsque le serveur fournit des services externes. Cet article explique comment utiliser Workerman pour implémenter la fonction de proxy inverse.

Comment utiliser Workerman pour créer un système d'équilibrage de charge à haute disponibilité Comment utiliser Workerman pour créer un système d'équilibrage de charge à haute disponibilité Nov 07, 2023 pm 01:16 PM

Comment utiliser Workerman pour créer un système d'équilibrage de charge à haute disponibilité nécessite des exemples de code spécifiques. Dans le domaine de la technologie moderne, avec le développement rapide d'Internet, de plus en plus de sites Web et d'applications doivent gérer un grand nombre de requêtes simultanées. Afin d’atteindre une haute disponibilité et des performances élevées, le système d’équilibrage de charge est devenu l’un des composants essentiels. Cet article explique comment utiliser le framework open source PHP Workerman pour créer un système d'équilibrage de charge à haute disponibilité et fournit des exemples de code spécifiques. 1. Introduction à Workerman Worke

Comment implémenter la fonction de minuterie dans le document Workerman Comment implémenter la fonction de minuterie dans le document Workerman Nov 08, 2023 pm 05:06 PM

Comment implémenter la fonction timer dans le document Workerman Workerman est un puissant framework de communication réseau asynchrone PHP qui fournit une multitude de fonctions, y compris la fonction timer. Utilisez des minuteries pour exécuter du code dans des intervalles de temps spécifiés, ce qui est très approprié pour les scénarios d'application tels que les tâches planifiées et les interrogations. Ensuite, je présenterai en détail comment implémenter la fonction de minuterie dans Workerman et fournirai des exemples de code spécifiques. Étape 1 : Installer Workerman Tout d’abord, nous devons installer Worker

Comment implémenter la communication TCP/UDP dans la documentation Workerman Comment implémenter la communication TCP/UDP dans la documentation Workerman Nov 08, 2023 am 09:17 AM

La façon d'implémenter la communication TCP/UDP dans le document Workerman nécessite des exemples de code spécifiques. Workerman est un framework PHP asynchrone piloté par les événements hautes performances qui est largement utilisé pour implémenter la communication TCP et UDP. Cet article explique comment utiliser Workerman pour implémenter la communication basée sur TCP et UDP et fournit des exemples de code correspondants. 1. Créez un serveur TCP pour la communication TCP. Il est très simple de créer un serveur TCP à l'aide de Workerman. Il vous suffit d'écrire le code suivant : <?ph.

See all articles