کامپوزر Composer چیست؟
و چه کاربردی دارد؟!
کامپوزر به شدت از NPM نودجیاس و Bundler روبی الهام گرفته است.
کامپوزر توسط واسط خط فرمان اجرا میشود و وابستگیها را برای برنامه یا بهتر بگوییم، سورس کدشما نصب میکند. همچنین به شما این امکان را میدهد که بستههای موجود در Packagist را نصب کنید.
کامپوزر به عنوان بخش جداناپذیزی در بسیاری از پروژه ها php مثل لاراول استفاده شده است.
چارچوبهای مورد پشتیبانی
- سیمفونی
- لاراول
- کدایگنایتر
- کیک پی اچ پی
- فیول پی اچ پی
- دروپال
جالب است که بدانید، لوگوی کامپوزر (Composer به معنی آهنگساز بوده و برشخصی که موسیقی میسازد دلالت میکند) بیشتر یک رهبر ارکستر را نشان میدهد تا یک آهنگساز! هرچند که خیلی از افراد باور دارند که لوگو نشان دهندهی بتهوون است.
اطلاعات مفصل
Dependency Managment
ابتدا بهتر است که ابتدا با مفهوم Dependency Managment یا مدیریت وابستگیها آشنا شوید.
زمانی که ما اقدام به برنامهنویسی میکنیم، فارغ از اینکه از چه فریمورک یا زبان برنامهنویسی برای کدنویسی استفاده میکنیم، گاهیاوقات نیاز به استفاده از کدها، پکیجها، و لایبرریهای سایر برنامهنویسان که به صورت اپنسورس در اینترنت عرضه شدهاند داریم تا بتوانیم به جای آنکه خود اقدام به نوشتن مثلاً کلاس خاصی کنیم، از کدهایی که قبلاً توسط سایر توسعهدهندگان نوشته شده و آزمایش خود را پس دادهاند استفاده کنیم. به طور خلاصه، Composer ابزاری است که فرایند Dependency Management (مدیریت وابستگی) را برای توسعهدهندگان زبان برنامهنویسی PHP فراهم و تسهیل میکند.
حالا با تعریف بالا و هر آنچه که در ابتدای مقاله گفته شد، مفهوم Composer و کاربرد آن را بهتر درک خواهید کرد.
تاریخچهی Composer
کامپوزردر ابتدای ماه مارس سال ۲۰۱۲ به صورت رایگان توسط Nils Adermann و Jordi Boggiano با الهام از ابزارهای NPM و bundler روبی توسعه داده شده و به دنیا عرضه شد و تاکنون استقبال بسیار خوبی از این ابزار بهخصوص از طرف برنامهنویسان زبان برنامهنویسی PHP صورت گرفته است.
عملکرد کامپوزر
همانطور که در بالا گفته شد، کامپوزر یک ابزار کامندلاین میباشد که در آن با استفاده از یکسری دستورات از پیش تعریف شده، میتوان به مدیریت منابع خارجی برای استفاده در پروژهی خود پرداخت.
این ابزار برخلاف ابزارهایی همچون APT هرگز چیزی را به صورت گلوبال (سراسری) دانلود نمیکند بلکه این ابزار بر پایهٔ هر پروژه کار میکند. منظور این است که اگر شما در پروژهای، کتابخانهای را وارد کنید، آن کتابخانه فقط در همان پروژه قابل استفاده است و برای استفاده در پروژهی دیگر، بایستی در همان پروژه نیز دوباره کامپوزر اقدام به دانلود کتابخانه کند.
ممکن است این سؤال برای شما پیش بیاید که ابزار کامپوزر پکیجهای مورد نیاز را از کجا دانلود میکند؟!
منبع اصلی که کامپوزر از آن استفاده میکند، سایتی تحت عنوان Packagist است که به عنوان مخزن (Repository) پیشفرض پروژههای PHP میباشد؛ که توسعهدهنندگان فریمورکها و لایبرریهای مختلف، پروژههای خود را در آنجا آپلود کرده و از آن پس با استفاده از کامپوزر میتوان به کلیهی پکیجهای قرار گرفته روی این سایت دسترسی داشت.
دریافت پکیجهای وابسته، به صورت خوکار
اگر شما با استفاده از کامپوزر، از یک پکیج برای پروژه خودتان استفاده کرده باشید و این پکیج نیازمند پکیج دیگری باشد؛ Composer بدون دخالت شما آن را دانلود میکند و در پروژه قرار میدهد. بدین صورت، شما به هیچ عنوان نگران وابستگیهای کتابخانههایی که از آنها استفاده میکنید، نخواهید بود.
مدیریت بارگزاری کلاسها
یکی دیگر از وظایف Composer، مدیریت بارگزاری (Loadi) کلاسها میباشد و عملکرد آن به گونهای است که تنها زمانی یک کلاس لود خواهد شد که شما در کد آن را فراخوانی کرده باشید؛ این امر تاثیر بسیار زیادی در سرعت لود پروژهی شما خواهد داشت.
در پست بعدی، به آموزش نصب و استفاده از این ابزار خواهیم پرداخت!
نظرات ثبت شده بدون دیدگاه