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

 
Composer چه کاری انجام می دهد؟
 
در جهان PHP و تقریبا هر زبان دیگری راه حل هایی برای اجتناب از انجام کارهای معمول و تکراری وجود دارد، بسیاری از آنها را می توان بصورت رایگان در قالب متن باز دریافت کرد. بنابراین اگر می خواهید یک ایمیل HTML حرفه ای با PHP درست کنید احتمالا مجبور نخواهید شد که همه چیز را خودتان از هیچی بنویسید بلکه کتابخانه ایمیلی را در وب جستجو خواهید کرد، در این مورد PHPMailer بهترین گزینه خواهد بود که به پروژه خود اضافه خواهید کرد. در اینجا Composer وارد می شود: به جای اینکه لیستی از کتابخانه ها را بطور دستی دانلود و آنها را در یک پوشه مشخص قرار دهید، Composer تمام این کارها را سازماندهی می کند، تنها چیزی که Composer نیاز دارد تنها یک خط کد است، مثل دستور زیر:
 
کد
"phpmailer/phpmailer": "~5.2"
یا
کد
composer require phpmailer/phpmailer
 
این دستور ساده نسخه

کد
5.2.x
از PHPMailer را به پروژه شما اضافه می کند. Composer همچنین بررسی می کند که آیا سروری که در حال استفاده از آن هستید حداقل ویژگی مورد نیاز برای اجرا
کد
PHPMailer 5.2.x
را دارد، به عنوان مثال اجازه دهید فرض کنیم که این نسخه از PHPMailer به
کد
PHP 5.4
نیاز دارد اما شما نسخه
کد
PHP 5.3
را دارید، پس کاری که کامپوزر انجام می دهد این است که به شما هشدار می دهد. Composer همچنین تمام وابستگی های مورد نیاز برای یک کتابخانه خاصی را بطور خودکار دانلود می کند. شما قادر خواهید بود که از PHPMailer در هر کجای پروژه خود بدون انجام کار اضافی استفاده کنید. هر موقع شما مشاهده کردید که نسخه جدیدی از PHPMailer منتشر شده است، می توانید بدون نگرانی از اینکه چیزی خراب شود، تمام چیزها را تنها با یک دستور ساده آپدیت کنید.
 
نصب Composer
 
[تصویر:  logo-composer-transparent41.png]
 
نصب کامپوزر بسیار راحت است، مراحل نصب را می تواند از طریق ترمینال خود انجام داد. در این آموزش من از لینوکس استفاده می کنم پس اگر از ویندوز یا مک استفاده می کنید می توانید به راحتی با مراجعه به وب سایت getcomposer.org طریقه نصب بر روی پلتفرم های مختلف را مشاهده کنید. دستورات زیر را در ترمینال خود وارد کنید تا کامپوزر نصب شود:
 
کد
$ curl -s https://getcomposer.org/installer | php
$ sudo mv composer.phar /usr/local/bin/composer
 
[تصویر:  composer-install-linux.jpg]
 
خط اول باعث می شود که فایل
کد
composer.phar
در سیستم شما نصب شود. خط دوم فایل
کد
composer.phar
را در داخل bin منتقل می کند تا composer از هر جای سیستم قابل دسترسی باشد.
حال دستور زیر را اجرا کنید:
کد
$ composer

اگر دستور فوق را اجرا کردید و خروجی زیر را دریافت کردید، پس تبریک می گویم شما با موفقیت Composer را نصب کردید. اگر اینطور نیست مستندات کامپوزر را مطالعه کنید تا مشکل حل شود.
 
[تصویر:  composer-installed.jpg]


 
یک مثال واقعی
 
بعد از اینکه Composer را نصب کردید، یک پوشه جدید برای پروژه خود ایجاد کنید. اگر از لینوکس استفاده می کنید می توانید به صورت زیر پوشه ای جدید ایجاد کنید:
 
کد
$ mkdir test && cd test

 
[تصویر:  mkdir.jpg]
 
حال در داخل دایرکتوری
کد
test
فایل

کد
composer.json

را اضافه کنید و دستورات زیر را به آن اضافه کنید:
 
[تصویر:  nano.jpg]
 
به سینتکس توجه کنید! همانطور که می بینید این فایل یک JSON ساده است. این فایل شامل داده های ساخت یافته ای است که که به Composer می گوید که چه کاری را انجام دهد. در این مثال بسیار ساده، ما می خواهیم ابزار شگفت انگیز KINT را به پروژه خالی خود اضافه کنیم. بطور کلی KINT نسخه بهبود یافته
کد
var_dump()
یا
[/size]
کد
print()

است. حال مطمئن شوید که داخل پروژه خود

کد
cd

کرده اید، تا با دستور زیر به Composer بگوییم که تمام چیزهای مورد نیاز در فایل

کد
composer.json

را دانلود کند:
 
$ composer install
1
$ composer install
 
