PHPloy: ابزاری برای دیپلوی فایل‌های ریپازیتوری Git روی سرور

PHPloy: ابزاری برای دیپلوی فایل‌های ریپازیتوری Git روی سرور

PHPloy یک ابزار توسعه یافته با زبان PHP است که به دولوپرها این امکان را می‌دهد تا بتوانند فایل‌ها را از طریق پروتکل‌های انتقالِ فایلی همچون FTP و SFTP روی سرور دیپلوی کنند. همچنین در این ابزار، سیستم ورژن‌‌ کنترل Git نیز به کار گرفته شده است؛ این سیستم مشخص می‌کند که کدام فایل‌ها توسط دولوپر ویرایش، حذف یا اضافه شده‌اند و بر همین اساس، آن‌ها را روی سرور آپلود و یا از روی سرور حذف می‌کند. 

استفاده از این سیستم موجب صرفه‌جویی در زمان دولوپر می‌شود و این در حالی است که به‌کارگیری ابزارهای قدیمی‌‌تر برای آپلود هر فایلی از طریق این پروتکل‌ها بسیار زمان‌بر بودند؛ چرا که دولوپرها به جای آپلود فایل‌هایی که تغییرات در آن‌ها اعمال شده، مجبور به آپلود مجدد کل پروژه روی سرور می‌شدند.

نحوۀ کار این ابزار بدین صورت است که ابتدا وضعیت سرورهای ریموت را بررسی می‌کند و تنها فایل‌هایی که پس از آخرین دیپلویمنت روی آن‌ها تغییراتی اعمال شده است را روی سرور دیپلوی می‌کند. این ابزار از قابلیت Submodule در گیت نیز پشتیبانی می‌کند (Submodule این امکان را برای دولوپرها فراهم می‌کند تا بتوانند یک ریپازیتوری گیت را به‌ عنوان یک زیرگروه از ریپازیتوری گیت دیگر داشته باشند یا ریپازیتوری دیگری را به پروژهٔ خود اضافه کنند و در عین‌ حال، سورس‌کد پروژۀ خود را جداگانه نگاه دارند).

PHPloy همچنین این امکان را برای دولوپرها فراهم می‌کند تا در صورت نیاز بتوانند به نسخه‌های قبلی فایل‌های خود (قبل از اِعمال تغییر در آن‌ها) دسترسی داشته باشند. در ضمن، با استفاده از این ابزار امکان آپلود فایل روی چندین سرور نیز برای دولوپرها فراهم شده است (برای استفاده از PHPloy به نسخه‌های PHP 5.5 و Git 1.8 و یا نسخه‌های بالاتر نیاز است).

PHPloy چگونه کار می‌کند؟
با اجرای PHPloy فایلی تحت عنوان revision. در سرور دولوپر ذخیره می‌شود. این فایل شامل دیتا و اطلاعاتی از فایل‌ها است که تغییر یافته‌اند و روی سرور دیپلوی شده‌اند؛ این داده‌ها به صورت هَش رمزگذاری شده و در سرور ذخیره می‌شوند.

در صورتی که PHPloy اجرا شود، این ابزار، فایل هَش را دانلود کرده و تغییرات اعمال شده در آن (فایل‌ها) را با تغییراتی که دولوپر قصد دیپلوی آن‌ها را دارد، مقایسه می‌کند (بدین منظور که مشخص شود دولوپر قصد آپلود چه فایل‌هایی را دارا است). لازم به ذکر است که با اجرای این ابزار، به ازای تمام زیرماژول‌های موجود در ریپازیتوری دولوپر، فایل revision. نیز در سرور ذخیره می‌شود.