PHP-де таңдау жасалған миллиондаған кітапханалар, фреймворктар және компоненттер бар. Сіздің жобауызды таңдау кезінде сіз көбінесе көптегенін пайдаланасыз — өйткені, олар жобауыздың бағдарлама қосымшалары. Соңғы уақытқа дейін PHP-де бұл жобауларды басқару үшін жоғары деңгейде өзгерістер жоқты. Оларды өзіңізді басқарсаңыз да, сізге автозагрузшыларды ешқашан талап етпейтінін де есептемену керек болады.
Қазіргі уақытта PHP үшін екі аса пакет басқару жүйесі бар — Composer және PEAR. Қазіршыда Composer PHP үшін ең көп пайдаланылатын пакет басқару жүйесі болып табылады, бірақ жаттама PEAR үшін есімі болды. PEAR тарихы мені білуді ұнайды, себебі сіз оны пайдаланбасаңыз да, онымен байланыс анықтамалар таба аласыз.
Composer PHP үшін ұсынылатын тиімділікті басқару құралы. Жобауыздың қосымшаларын composer.json
файлында көрсетіп, бірнеше оқиғалы командалармен Composer автоматты түрде жобауыздың қосымшаларын жүктеу және автозагрузшыларды орнататындығын байланайды. Composer, нода.жс-тің NPM және Ruby өзендегі Bundler теңіздеріне тура тартылатындай.
Composer-мен сәйкес жұмыс істеу үшін өз жобауыздың қосымшаларын composer.json
файлында тізіп көрсетуіңіз келеді, және қарай бірнеше оқиғалы командалармен Composer жобауыздың қосымшаларын автоматты түрде жүктейді және автозагрузшыларды орнататындығын байланайды. Composer, нода.жс-тің NPM және Ruby-дің Bundler теңіздеріне тура тартылатындай.
Composer-мен сәйкес қосымшалармен сәйкес көрсетілген көптеген PHP кітапханалары бар және оларды жобауызда пайдалану үшін дайында дайын. Бұл “пакеттер” Packagist тақтасында тізімделеді — бұл Composer-мен сәйкес жұмыс істейтін PHP кітапханаларының ресми қорындырмасы.
Composerды жүктеу үшін ең үздік жол — ресми нұсқауларды орындау жолдарын көру. Бұл орнатушының бұзылмауын не персоналданғанын тексеретіндіруді береді. Орнатушы, сіздің ағымдағы жұмыс директориясының ішіне composer.phar
бинарын орнатады.
Біз Composerды жалпы орнату (мысалы, /usr/local/bin
орталығында біреу) жайлы көмек тапсырарымыз. Бұған арналған, келесі команданы орындаңыз:
mv composer.phar /usr/local/bin/composer
Ескерту: Если yдeлeниe иcпoлнить нeвoзмoжнo из-зa oгрaничeний пpaв, тoптық команданы sudo
менен алып шығыңыз.
Локальді Composer орындалса, сіз php composer.phar
пайдаланасыз, жалпы орнатқандырау бойынша тек composer
болмайды.
Windows пайдаланушылары үшін ең оңай жол — ComposerSetup орнатушысын пайдалану, онда барлық жерде composer
деген атты шағып шақырып отырасыз. Бұл орнатушы өзгертушіден тазартып жаттығу туралы хабарлауы келеді мен сізге $PATH
орнатар және сізге команда жолында барлық каталогтан composer
деген атаумен шағып шақырып отырып отырып алу мүмкіндігін береді.
Composer, жобауыздың қосымшаларын composer.json
атауы файлында сақтау жасаушы. Сіз оны өзіңізді басқаруға болады, не болмаса Composer өзімен пайдалана аласыз. composer require
команда жобауызға қосымша қосатынды жасау және егер сізде composer.json
файл жоқ болса, ол жасалады. Жобауызға Twig қосу үшін міндетті команданы көрсетеміз.
composer require twig/twig:^2.0
Немесе composer init
командасы жобауыз үшін толық composer.json
файлын жасау үшін сізді рәсімдеуге рұқсат етеді. Сіз қанағаттан composer.json
файлын жасадыңыздын кейін, Composer-ге сіздің қосымшаларыңызды vendor/
көзінде жүктеу мен орнату үшін айтып болады. Бұл әрекет өзі жасалған composer.json
файлын қамтамасыз еске алсаңыз, болмаса composer.json
файлын бар боларға барлық жерге қосу үшін жаттырылатын жаттығу туралы көмек көрсетеді:
composer install
Сонымен әрекеттерді сіздің өзіңіз жасаған composer.json
файлының сізге көмек көрсетуі керек. PHP файлдың негізгі PHP файлына келісім көрсетіп отыру үшін бұл жолды қосыңыз; бұл PHP-ге сіздің жобауыздың қосымшалары үшін Composer автозагрузшысын пайдалануын айтар.
<?php
require 'vendor/autoload.php';
Енді сіз өзіңіздің жобауыздың қосымшаларын пайдалана аласыз және олар сұрау бойынша автозагрузкаланады.
Composer, сіз composer install
командасын орындадыңызда өзгерістерді жүктеу кезінде көмекші болады деп аталатын composer.lock
атауын жасайды. Егер сіз жобауызды басқа басқа адамдармен бөлісесіз, онда олар composer install
командасын орындағандарында сізге бірдей нұсқаларды көмекші болатынын көздегірлікке алады. Сіздің қосымшаларыңызды жаңарту үшін composer update
командасын орындаңыз. Өзгерістерді орнату кезінде composer update
командасын пайдаланбаңыз, тек composer install
командасын пайдаланыңыз, сонымен соңырауға кетпейсіздер, себебі сіздің бағдарламауызда өзгерістерге ұшырау көрсеткен қосымшаларды тауарға орнатуымыз келіп кете алады.
Бұл көмекші болады, егер сіздің нұсқауларыңызды өзгерткеніңізде. Мысалы, ~1.8
нұсқасы " 1.8.0
-дан жаңа не 2.0.x-dev
-тен кем" деп айтылады. Сіз 1.8.*
деп аталғанда, алдында барлық жоспарланған шектерге сай қосымшаларды жаңарту үшін Composer-дің composer update
командасын қолдануы мүмкін.
Жаңа нұсқалар туралы хабарлама алу үшін libraries.io веб-сервисті тіркеліп, оның қосымшаларды көмекшіде аударым жасайтынінізге болады және жаңартулар туралы хабарламаларды алу үшін сізге хабарлама жасауын жоспарлайды.
Local PHP Security Checker — бұл сіздің composer.lock
файлын тексеру жасайтын команда әзірлеу программасы, сізге сіздің қосымшаларыңызды жаңарту қажетпеуігі жайлы хабарлайды.
Composer жалпы қосымшалар мен олардың бинарларымен де жұмыс істейді. Пайдалану өте оңай, тек global
белгісімен команданы тағайындауыңыз көрсетілген болады. Мысалы, сіз PHPUnit орнату және оны жалпы болатын болмасаңыз, келесі команданы орындаңыз:
composer global require phpunit/phpunit
Бұл сіздің жалпы қосымшаларыңызды орналастыру үшін ~/.composer
жатырмасын жасайды. Орнатылған пакеттердің бинарларын бар жерде пайдалану үшін сіз ~/.composer/vendor/bin
жолын $PATH
өрісіне қосарыс айтып көресіз.
Кейбір PHP дамытуды бағдарлаушыларды қосымшаларды басқару үшін PEAR пакет басқарушысын қолдайтын. Ол Composer-ге сияқты әзірленген, бірақ кейбір айырмашылықтары бар.
PEAR көмекшіні өзіне айналдыру үшін өкілді пішімі бар пакетпен қамтылуын талап етеді, бұл айқын болары алдында пакетті пайдалану үшін PEAR-мен байланысын жасауы керек. PEAR-мен жұмыс істеу үшін PEAR-мен байланыстарын пайдалану мүмкін емес.
PEAR пакеттерін жергілікті орната алады, бұл оларды бір рет орнатқаннан кейін олар сервердегі барлық жобалар үшін қолжетімді болады. Бұл бір пакетпен бірде бірдей нұсқаны пайдаланатын көптеген жобалар бар болса, бірақ егер екі жоба арасында нұсқалардың қатынаулары пайда болса, сонда мәселе туындай алатын болуы мүмкін.
PEAR-ты жүктеп алу және оны орындау үшін .phar
орнатушыны жүктейсіз. PEAR дайында барлық жүйелер үшін егжей-егжейлі орнату нұсқаларын талап ететін көмекшілер бар.
Егер сіз Linux пайдалана болсаңыз, сіздің дистрибутивтік пакет басқарушысында қарай ала аласыз. Мысалы, Debian мен Ubuntu, міне, apt пакетінің php-pear
пакеті бар.
Егер пакет PEAR пакеттер тізімінде көрсетілген болса, онда оны қолданбаушы атауын көрсете отырып орнатуға болады:
pear install foo
Егер пакет басқа топпен ұсталған болса, сізге алдын-ала оны ұстауын жасау қажет пайда болады және орнату кезінде оны көрсету қажет. Бұл тақырыптың толық ақпараты үшін Көмекшіден топ пайдалану дайындамасы сілтемесіне көз жетіңіз.
Егер сіз Composer қолдана алатын болсаңыз және кейбір PEAR кодты орнату қаттық болса, сіз Composer-ді PEAR қосымшаларын басқару үшін пайдалана аласыз. Composer нұсқасы 2-ге PEAR репозиториялары дайында қолданбаушы репозиторияларды дайындамайды, сондықтан PEAR пакеттерін орнату үшін репозиторияны өзіңіз қосу қажет:
{
"repositories": [
{
"type": "package",
"package": {
"name": "pear2/pear2-http-request",
"version": "2.5.1",
"dist": {
"url": "https://github.com/pear2/HTTP_Request/archive/refs/heads/master.zip",
"type": "zip"
}
}
}
],
"require": {
"pear2/pear2-http-request": "*"
},
"autoload": {
"psr-4": {"PEAR2\\HTTP\\": "vendor/pear2/pear2-http-request/src/HTTP/"}
}
}
Алғандағы бөлім "repositories"
, Composer-ге бұл репозиторияны инициализациялау (немесе PEAR терминологиясы бойынша “айналдыру” деп аталады) қажет болатындықты айту үшін қолданылады. Сондай-а require
бөлімі пакет атын мысалдау:
pear-channel/package
“pear” префиксі айырмашылықтардан бұрын жаталатын болмасы үшін саналады, міне, мысалы, бір PEAR шаруашыны басқа пакеттердің поста аты боларымыз, онда шаруашының қысқа аты (немесе толық URL) пакетті қайда орнату көрсету үшін пайдаланылады.
Бұл код орнатылған кезде ол сіздің вендор директориясында қолжетімді болар және автоматты түрде Composer-дің автоматты орнатқышы арқылы қол жетімді:
vendor/pear2/pear2-http-request/pear2/HTTP/Request.php
Бұл PEAR пакетті пайдалану үшін оны мысалдау көрініз:
<?php
require __DIR__ . '/vendor/autoload.php';
use PEAR2\HTTP\Request;
$request = new Request();