داني / کلاید
پایانه فریمورک دوستداشتنی شما.
Requires
- php: >=8.0
Requires (Dev)
- phpstan/phpstan: ^1.8
- phpunit/php-code-coverage: ^9.2
- phpunit/phpunit: ^9
- squizlabs/php_codesniffer: ^3.7
README
پایانه فریمورک دوستداشتنی شما.
مدارک ناقص است ویکی این همچنان در حال کار است
هدف
یک فریمورک کوچک که سعی میکند از سر راه شما خارج شود و به شما کمک کند تا برنامههای خط فرمان را به سرعت بسازید.
سادهترین برنامه
انعطافپذیری فریمورک به شما اجازه میدهد تا برنامهها را به چندین روش بسازید، سادهترین روش در زیر نمایش داده شده است.
<?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 را اضافه میکند.
کمکها
این پروژه همچنین شامل برخی از کلاسهای کمکی برای چاپ جدولها، دعوتهای کاربر تعاملی، چاپ با استایل و اضافه کردن ایموجیها است.