آموزش composer – قسمت اول – composer چیست؟

کار با ViewFlipper
اردیبهشت ۲۹, ۱۳۹۶
آموزش composer – قسمت دوم – آموزش استفاده از composer
خرداد ۱۴, ۱۳۹۶

با سلام و درود

در خدمتتون هستم با آموزش composer و در سری این مقالات شما را با ماهیت و نحوه استفاده از این ابزار کارآمد در برنامه نویسی php آشنا می کنم

مدیریت وابستگی (Dependency Management) چیست؟

پیش از اینکه ببینیم کامپوزر (composer) چیست، می بایست با مفهومی تحت عنوان مدیریت وابستگی (Dependency Management) آشنا شویم. زمانی که ما اقدام به برنامه نویسی می کنیم، فارغ از اینکه از چه فریم ورک یا زبان برنامه نویسی برای کدنویسی استفاده می‌کنیم گاهی اوقات نیاز به استفاده از کدها، پکیج ها، و لایبرری های سایر برنامه نویسان که به صورت متن باز در اینترنت عرضه شده‌اند داریم تا بتوانیم به جای آنکه خود اقدام به نوشتن کلاس خاصی کنیم، از کدهایی که قبلاً توسط سایر توسعه دهندگان نوشته شده و آزمایش خود را پس داده‌اند استفاده کنیم ، به این پکیج ها و لایبرری ها ، Dependency گفته می شود و مدیریت وابستگی ها (Dependency Management) در واقع یک نوع ابزار برای مدیریت این سورس کدهای استفاده شده در برنامه های برنامه نویسان است و در اکثر زبانهای برنامه نویسی یافت می شود؛ برای مثال ابزار NPM در Nodjs و bandler در Roby و همچنینcomposer در php  از انواع مدیریت وابستگی ها هستند

مدیریت وابستگی ها (Dependency Management) ابزاری است که فرایند مدیریت Dependency ها را برای ما تسهیل می کند.

برای آشنایی بیشتر با مفهوم مدیریت Dependency مثال ساده‌ای می زنیم. فرض کنید که شما قصد دارید یک پروژه برنامه نویسی php را انجام دهید و برای کدهای خود می خواهید از فریم ورک لاراول استفاده کنید. برای استفاده از این فریم ورک دو راه‌کار پیش رو است: اول اینکه به وب سایت رسمی این فریم ورک رفته و پکیج آن را دانلود کرده و درون پروژه خود قرار دهید اما با استفاده از این روش اگر بخواهید کدهای فریم ورک خود را آپدیت کنید چه راه‌کاری به ذهن شما می رسد؟ این این فرایند دانلود، کپی و پیست کردن را مجدد تکرار می‌کنید یا راه‌کار به مراتب بهتری هم هست؟ نکته مهم اینجا است که اگر شما روی پروژه ای کار کنید که به جای یک فریم ورک، از چندین فریم ورک مختلف در آن استفاده شده باشد کار شما به مراتب دشوار تر خواهد شد. این همان چالشی است که مفهوم مدیریت Dependency آن را حل می کند. در واقع، با استفاده از مفهوم Dependency Management می‌توان ماژول ها، پکیج ها و فریم ورک های مد نظر خود را به صورت به مراتب بهتری انجام داد. به عبارت دیگر، مدیریت منابع خارجی روش دانلود پکیج ها، آپدیت آن‌ها و … را استانداردسازی کرده و با استفاده از این رویکرد، مدیریت پروژه شما به مراتب آسان‌تر خواهد شد. حال که متوجه شدیم مدیریت Dependency چیست، اکنون می بایست با ابزاری آشنا شویم که این کار را به سادگی برای ما به انجام خواهد رساند و این ابزار چیزی نیست جزء Composer. کامپوزر (composer)  در ابتدای ماه مارس سال ۲۰۱۲ به صورت رایگان به دنیا عرضه شد و تاکنون استقبال بسیار خوبی از این ابزار به‌خصوص از طرف برنامه نویسان زبان برنامه نویسی PHP صورت گرفته است.

چرا از Composer استفاده می‌کنیم؟

در صورتی پروژه هایتان در PHP چند خطی و ساده هستند نیازی به Composer نخواهید داشت اما کارایی کامپوزر زمانی به چشم می آید که پروژه هایتان پیچیده شود و نیازمند کتابخانه‌های متعدد و حرفه‌ای زیادی شوید در این حالت Composer وظیفه مدیریت کتابخانه‌ها و بروز رسانی آن‌ها را بر عهده می‌گیرد. با این کار شما همیشه مطمئن هستید پروژه شما با بروز ترین کتابخانه‌ها در حال کار است و در صورت وجود اپدیت برای هر وابستگی (dependency) عملیات بروز رسانی نیز با یک خط دستور در Command line تمام سیستم‌های عامل به سادگی صورت می‌پذیرد.

Composer کار نصب کتابخانه‌های وابسته را نیز به سادگی انجام می‌دهد، به این معنا که اگر کتابخانه خاصی را می‌خواهید نصب کنید که خود نیازمند کتابخانه‌های دیگر است این عملیات به صورت کاملا خودکار انجام می‌پذیرد.

Composer هشدارهای لازم را نیز به کاربران هنگام نصب می‌دهد. مثلا اگر کتابخانه‌ای به PHP نسخه ۵٫۴ به بالا نیاز داشته باشد، و نسخه PHP نصب شده روی سیستم شما کمتر از ۵٫۴ باشد به شما هشدار می‌دهد.

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

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

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

کامپوزر (composer) پکیج های مورد نیاز را از کجا دانلود می کند؟

منبع اصلی که کامپوزر از آن استفاده می‌کند سایتی تحت عنوان Packagist.org است که به عنوان فضایی می باشد که توسعه دهندگان ، فریم ورک هایی که می‌نویسند را در آنجا آپلود کرده و از آن پس با استفاده از کامپوزر می‌توان به کلیه پکیج های قرار گرفته روی این سایت دسترسی داشت.

خلاصه

به طور خلاصه، کامپوزر(composer)  یک ابزار Command Line است که در آن با استفاده از یکسری دستورات از پیش تعریف شده، می‌توان به مدیریت منابع خارجی برای استفاده در پروژه خود پرداخت.

هدف از این مقاله آشنایی شما عزیزان با مفهوم کامپوزر (composer) بود و در مقاله بعدی با نصب و استفاده از کامپوزر بیشتر آشنا خواهید شد