نتیجه بصورت زیر خواهد بود:
 
[تصویر:  composer-install.jpg]
 
توجه کنید که Composer پوشه

کد
vendor

را در پروژه شما ایجاد و KINT را دانلود کرده باشد! این پوشه را دستکاری نکنید، کامپوزر تمام کارها را از این پوشه انجام می دهد.
 
حال بیایید یک فایل

کد
index.php

را در ریشه پروژه خود درست کنیم، آن را باز کنید و کد ساده پی اچ پی زیر را وارد کنید و آن ذخیره کنید:
 
کد
<?php
require 'vendor/autoload.php';
<?php
 
 
این باعث می شود که

کد
Composer autoloader

اجرا شود. بنابراین این خط شامل تمام چیزهایی است که Composer آنها را در پروژه شما دانلود کرده است.
 
نگاهی به وب سایت KINT گیت هاب بیندازید تا متوجه شوید که KINT چطور کار می کند. این ابزار یک تابع کوتاه اما سودمندی را ارائه می دهد:
 
d()
1
d()
 
بنابراین با

کد
require

که قبلا در فایل

کد
index.php

اضافه کرده ایم می توانیم بطور مستقیم توسط کامپوزر این توابع را بارگذاری کنیم:
 
کد
d($any_variable);

 
خوب، جالب بود، مثالی دیگر را با هم کار کنیم. یک آرایه از داده ها را ایجاد کرده و از طریق KINT آن را نمایش دهید:
کد
 
<?php
require 'vendor/autoload.php';
$variable = array (12, 7, 'Hello', null, array(1, 2, 3));
// use KINT directly (which has been loaded automatically via Composer)
d($variable);
 
این فایل را با مرورگر خود باز کرده تا خروجی بصورت زیر به شما نمایش داده شود:
 
[تصویر:  kint.jpg]
 
به نظر من قطعا عملکرد این تابع خیلی بهتر از

کد
var_dump()

است! برای اینکه یک بسته دیگر را به پروژه خود اضافه کنیم، دستور زیر را به فایل

کد
composer.json

اضافه کنید:
 
کد
{
    "require": {
        "raveren/kint": "0.9",
        "phpmailer/phpmailer": "5.2.*"
    }
}
 
همانطور که حدس زده اید این باعث می شود که PHPMailer به پروژه ما اضافه شود، پس دستور زیر را اجرا کنید:
 
کد
$ composer update
 
[تصویر:  composer-update.jpg]
 
شما همچنین می توانید با مراجعه به وب سایت packagist.org بسته های عالی را دانلود کنید و از آن ها در برنامه های خود استفاده کنید، یک از پروژه های محبوبی که می توان در آن پیدا کرد Laravel است که آن را نیز می توان از طریق Composer نصب کرد. 🙂
 
خلاصه
 
اگر قبلا چیزی را با PHP نوشته باشید، به احتمال زیاد به این نتیجه رسیده اید که هر موقع می خواهید کارهای معمول و تکراری مثل احراز هویت کاربر، مدیریت دیتابیس یا درخواست مسیریابی را به پروژه خود اضافه کنید، مجبور هستید که چرخ را از ابتدا اختراع کنید و تمام مراحل ساخت را از اول پیاده سازی کنید. پی اچ پی در حال حاظر دارای تعداد انگشت شماری از فریم فرک های کامل است که تمام این مشکلات را حل می کند.
 
یکی از ابتکارات جهان پی اچ پی در سال های اخیر معرفی Composer است که وظیفه آن مدیرت پکیج ها می باشد. Composer بر خلاف ابزار PEAR دارای روند پیچیده ای نیست و کار کردن با آن بسیار راحت است. Composer تمام بسته های مورد نیاز برای پروژه شما را مدیریت می کند. به این معنی که کامپوزر تمام کتابخانه های مورد نیاز را دانلود و آنها را در یک محل ذخیره و مدیریت می کند.
 
این نوع از مدیریت برای وابستگی ها در پروژه مفهوم جدیدی نیست، در واقع، ایده ساخت کامپوزر از NPM که یک پکیج منیجر برای Node.js و Bundler برای Ruby آمده است.
 
شما همچنین ممکن است با PEAR کار کرده باشید. PEAR یک پکیج منیجر برای PHP است که برای چندین سال وجود داشته است که توسط توسعه دهندگان پی اچ پی برای تعدادی از دلایلی رها شده است. در مرحله اول بسیاری از کدهای PEAR به روز رسانی نشده اند و می شود گفت که تاریخ انقضای آنها تمام شده است. بنابراین کاری که Composer انجام می دهد این است که روشی برای استفاده مجدد هر نوع کد را فراهم می کند. به جای اینکه مجبور باشیم کدهای زیاد و اضافی بنویسیم، می توانید با این ابزار سریعا پکیج های محبوب و مورد نیاز را دانلود کنید.

منبع: http://baboon.ir