> 백엔드 개발 > PHP 튜토리얼 > PHP : Macrame으로 명령 줄 응용 프로그램을 작성합니다. PT 1

PHP : Macrame으로 명령 줄 응용 프로그램을 작성합니다. PT 1

Patricia Arquette
풀어 주다: 2025-01-30 04:07:09
원래의
576명이 탐색했습니다.

PHP는 많은 관심을 끌 수있는 스크립트 언어는 아니지만 PHP는 터미널 응용 프로그램을 작성하기에 이상적인 선택이되는 많은 이상을 가지고 있기 때문에 동정심입니다.

이 일련의 기사는 마크라메 라이브러리를 사용하여 대화식 명령 줄 스크립트를 작성하는 방법을 소개합니다. 우리는 샘플 항목을 점차적으로 완료합니다. 스크립트는 처음부터 끝까지 Mastodon 사용자 추종자 목록을 얻습니다. 스타일, 애니메이션 로더를 사용자에게 표시 할 때 배경에서 기능을 실행하십시오.

마크라메에 대한 자세한 내용은 문서 사이트를 방문하십시오.

> 예제 우리가 완료 할 프로젝트는 Mastodon 사용자의 팔로워 목록을 반환하는 데 사용되는 간단한 명령 줄 스크립트입니다. 아래 그림과 같이 스크립트를 실행하십시오 실행 스크립트 작업에서 사용자는 동적 메뉴에서 필요한 Mastodon 인스턴스를 선택하고 사용자 이름을 무료 텍스트로 입력하고 스크립트는 데이터를 얻을 때 애니메이션 로더를 표시합니다. 출력은 아름다운 ASCII 스타일 테이블입니다.

이 단계를 건너 뛰고 자하는 사람은이 프로젝트의 전체 소스 코드가 GIST 형태로 제공됩니다.

개요 이 섹션에서 우리는 어떻게 소개 할 것인가 :

마크라메 설치 빈 스크립트를 만듭니다 명령 줄 매개 변수 를 읽으십시오 동적 메뉴를 만듭니다 사용자 입력 라인을 읽습니다 (선택적 확인)

출력 텍스트 스타일을 설정합니다

마크라메 설치 마크라메 설치 :

스크립트 프레임 워크를 만듭니다 마크라메를 설치 한 후 기본 "Hello World"스크립트를 설정하여 시작 모델로 사용할 수 있습니다. 기술적으로는이 프레임 워크가 필요하지 않지만 사용하면 스크립트가 더 안전하고 표준화됩니다. 코드를 살펴 보겠습니다 : php: writing command-line applications with macrame. pt 1 코드 라인은 많지 않지만 여기서 많은 일이 발생합니다. 자세히 살펴 보겠습니다.

이 줄은"Shebang "입니다. 기본적으로 Linux 운영 체제 에게이 스크립트를 실행할 통역사에게 알려줍니다. 이를 통해 먼저 PHP를 입력하지 않고도 스크립트를 실행할 수 있습니다. Shebang 은

Fire의 첫 번째 줄이 있어야합니다. <..>

여기서, 우리는 스크립트의 나머지 부분에서 사용할 마크라메 개체를 만듭니다. 매우 표준적인 콘텐츠. 유일한 흥미로운 부분은 매개 변수입니다. 이것은 우리에게 스크립트를 제공 할 운영 체제의 이름입니다. 예를 들어, 실행중인 프로세스 목록을 표시하기 위해 PS를 실행하면 스크립트 에이 이름이 표시됩니다.

이 문은 블록의 모든 코드가 스크립트가 명령 줄에서 실행될 때만 실행되도록합니다.

<code class="language-bash">composer require gbhorwood/macrame</code>
로그인 후 복사
로그인 후 복사
로그인 후 복사
명령 줄에 대한 PHP를 작성할 때 환경 제어는 우리가 가지고 있고 관리하는 웹 서버만큼 많지 않습니다. Preflicht ()는 로컬 PHP 환경을 호출합니다. 최소 요구 사항을 충족하지 않으면 스크립트가 종료되고 오류 메시지가 표시됩니다. 최소 요구 사항은 다음과 같습니다.

PHP 7.4

