Залымдылықтарды басқару

PHP-де таңдау жасалған миллиондаған кітапханалар, фреймворктар және компоненттер бар. Сіздің жобауызды таңдау кезінде сіз көбінесе көптегенін пайдаланасыз — өйткені, олар жобауыздың бағдарлама қосымшалары. Соңғы уақытқа дейін PHP-де бұл жобауларды басқару үшін жоғары деңгейде өзгерістер жоқты. Оларды өзіңізді басқарсаңыз да, сізге автозагрузшыларды ешқашан талап етпейтінін де есептемену керек болады.

Қазіргі уақытта PHP үшін екі аса пакет басқару жүйесі бар — Composer және PEAR. Қазіршыда Composer PHP үшін ең көп пайдаланылатын пакет басқару жүйесі болып табылады, бірақ жаттама PEAR үшін есімі болды. PEAR тарихы мені білуді ұнайды, себебі сіз оны пайдаланбасаңыз да, онымен байланыс анықтамалар таба аласыз.

Composer және Packagist

Composer PHP үшін ұсынылатын тиімділікті басқару құралы. Жобауыздың қосымшаларын composer.json файлында көрсетіп, бірнеше оқиғалы командалармен Composer автоматты түрде жобауыздың қосымшаларын жүктеу және автозагрузшыларды орнататындығын байланайды. Composer, нода.жс-тің NPM және Ruby өзендегі Bundler теңіздеріне тура тартылатындай.

Composer-мен сәйкес жұмыс істеу үшін өз жобауыздың қосымшаларын composer.json файлында тізіп көрсетуіңіз келеді, және қарай бірнеше оқиғалы командалармен Composer жобауыздың қосымшаларын автоматты түрде жүктейді және автозагрузшыларды орнататындығын байланайды. Composer, нода.жс-тің NPM және Ruby-дің Bundler теңіздеріне тура тартылатындай.

Composer-мен сәйкес қосымшалармен сәйкес көрсетілген көптеген PHP кітапханалары бар және оларды жобауызда пайдалану үшін дайында дайын. Бұл “пакеттер” Packagist тақтасында тізімделеді — бұл Composer-мен сәйкес жұмыс істейтін PHP кітапханаларының ресми қорындырмасы.

Composer қалай орнату

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 тіркеу жасау

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 арқылы жалпы қосымшаларды басқару

Composer жалпы қосымшалар мен олардың бинарларымен де жұмыс істейді. Пайдалану өте оңай, тек global белгісімен команданы тағайындауыңыз көрсетілген болады. Мысалы, сіз PHPUnit орнату және оны жалпы болатын болмасаңыз, келесі команданы орындаңыз:

composer global require phpunit/phpunit

Бұл сіздің жалпы қосымшаларыңызды орналастыру үшін ~/.composer жатырмасын жасайды. Орнатылған пакеттердің бинарларын бар жерде пайдалану үшін сіз ~/.composer/vendor/bin жолын $PATH өрісіне қосарыс айтып көресіз.

PEAR

Кейбір PHP дамытуды бағдарлаушыларды қосымшаларды басқару үшін PEAR пакет басқарушысын қолдайтын. Ол Composer-ге сияқты әзірленген, бірақ кейбір айырмашылықтары бар.

PEAR көмекшіні өзіне айналдыру үшін өкілді пішімі бар пакетпен қамтылуын талап етеді, бұл айқын болары алдында пакетті пайдалану үшін PEAR-мен байланысын жасауы керек. PEAR-мен жұмыс істеу үшін PEAR-мен байланыстарын пайдалану мүмкін емес.

PEAR пакеттерін жергілікті орната алады, бұл оларды бір рет орнатқаннан кейін олар сервердегі барлық жобалар үшін қолжетімді болады. Бұл бір пакетпен бірде бірдей нұсқаны пайдаланатын көптеген жобалар бар болса, бірақ егер екі жоба арасында нұсқалардың қатынаулары пайда болса, сонда мәселе туындай алатын болуы мүмкін.

PEAR орнату үшін

PEAR-ты жүктеп алу және оны орындау үшін .phar орнатушыны жүктейсіз. PEAR дайында барлық жүйелер үшін егжей-егжейлі орнату нұсқаларын талап ететін көмекшілер бар.

Егер сіз Linux пайдалана болсаңыз, сіздің дистрибутивтік пакет басқарушысында қарай ала аласыз. Мысалы, Debian мен Ubuntu, міне, apt пакетінің php-pear пакеті бар.

Пакетті орнату жолдары

Егер пакет PEAR пакеттер тізімінде көрсетілген болса, онда оны қолданбаушы атауын көрсете отырып орнатуға болады:

pear install foo

Егер пакет басқа топпен ұсталған болса, сізге алдын-ала оны ұстауын жасау қажет пайда болады және орнату кезінде оны көрсету қажет. Бұл тақырыптың толық ақпараты үшін Көмекшіден топ пайдалану дайындамасы сілтемесіне көз жетіңіз.

Composer арқылы PEAR қосымшаларын басқару

Егер сіз 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();