مدیریت وابستگی ها با Composer – مقدمه

مدیریت وابستگی ها با Composer – مقدمه

مقدمه

Composer ابزاری برای مدیریت وابستگی (dependency) در PHP است. این اجازه را می دهد تا کتابخانه های وابسته در پروژه خود را تعریف و آنها را در پرژه خود نصب کنید.

 

مدیریت وابستگی

composer مدیر بسته (package manager) نمی باشد. بلــه، با بسته ها یا کتابخانه ها معامله می کند، اما آنها برا بر اساس هر پروژه مدیریت می کند، آنها را در دایرکتوری (به عنوان مثال vendor) در پروژه نصب می کند. بطور پیشفرض هیچ چیزی را بصورت global نصب نمی کند. بنابریان یک ابزار برای مدیریت وابستگی ها می باشد.

این ایده جدید نمی باشد و Composer به شدت از node npm و ruby bundler الهام گرفته است. اما در حال حاضر چنین ابزاری برای پی اچ بی وجود ندارد.

مشکلاتی که Composer آنها را حل کرده است:

  1. شما پروژه ای دارید که به تعداد زیادی کتابخانه وابسته است.
  2. برخی از این کتابخانه ها به دیگر کتابخانه ها وابسته هستند.
  3. شما چیزی هایی را اعلان می کنید که به آن وابسته است.
  4. Composer نسخه ای که لازم به نصب است را پیدا می کند، و آنها را نصب می کند (به این معنی که آنها را دانلود می کند و در پروژه شما قرار می دهد).

 

اعلان وابستگی ها

بیایید فرض کنیم که شما پروژه ای دارید و نیاز به کتابخانه ای دارید که اجازه ورود به سیستم را بدهد. شاید تصمیم به استفاده از monolog کنید. به منظور اضافه کردن آن در پروژه، نیاز به ساخت یک فایل composer.json دارید تا وابستگی های پروژه را توصیف کند.

ما به سادگی بیان کردیم که پروژه نیاز به بسته monolog/monolog دارد، و هر نسخه ای که با 1.2 شروع شده باشد.

 

سیستم مورد نیاز

Composer برای اجرا حداقل به پی اچ پی نسخه ی 5.3.2 نیاز دارد. و چند تنظیم حساس پی اچ پی و flagهای کامپایل. ولی هنگام نصب، هر گونه ناسازگاری را نشان می دهد.

برای نصب بسته های از منابع بجای آرشیو zip، شما احتیاج به نسخه کنترل مثل git، svn یا hg دارید.

Composer یک پلت فرم چندگانه است و در Windows و Linux و OSX قابل اجرا است.

 

دانلود Composer اجرایی

بصورت محلی

در واقع برای اجرا Composer به دو چیز نیاز است. اولی، نصب Composer (دوباره، به این معنی که در پروژه خود دانلود کنید)

توجه داشته باشید که اگر به هر دلیلی قادر به نسب با دستور بالا نشدید، می توانید با php استفاده کنید:

این فقط باعث می شود که چند تنظیم PHP بررسی شود و آنگاه composer.phar را در دایرکتوری شما دانلود کند. این فایل یک Composer binary است. یک PHAR است، که یک فرمت آرشیو برای PHP است که در میان چیزهای دیگر کدام را اجرا کند.

شما می توانید Composer را در یک پوشه خاص با استفاده از install-dir-- و ارائه دایرکتوری مقصد نصب کنید. که می تواند یک مسیر نسبی یا متلق باشد.

 

بصورت کلی یا Global

شما می توانید این فایل را هر کجا که  می خواهید قرار دهید. اگر در PATH خود قرار دهید، می توانید بصورت global به آن دسترسی داشته باشید. در سیستم های unixy می توانید حتی بدون php آن را اجرا کنید.

می توانید این دستور را اجرا کنید تا از هر جای سیستم به composer دسترسی داشته باشید.

توجه داشته باشید که اگر به هر دلیلی قادر به نسب با دستور بالا نشدید، خط mv را دوباره با sudo اجرا کنید.

آنگاه، فقط می توانید با اجرای دستور composer بجای php composer.phar برنامه را اجرا کنید.

 

نصب در ویندوز

این راحت ترین روش برای نصب Composer روی سیستم است.

Composer-Setup.exe را دانلود و نصب کنید، که آخرین نسخه ی آن را دانلود می کند و در PATH قرار می دهد. بنابراین برای فراخوانی composer می توانید از هر جای دایکتوری به آن دسترسی داشته باشید.

 

نصب بطور دستی

به دایرکتوری دلخواه خود رفته و دستور زیر برای دانلود را اجرا کنید:

توجه داشته باشید که اگر به هر دلیلی قادر به نسب با دستور بالا نشدید، از http استفاده کنید یا php_openssl.dll را در php.ini خود فعال کنید

ساخت یک فایل composer.bat در کنار composer.phar:

 ترمینال جاری خود را بسته و با یک ترمینال جدید امتحان کنید:

 

استفاده از Composer

ما حال می توانیم از Composer برای نصب وابستگی های پروژه خود استفاده کنیم. اگر فایل composer.json را ندارید پس باید مراحل زیر را انجام دهید. برای استفاده از composer به فایل composer.json نیاز است. این فایل وابستگی های پروژه شما را توصیف می کند و می تواند شامل دیگر متادیتاها باشد.

قالب بندی JSON یک راه ساده برای نوشتن است. این اجازه را می دهد که بصورت تو در تو ساختار تعریف کنید.

یکی از چیزهایی که باید برای composer.json مشخص کنید مشخصه require است. این کار باعث می شود به سادگی به composer بگوید که چه بسته ای پروژه شما لازم دارد.

حال برای حل و دانلود وابستگی ها فرمان زیر را اجرا کنید:

اگر بصورت global نصب کرده اید نیاز به استفاده از phar نیست:

 

 

بارگزاری خودکار یا Autoloading

علاوه بر دانلود کتابخانه، Composer می تواند فایل براگزاری خودکار را فراهم کند تا تمام کلاس ها در هر کتابخانه ای دانلود شود. برای استفاده از آن، تنها کد زیر را به خود راه انداز اضافه کنید:

حال monolog شما اجرا می وشد. در پست بعدی بیشتر با composer آشنا می شویم.