posix 확장 mbstring 확장
    PHP가 8.1에서 변경되었으므로 PHP 7.4 및 8.0에서 마크라메가 실행되지만 >> 참고 :
  • 는 PHP가 8.1에서 변경되었으므로 기호 문자열이 출력에서 ​​올바르게 정렬되지 않을 수 있습니다.
  • 이것은 스크립트를 깨끗하게 종료하고 성공 코드 0을 반환합니다. 또한 실행 중에 생성 된 임시 파일은 자동으로 삭제됩니다. PHP의 다이 () 대신 exit () 함수를 사용하는 것이 가장 좋습니다 run hello world 기본 "Hello World"스크립트를 작성한 후 실행을 허용하여 명령 줄에서 실행할 수있는 권한을 설정할 수 있습니다.
  • 매개 변수를 읽으십시오 macrame은 분석 및 읽기 명령 줄 매개 변수를위한 일련의 도구를 제공합니다. 간단한 것들부터 시작하겠습니다. 다음 명령을 사용하여 스크립트를 호출 할 때 버전 번호를 얻으십시오.
  • 이 상황의 경우 이러한 매개 변수가 존재하는지 확인하면됩니다.
우리는 마크라메 객체에서 args () 메소드를 호출 하여이 목적을 달성 할 수 있습니다. 매개 변수가 존재하는지 여부를 테스트하기 위해 다음과 같이 Endess () 메소드를 사용할 수 있습니다.

endess () 메소드 부울로 돌아갑니다. >??

<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>
로그인 후 복사
로그인 후 복사
로그인 후 복사
명령 줄 매개 변수를 사용하여 변수 값을 할당 할 수도 있습니다. 예를 들어, 사용자 이름 값을 설정하려면 사용자가 다음과 같이 스크립트를 호출 할 수 있기를 바랍니다.

스크립트 에서이 매개 변수의 값을 얻으려면 아래와 같이 args ()가 제공 한 첫 번째 () 메소드를 사용할 수 있습니다.

이름에서 알 수 있듯이, 첫 번째 () 메소드는 매개 변수의

그러면 첫 번째 ()는 "FirstUser"값을 반환합니다. 마지막 값을 원한다면 Last ()를 호출 할 수 있습니다. 배열로

모두를 원한다면 All ()를 사용합니다.
<code class="language-php">#!/usr/bin/env php</code>
로그인 후 복사
로그인 후 복사
이 모든 것을 합치면, 우리의 대본은 지금 이렇게 보입니다.

핸들링 명령 줄 매개 변수의 전체 메소드 목록은 Macrame 매개 변수 문서에 소개됩니다.

동적 메뉴를 만듭니다 우리는 또한 사용자가 대화식 방식으로 스크립트를 사용할 수 있기를 희망합니다. 명령 줄에서 매개 변수를 전달하지 않으면 데이터를 입력하라는 메시지가 표시됩니다. Mastodon 예제는 메뉴를 사용합니다.

마크라메 메뉴는 동적입니다. 사용자는 화살표 키를 사용하여 목록을 위아래로 이동 한 다음 키를 눌러 선택할 수 있습니다. <..> 메뉴를 사용자에게 표시하고 선택한 값의 값을 반환하는 함수를 작성하겠습니다.
<code class="language-bash">composer require gbhorwood/macrame</code>
로그인 후 복사
로그인 후 복사
로그인 후 복사
여기서 핵심 기능은 다음을 호출하는 것입니다.

우리는 메뉴 옵션으로 문자열 배열을 제공하고 menu ()-& gt의 선택적 메뉴 제목 텍스트를 제공하며 메뉴는 자동으로 사용자에게 표시됩니다. 사용자의 선택은 문자열로 반환됩니다.

rase ()에 체인에 추가하면 사용자가 선택한 후 화면에서 메뉴를 지우도록 선택할 수도 있습니다. 이 방법은 선택 사항이지만 실제로 깔끔 할 수 있습니다.
<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>
로그인 후 복사
로그인 후 복사
로그인 후 복사
메뉴 함수를 얻은 후 Mastodon 인스턴스를 얻는 방법을 수정할 수 있습니다. 값이 전달되지 않으면 MenuInstance () 함수가 호출됩니다.

메뉴 스타일의 보충 설명 기본적으로 마크라메는 터미널의 기본 스타일과 색상을 사용하여 메뉴를 표시하며 표시된 디스플레이를 강조 표시하는 프로젝트는 디스플레이를 리버스하도록 설정됩니다. 필요한 경우 체인에 몇 가지 추가 기능을 추가 하여이 설정을 변경할 수 있습니다. 예를 들어, 두꺼운 빨간색 텍스트로 표시된 표시된 항목을 강조하려면 다음을 쓸 수 있습니다.

