php bukan bahasa skrip yang telah menarik banyak perhatian, tetapi ini adalah kasihan, kerana PHP mempunyai banyak cita -cita yang menjadikannya pilihan yang ideal untuk menulis aplikasi terminal.
Siri artikel ini akan memperkenalkan cara menggunakan Perpustakaan MacRame untuk menulis skrip baris perintah interaktif. Kami akan melengkapkan item sampel secara beransur -ansur. Gaya, dan jalankan fungsi di latar belakang apabila pemuat animasi dipaparkan kepada pengguna.
Untuk maklumat lanjut mengenai MacRame, lawati tapak dokumen.
Gambaran Keseluruhan
Dalam bahagian ini, bagaimana kita akan memperkenalkan:
Buat skrip kosong
Selepas memasang MacRame, kami boleh menyediakan skrip asas "Hello World" dan menggunakannya sebagai model permulaan kami. Walaupun secara teknikal, rangka kerja ini tidak diperlukan, tetapi gunakannya akan menjadikan skrip kami lebih selamat dan lebih standard. Mari kita lihat kod:
<code class="language-bash">composer require gbhorwood/macrame</code>
Baris ini adalah "Shebang". Pada asasnya, ia memberitahu sistem operasi Linux kami yang menjadi jurubahasa untuk menjalankan skrip ini. Ini membolehkan kita menjalankan skrip tanpa perlu menaip PHP terlebih dahulu. Shebang mesti
<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>
<code class="language-php">#!/usr/bin/env php</code>
Kenyataan ini memastikan bahawa semua kod dalam blok hanya dilaksanakan apabila skrip dijalankan pada baris arahan.
<code class="language-bash">composer require gbhorwood/macrame</code>
Apabila kita menulis PHP untuk baris arahan, kawalan kita terhadap persekitaran tidak seperti pelayan web yang kita ada dan menguruskan. Preflicht () memanggil persekitaran PHP tempatan. Keperluan minimum adalah: <:>
Ini akan keluar dari skrip dengan bersih dan mengembalikan kod kejayaan 0. Di samping itu, sebarang fail sementara yang dibuat semasa pelaksanaan akan dipadamkan secara automatik. Adalah lebih baik untuk menggunakan fungsi keluar () macrame dan bukannya mati () php;
Jalankan Hello World<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>
Selepas menulis skrip asas "Hello World", kita boleh menetapkan keizinannya untuk membolehkan pelaksanaan dan menjalankannya pada baris arahan.
MacRame menyediakan satu set alat untuk analisis dan membaca parameter baris perintah. Mari kita mulakan dengan beberapa perkara mudah: dapatkan nombor versi apabila menggunakan arahan berikut untuk memanggil skrip:
<code class="language-php">#!/usr/bin/env php</code>
kita boleh mencapai tujuan ini dengan memanggil kaedah Args () pada objek MacRame. Untuk menguji sama ada parameter wujud, kita boleh menggunakan kaedah wujud (), seperti yang ditunjukkan di bawah:
<code class="language-php">$macrame = new Macrame("示例 Macrame 脚本");</code>
ada () kaedah kembali ke boolean.
?
<code class="language-php">if ($macrame->running())</code>
Parameter baris arahan juga boleh digunakan untuk memberikan nilai untuk pembolehubah. Sebagai contoh, untuk menetapkan nilai nama pengguna, kami mungkin berharap pengguna boleh memanggil skrip seperti ini:
Untuk mendapatkan nilai parameter ini dalam skrip kami, kami boleh menggunakan kaedah pertama () yang disediakan oleh args (), seperti yang ditunjukkan di bawah:
seperti namanya, kaedah pertama () mengembalikan nilai
<code class="language-php">$macrame->preflight();</code>
pertama parameter. Sekiranya kita memanggil skrip seperti ini:
<code class="language-php">$macrame->exit();</code>
kemudian pertama () akan mengembalikan nilai "FirstUser". Jika kita mahu nilai terakhir, kita boleh menghubungi terakhir (). Jika kita mahu semua sebagai array, kita akan menggunakan semua ().
<code class="language-bash">chmod 755 ./examplescript.php ./examplescript.php</code>
Senarai kaedah penuh Parameter baris arahan pengendalian diperkenalkan dalam dokumen parameter MacRame.
Buat menu dinamik
<code class="language-bash">./examplescript.php --version # 或 ./examplescript.php -v</code>
menu macrame adalah dinamik;
<code class="language-bash">composer require gbhorwood/macrame</code>
Fungsi teras di sini adalah untuk memanggil yang berikut:
<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>
Kami menyediakan array rentetan sebagai pilihan menu, dan teks tajuk menu pilihan untuk menu ()-& gt; Pilihan pengguna akan dikembalikan sebagai rentetan.
Dengan menambah untuk memadam () ke rantai kami, anda juga boleh memilih untuk memadamkan menu dari skrin selepas pengguna membuat pilihan. Kaedah ini adalah pilihan, tetapi ia sememangnya boleh kemas.
Selepas mendapatkan fungsi menu, kita boleh mengubah cara untuk mendapatkan contoh Mastodon. Kami akan cuba membacanya dari parameter baris arahan.
<code class="language-php">#!/usr/bin/env php</code>
Secara lalai, MacRame menggunakan gaya lalai dan warna terminal untuk memaparkan menu, dan projek yang menyoroti paparan yang dipaparkan ditetapkan untuk paparan terbalik. Jika perlu, kita boleh mengubah tetapan ini dengan menambahkan beberapa fungsi tambahan ke rantai kami. Sebagai contoh, jika kita mahu menyerlahkan item yang dipaparkan yang dipaparkan sebagai teks merah tebal, kita boleh menulis ini:
<code class="language-php">$macrame = new Macrame("示例 Macrame 脚本");</code>
Halaman dokumen menu Gambaran keseluruhan lengkap semua kaedah yang boleh digunakan untuk menyesuaikan warna, gaya dan penjajaran menu adat.
Seterusnya, kami akan mengubah cara untuk mendapatkan nama pengguna supaya ia juga akan menerima input interaktif. Dalam kes ini, kami akan menggunakan input ()-& gt; Berikut adalah fungsi:
<code class="language-php">if ($macrame->running())</code>
Penerangan Tambahan Pengesahan Input
MacRame dilengkapi dengan banyak kaedah pratetap untuk mengesahkan input. Kami boleh menambah sebilangan pengesahan ke rantai kami. Input ()-& gt;
mari kita lihat contoh:
<code class="language-php">$macrame->preflight();</code>
Halaman Dokumen Input MacRame menyediakan senarai lengkap semua fungsi pengesahan pra -konstruktif. Jika kita mahu menulis peranti pengesahan tersuai kita sendiri, ia juga diperkenalkan di dalamnya.
Bagaimana dengan output "paparan belakang seperti titik"?
Untuk menyelesaikan masalah ini, MacRame menyediakan versi "paparan belakang berbentuk titik" bacaan (), yang dipanggil ReadPassword ().
<code class="language-php">$macrame->exit();</code>
Dalam contoh cara membaca garis teks pengguna, kami telah melihat sejumlah besar kod yang digunakan untuk menetapkan gaya teks segera. Mari kita pelajari secara terperinci.
MacRame membolehkan penggunaan kod ANSI untuk menetapkan gaya output teks terminal, yang membolehkan kita menggunakan gaya dan warna badan tebal dan badan serong ke teks kami.
Kami boleh melakukan operasi ini dalam skrip kami melalui dua cara. Terdapat beberapa cara, seperti gaya () dan warna () (atau warna ()), atau kita boleh menggunakan sistem tanda teks asas.
mari kita lihat kaedah pertama.
<code class="language-bash">composer require gbhorwood/macrame</code>
di sini, kami menggunakan kaedah Teks () MacRame untuk membuat objek "teks", kemudian gunakan gaya dan warna, dan akhirnya gunakan GET () untuk mengembalikannya sebagai rentetan.
Sila ambil perhatian bahawa kaedah gaya dan warna digunakan untuk semua teks dalam rentetan. Jika kita mahu mencampurkan gaya dan teks warna dengan teks tulen, kita perlu membuat banyak sub -string dan menyambungkannya bersama -sama. Ini mungkin sangat menyusahkan, terutamanya apabila berurusan dengan sejumlah besar teks.
atau, kita boleh menggunakan sistem markup MacRame untuk memudahkan tetapan gaya teks. Ini adalah contoh:
<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>
tanda akan menebal (tentu saja). Dokumen ini menyenaraikan senarai lengkap semua tanda.
Ini bermakna tanda bersarang tidak akan berfungsi seperti yang kita harapkan. Sebagai contoh, dalam contoh ini, tanda pertama akan ditutup
dan tanda:
<code class="language-php">#!/usr/bin/env php</code>
apakah yang seterusnya
<code class="language-php">$macrame = new Macrame("示例 Macrame 脚本");</code>
jalankan fungsi di latar belakang apabila pemuat animasi dipaparkan kepada pengguna
Atas ialah kandungan terperinci PHP: Menulis aplikasi baris arahan dengan MacRame. pt 1. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!