هنگام انجام کارها یا آن ها را با عشق انجام دهید یا هرگز انجام ندهید.
این جمله از گاندی رضا را به این فکر فرو برده است که فکری برای انجام بسیاری از کارهای تکراری که باید بهطور متناوب انجام دهد بکند. بهعنوان مثال او از خط فرمان (command-line) خیلی استفاده میکند و همیشه آرزو داشت تا دستوراتی را خودش ایجاد و از آنها استفاده کند.
در این سؤال باید بههمراه او این آرزو را برآورده کنید.
پروژهی اولیه را از این لینک دانلود کنید.
برای اجرای پروژه، باید php
و composer
را از قبل نصب کرده باشید.
composer install
را در پوشهی اصلی پروژه برای نصب نیازمندیها اجرا کنید.در دایرکتوری اصلی پروژه، فایلی به نام qcli
وجود دارد که یک اسکریپت PHP است. از این فایل برای هندل کردن دستورات استفاده میشود. این فایل پس از دریافت دستور، پارامترهای ورودی را برای اجرا به متد run
کلاس QCli\Command
ارسال میکند.
در ابتدا باید برنامه را طوری پیادهسازی کنید که دستور make:command name sign
بهصورت پیشفرض در برنامه موجود باشد. name
نام کلاس دستور و sign
امضای دستور است. وظیفهی این دستور این است که دستورات دلخواه را در دایرکتوری core/Commands
ایجاد کند. قالب دستوراتی که ایجاد میشوند باید مطابق محتویات فایل stubs/command.stub
باشد:
فرض کنید دستور زیر در خط فرمان وارد میشود:
با اجرای دستور فوق، باید فایل CustomCommand.php
در مسیر core/Commands
ساخته شود:
همچنین ممکن است کلاسهایی بهصورت دستی (بدون استفاده از دستور پیشفرض make:command
) در مسیر core/Commands
ایجاد شوند. برنامه باید بتواند این دستورات را نیز شناسایی کند. تضمین میشود که این کلاسها نیز مطابق محتویات فایل stubs/command.stub
هستند.
اگر دستور ایجادشده در خط فرمان وارد شود، باید متد handle
از کلاس دستور اجرا شود، یعنی در مثال قبل اگر دستور زیر وارد شود:
باید عبارت Command custom:command is ready to implement
چاپ شود.
core
هستید. میتوانید فایلها و دایرکتوریهای جدیدی نیز در این دایرکتوری ایجاد کنید.QCli\Command
پیادهسازی کنید.پس از اعمال تغییرات، پوشهی core
را زیپ کرده و آپلود کنید.