داني/کلاید

v0.7.1 2024-07-18 05:22 UTC

README

پایانه فریم‌ورک دوست‌داشتنی شما.

PHPUnit PHPStan

مدارک ناقص است ویکی این همچنان در حال کار است

هدف

یک فریم‌ورک کوچک که سعی می‌کند از سر راه شما خارج شود و به شما کمک کند تا برنامه‌های خط فرمان را به سرعت بسازید.

ساده‌ترین برنامه

انعطاف‌پذیری فریم‌ورک به شما اجازه می‌دهد تا برنامه‌ها را به چندین روش بسازید، ساده‌ترین روش در زیر نمایش داده شده است.

<?php
if (php_sapi_name() !== 'cli') {
    exit;
}

require_once __DIR__ . '/vendor/autoload.php';

use Clyde\Application;
use Clyde\Commands\Command;

Application::create('devtool')
    ->about('A small developer tool to help do some cool things')
    ->version('1.0.0')
    ->author('dvnc0')
    ->website('https://github.com/dvnc0')
    ->command(
		Command::create('encode <string>')
		->about('Encode the passed string with base64')
		->action(function($args) {
			print(base64_encode($args['string']));
			exit(0);
		})
		->save()
	)
    ->run();

این عملکرد صفحات راهنمایی، مسیرها را ایجاد می‌کند و فرمان را با استفاده از php devtool encode "Hello World" پردازش می‌کند.

انعطاف‌پذیر است

انتظار می‌رود که متد Command یک Command_Object بازگرداند، این الگو برای دستورات و آرگومنت‌ها نیز پیروی می‌شود. این به شما اجازه می‌دهد تا ایجاد دستورات و آرگومنت‌ها را به کلاس‌های اضافی انتقال دهید اگر نیاز باشد. تا زمانی که دستورات یک Command_Object معتبر بازگردانند، همه چیز خوب خواهد بود. اساساً، برنامه یک مجموعه از اشیاء است.

دستورات

عملکردهای دستور باید از Clyde\Actions\Action_Base ارث ببرند یا یک تابع قابل فراخوانی باشند. توابع قابل فراخوانی یک آرایه از آرگومنت‌ها را دریافت خواهند کرد و کلاس‌هایی که از Action_Base ارث می‌برند یک شیء درخواست را دریافت خواهند کرد.

دستورات version و help به صورت خودکار اضافه می‌شوند. دستورات همچنین به صورت خودکار آرگومنت --help را دریافت می‌کنند که اطلاعات راهنمای آن‌ها را نمایش می‌دهد.

وظایف و اجرای وظیفه

دستورات می‌توانند وظایفی که از Clyde\Tasks\Task_Base ارث می‌برند را از طریق Task_Runner اجرا کنند. این کار وظیفه را به یک فرآیند جدید تقسیم می‌کند و در حالی که وظیفه در حال اجرا است، یک چرخه پیشرفت CLI را اضافه می‌کند.

کمک‌ها

این پروژه همچنین شامل برخی از کلاس‌های کمکی برای چاپ جدول‌ها، دعوت‌های کاربر تعاملی، چاپ با استایل و اضافه کردن ایموجی‌ها است.