메뉴 문서 페이지 사용자 정의 메뉴의 색상, 스타일 및 정렬 메소드를 사용자 정의하는 데 사용할 수있는 모든 메소드에 대한 완전한 개요입니다.

사용자 라인을 읽으십시오 다음으로, 우리는 인터랙티브 입력을 허용하도록 사용자 이름을 얻는 방법을 수정합니다. 이 경우 input ()-& gt를 사용하여 사용자 입력 텍스트 문자열을 읽습니다. 다음은 기능입니다 :

이 기능의 마지막 줄은 사용자와 문의하는 곳입니다. readline () 메소드는 선택 사항 $ 프롬프트 매개 변수를 허용합니다. 반환 값은 사용자가 입력 한 문자열입니다.

입력 검증의 보충 설명
<code class="language-php">#!/usr/bin/env php</code>
로그인 후 복사
로그인 후 복사
사용자는 실수를합니다. 이것이 입력 검증이 중요한 이유입니다.

마크라메에는 입력을 확인하기위한 많은 사전 설정 방법이 포함되어 있습니다. 검증 장치가 실패하면 시스템이 다시 입력하라는 메시지를 추가 할 수 있습니다. 입력 ()-& gt;

예를 살펴 보겠습니다 :

여기에서는 두 가지 검증 테스트를 적용합니다. 텍스트는 4 개 이상의 문자 여야하며 "@"기호를 포함 할 수 없습니다. 이 두 가지 확인 방법의 경우, 두 번째 매개 변수는 확인에 실패하면 사용자에게 표시 할 오류 메시지입니다.

macrame 입력 문서 페이지는 모든 사전 구성 검증 기능의 전체 목록을 제공합니다. 우리가 자신의 사용자 정의 검증 장치를 작성하려면 이에 도입됩니다.
<code class="language-php">$macrame = new Macrame("示例 Macrame 脚本");</code>
로그인 후 복사
"Point -Like Back Display"의 출력은 어떻습니까?

사용자가 비밀번호와 같은 민감한 데이터를 입력하는 경우 스파이트가 보지 않도록 키를 터미널에 다시 보여주지 않을 수도 있습니다.

이 문제를 해결하기 위해 Macrame은 readpassword ()라는 readline ()의 "포인트 형광 백 디스플레이"버전을 제공합니다.

readpassword () 각 버튼 읽기는 별 번호 형식으로 공개됩니다.

텍스트 스타일을 설정

사용자 텍스트 라인을 읽는 방법의 예에서는 프롬프트 텍스트 스타일을 설정하는 데 사용되는 많은 코드를 보았습니다. 자세히 연구합시다.

macrame을 사용하면 ANSI 코드를 사용하여 터미널 텍스트 출력 스타일을 설정하여 두꺼운 몸체의 스타일과 색상을 텍스트에 적용 할 수 있습니다.

우리는 두 가지 방법으로 스크립트 에서이 작업을 수행 할 수 있습니다. Style () 및 color () (또는 color ())와 같은 몇 가지 방법이 있거나 기본 텍스트 마크 시스템을 사용할 수 있습니다.

먼저 메소드를 살펴 보겠습니다.

여기서, 우리는 Macrame의 Text () 메소드를 사용하여 "텍스트"객체를 만들고 스타일과 색상을 적용한 다음 get ()를 사용하여 문자열로 반환합니다.

또는, 우리는 Macrame의 마크 업 시스템을 사용하여 텍스트 스타일 설정을 단순화 할 수 있습니다. 이것은 예입니다 :

과 사이의 텍스트는 물론 두껍게됩니다. 문서에는 모든 마크의 전체 목록이 나와 있습니다.

주목해야 할 것은 마크가 이전 마크를 모두 끄는 것입니다. 이는 ANSI 전송 코드의 동작 때문입니다.
<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>
로그인 후 복사
로그인 후 복사
로그인 후 복사
애니메이션 로더가 사용자에게 표시되면 백그라운드에서 함수를 실행합니다. 파일을 안전하게 쓰십시오 좋은 형식 출력으로 배열 데이터의 출력

pagling 디스플레이 긴 출력 기본 알림 레벨 출력

이 기사는 원래 Grant Horwood Technology 블로그 에 게시되었습니다.

위 내용은 PHP : Macrame으로 명령 줄 응용 프로그램을 작성합니다. PT 1의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
저자별 최신 기사
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