PHP n'est pas un langage de script qui a attiré beaucoup d'attention, mais c'est dommage, car PHP a de nombreux idéaux qui en font le choix idéal pour rédiger une application terminale.
Cette série d'articles présentera comment utiliser la bibliothèque Macrame pour écrire un script de ligne de commande interactif. Nous terminerons progressivement un exemple d'élément. Styles et exécutez la fonction en arrière-plan lorsque le chargeur d'animation s'affiche à l'utilisateur.
Pour plus d'informations sur Macrame, visitez le site du document.
Dans l'opération de script d'exécution
Pour quiconque souhaite ignorer cette étape, le code source complet de ce projet est fourni sous forme d'essentiel.
Présentation
Dans cette section, comment allons-nous introduire:installer macrame
Créer un framework de script
<code class="language-bash">composer require gbhorwood/macrame</code>
<code class="language-php">#!/usr/bin/env php <?php require __DIR__ . '/vendor/autoload.php'; use Gbhorwood\Macrame\Macrame; // 实例化 Macrame 对象。 // 参数是 ps(1) 所见的脚本名称 $macrame = new Macrame("示例 Macrame 脚本"); // 强制仅在命令行上执行脚本时才运行脚本 if ($macrame->running()) { // 验证主机系统是否可以运行 Macrame 脚本。失败时退出 $macrame->preflight(); // 将文本输出到 STDOUT $macrame->text("Hello World")->write(); // 清洁退出 $macrame->exit(); }</code>
la première ligne du fichier, avant même & lt;?
<code class="language-php">#!/usr/bin/env php</code>
Ici, nous créons un objet de macrame que nous l'utiliserons dans le reste du script. Contenu très standard. La seule partie intéressante est le paramètre. C'est le nom du système d'exploitation qui nous donnera le script. Par exemple, si nous exécutons PS pour afficher la liste de processus en cours, notre script affichera ce nom.
Cette instruction garantit que tout le code du bloc est exécuté uniquement lorsque le script est exécuté sur la ligne de commande.
<code class="language-bash">composer require gbhorwood/macrame</code>
Lorsque nous écrivons PHP pour la ligne de commande, notre contrôle de l'environnement n'est pas autant que les serveurs Web que nous avons et gérons. Le preflicht () appelle l'environnement PHP local. Les exigences minimales sont:
Bien que MacRame fonctionne sur PHP 7.4 et 8.0, car PHP a changé en 8.1, la chaîne de symbole peut ne pas être correctement alignée dans la sortie.
Cela quittra le script proprement et renverra le code de réussite de 0. De plus, tout fichier temporaire créé pendant l'exécution sera automatiquement supprimé. Il est préférable d'utiliser la fonction d'exit () de la macrame au lieu du DIE () de PHP;<code class="language-php">#!/usr/bin/env php <?php require __DIR__ . '/vendor/autoload.php'; use Gbhorwood\Macrame\Macrame; // 实例化 Macrame 对象。 // 参数是 ps(1) 所见的脚本名称 $macrame = new Macrame("示例 Macrame 脚本"); // 强制仅在命令行上执行脚本时才运行脚本 if ($macrame->running()) { // 验证主机系统是否可以运行 Macrame 脚本。失败时退出 $macrame->preflight(); // 将文本输出到 STDOUT $macrame->text("Hello World")->write(); // 清洁退出 $macrame->exit(); }</code>
Après avoir écrit le script de base "Hello World", nous pouvons définir ses autorisations pour permettre l'exécution et l'exécuter sur la ligne de commande.
Lisez les paramètres
Macrame fournit un ensemble d'outils pour l'analyse et la lecture des paramètres de ligne de commande. Commençons par quelques choses simples: obtenez le numéro de version lorsque vous utilisez la commande suivante pour appeler le script:<code class="language-php">#!/usr/bin/env php</code>
Nous pouvons atteindre cet objectif en appelant la méthode Args () sur l'objet Macrame. Pour tester si les paramètres existent, nous pouvons utiliser la méthode EXIST (), comme indiqué ci-dessous:
<code class="language-php">$macrame = new Macrame("示例 Macrame 脚本");</code>
existant () Méthode Retour à Boolean.
<code class="language-php">if ($macrame->running())</code>
Les paramètres de ligne de commande peuvent également être utilisés pour attribuer une valeur pour les variables. Par exemple, pour définir la valeur du nom d'utilisateur, nous pouvons espérer que les utilisateurs pourront appeler le script comme ceci:Pour obtenir la valeur de ce paramètre dans notre script, nous pouvons utiliser la méthode première () fournie par args (), comme indiqué ci-dessous:
<code class="language-php">$macrame->preflight();</code>
première
du paramètre. Si nous appelons le script comme ceci:<code class="language-php">$macrame->exit();</code>
alors d'abord () renverra la valeur "FirstUser". Si nous voulons la dernière valeur, nous pouvons appeler Last (). Si nous voulons tous
en tant que tableau, nous utiliserons tous ().<code class="language-bash">chmod 755 ./examplescript.php ./examplescript.php</code>
En mettant tous ces éléments ensemble, notre script ressemble à ceci maintenant:
La liste complète des paramètres de la ligne de commande de gestion est introduite dans le document du paramètre Macrame.Créer un menu dynamique
<code class="language-bash">./examplescript.php --version # 或 ./examplescript.php -v</code>
Nous espérons également permettre aux utilisateurs d'utiliser notre script de manière interactive. S'ils ne transmettent pas les paramètres sur la ligne de commande, nous les inciterons à entrer les données. Pour les exemples de Mastodon, nous utiliserons le menu.
Le menu de macrameÉcrivons une fonction qui affiche le menu à l'utilisateur et renvoie la valeur de la valeur sélectionnée:
<code class="language-bash">composer require gbhorwood/macrame</code>
La fonction principale ici est d'appeler ce qui suit:
<code class="language-php">#!/usr/bin/env php <?php require __DIR__ . '/vendor/autoload.php'; use Gbhorwood\Macrame\Macrame; // 实例化 Macrame 对象。 // 参数是 ps(1) 所见的脚本名称 $macrame = new Macrame("示例 Macrame 脚本"); // 强制仅在命令行上执行脚本时才运行脚本 if ($macrame->running()) { // 验证主机系统是否可以运行 Macrame 脚本。失败时退出 $macrame->preflight(); // 将文本输出到 STDOUT $macrame->text("Hello World")->write(); // 清洁退出 $macrame->exit(); }</code>
Nous fournissons un tableau de chaîne comme option de menu et un texte de titre de menu facultatif pour menu () - & gt; Internet (), et le menu l'affiche automatiquement aux utilisateurs. Le choix de l'utilisateur sera renvoyé sous forme de chaîne.
En ajoutant à effacer () à notre chaîne, vous pouvez également choisir d'effacer le menu de l'écran après que l'utilisateur a fait un choix. Cette méthode est facultative, mais elle peut en effet être bien rangée.
Après avoir obtenu la fonction de menu, nous pouvons modifier la façon d'obtenir l'instance Mastodon. Nous essaierons de le lire à partir des paramètres de ligne de commande.
<code class="language-php">#!/usr/bin/env php</code>
Par défaut, Macrame utilise le style et la couleur par défaut du terminal pour afficher le menu, et le projet qui met en évidence l'affichage affiché est défini sur l'affichage inversé. Si nécessaire, nous pouvons modifier ce paramètre en ajoutant des fonctions supplémentaires à notre chaîne. Par exemple, si nous voulons mettre en surbrillance les éléments affichés affichés sous forme de texte rouge épais, nous pouvons écrire ceci:
<code class="language-php">$macrame = new Macrame("示例 Macrame 脚本");</code>
Le document de menu pages un aperçu complet de toutes les méthodes qui peuvent être utilisées pour personnaliser la méthode de couleur, de style et d'alignement du menu personnalisé.
Ensuite, nous modifierons la façon d'obtenir le nom d'utilisateur afin qu'il accepte également les entrées interactives. Dans ce cas, nous utiliserons l'entrée () - & gt; readLine () pour lire la chaîne de texte d'entrée utilisateur. Ce qui suit est la fonction:
<code class="language-php">if ($macrame->running())</code>
Description supplémentaire de la vérification des entrées
Le macrame est livré avec de nombreuses méthodes prédéfinies pour vérifier l'entrée. Nous pouvons ajouter n'importe quel nombre de vérifications à notre chaîne. Input () - & gt; readLine () ne renvoie la valeur que après toutes les vérifications.
Jetons un coup d'œil à un exemple:
<code class="language-php">$macrame->preflight();</code>
La page Document d'entrée de macrame fournit une liste complète de toutes les fonctions de vérification pré-constructive. Si nous voulons écrire notre propre dispositif de vérification personnalisé, il y est également introduit.
Qu'en est-il de la sortie de "Point-Like Back Display"?
Afin de résoudre ce problème, MacRame fournit la version "Point-Shaped Back Display" de ReadLine (), appelé readPassword ().
<code class="language-php">$macrame->exit();</code>
Dans l'exemple de la façon de lire une ligne de texte utilisateur, nous avons vu un grand nombre de codes utilisés pour définir un style de texte rapide. Étudons-le en détail.
Macrame permet d'utiliser le code ANSI pour définir le style de sortie du texte terminal, ce qui nous permet d'appliquer le style et la couleur du corps épais et du corps oblique à notre texte.
Nous pouvons effectuer cette opération dans notre script de deux manières. Il existe certaines façons, telles que Style () et Color () (ou Color ()), ou nous pouvons utiliser le système de marque de texte de base.
Regardons d'abord la méthode.
<code class="language-bash">composer require gbhorwood/macrame</code>
Ici, nous utilisons la méthode Text () de MacRame pour créer un objet "texte", puis appliquons le style et la couleur, et enfin utilisons get () pour le renvoyer en tant que chaîne.
Veuillez noter que les méthodes de style et de couleur sont appliquées à tous les textes de la chaîne. Si nous voulons mélanger le style et le texte de couleur avec du texte pur, nous devrons créer de nombreuses sous-string et les connecter ensemble. Cela peut être très gênant, surtout lorsqu'il s'agit d'un grand nombre de textes.
ou, nous pouvons utiliser le système de balisage de MacRame pour simplifier les paramètres de style de texte. Ceci est un exemple:
<code class="language-php">#!/usr/bin/env php <?php require __DIR__ . '/vendor/autoload.php'; use Gbhorwood\Macrame\Macrame; // 实例化 Macrame 对象。 // 参数是 ps(1) 所见的脚本名称 $macrame = new Macrame("示例 Macrame 脚本"); // 强制仅在命令行上执行脚本时才运行脚本 if ($macrame->running()) { // 验证主机系统是否可以运行 Macrame 脚本。失败时退出 $macrame->preflight(); // 将文本输出到 STDOUT $macrame->text("Hello World")->write(); // 清洁退出 $macrame->exit(); }</code>
Les marques seront épaissies (bien sûr). Le document répertorie la liste complète de toutes les marques.
Cela signifie que les marques imbriquées ne fonctionneront pas comme nous nous y attendons. Par exemple, dans cet exemple, la première marque sera fermée
et Marque:
<code class="language-php">#!/usr/bin/env php</code>
quel est le prochain
<code class="language-php">$macrame = new Macrame("示例 Macrame 脚本");</code>
Exécutez la fonction en arrière-plan lorsque le chargeur d'animation s'affiche à l'utilisateur
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!