Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ composer php

ОсвоСниС Composer: совСты ΠΈ ΠΏΡ€ΠΈΠ΅ΠΌΡ‹ использования

ΠŸΡ€Π΅Π΄Π»Π°Π³Π°ΡŽ читатСлям Β«Π₯Π°Π±Ρ€Π°Ρ…Π°Π±Ρ€Π°Β» ΠΏΠ΅Ρ€Π΅Π²ΠΎΠ΄ ΡΡ‚Π°Ρ‚ΡŒΠΈ Β«Mastering Composer – Tips and TricksΒ» Π·Π° авторством Bruno Skvorc.

Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ composer php. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ composer php. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ composer php. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ composer php. Π€ΠΎΡ‚ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ composer php

Composer ΠΏΡ€ΠΎΠΈΠ·Π²Π΅Π» Ρ€Π΅Π²ΠΎΠ»ΡŽΡ†ΠΈΡŽ Π² ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠΈ ΠΏΠ°ΠΊΠ΅Ρ‚Π°ΠΌΠΈ Π² PHP ΠΈ ΠΏΠΎΠΌΠΎΠ³ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ°ΠΌ ΠΏΠΎ всСму ΠΌΠΈΡ€Ρƒ ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ нСзависимый ΠΎΡ‚ Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊΠΎΠ² ΠΈ раздСляСмый ΠΊΠΎΠ΄. Но всС ΠΆΠ΅ ΠΌΠ°Π»ΠΎ ΠΊΡ‚ΠΎ Π²Ρ‹Ρ…ΠΎΠ΄ΠΈΡ‚ Π·Π° Ρ€Π°ΠΌΠΊΠΈ основ Π΅Π³ΠΎ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»Π°, Ρ‚Π°ΠΊ Ρ‡Ρ‚ΠΎ данная ΡΡ‚Π°Ρ‚ΡŒΡ постараСтся ΠΎΡΠ²Π΅Ρ‚ΠΈΡ‚ΡŒ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΏΠΎΠ»Π΅Π·Π½Ρ‹Π΅ ΠΏΡ€ΠΈΠ΅ΠΌΡ‹ Π΅Π³ΠΎ использования.

Π“Π»ΠΎΠ±Π°Π»ΡŒΠ½Π°Ρ установка (Global)

НСсмотря Π½Π° Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ данная опция доступно описана Π² Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΠΈ, Composer ΠΌΠΎΠΆΠ΅Ρ‚ (Π° Π² Π±ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²Π΅ случаСв Π΄ΠΎΠ»ΠΆΠ΅Π½) Π±Ρ‹Ρ‚ΡŒ установлСн глобально. Π“Π»ΠΎΠ±Π°Π»ΡŒΠ½Π°Ρ установка ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ вмСсто:

Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π² любом ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π΅ просто ввСсти:

Π­Ρ‚ΠΎ позволяСт ΠΎΡ‡Π΅Π½ΡŒ просто ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ Π½ΠΎΠ²Ρ‹Π΅ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Ρ‹ (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ create-project) Π² любом мСстС вашСй Ρ„Π°ΠΉΠ»ΠΎΠ²ΠΎΠΉ систСмы.

Для установки Composer глобально, слСдуйтС этим инструкциям.

ΠŸΡ€Π°Π²ΠΈΠ»ΡŒΠ½Π°Ρ установка зависимостСй

Just add the following to your composer.json file:

Но Π΄Π°Π½Π½Ρ‹ΠΉ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ ΠΈΠΌΠ΅Π΅Ρ‚ нСсколько нСдостатков. Π’ΠΎ-ΠΏΠ΅Ρ€Π²Ρ‹Ρ…, простой копипаст ΠΌΠΎΠΆΠ΅Ρ‚ привСсти ΠΊ возникновСнию ошибок. Π’ΠΎ-Π²Ρ‚ΠΎΡ€Ρ‹Ρ…, для Π½ΠΎΠ²ΠΈΡ‡ΠΊΠ° ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ Π½Π΅ ΠΎΡ‡Π΅Π²ΠΈΠ΄Π½ΠΎ, Π³Π΄Π΅ Ρ€Π°Π·ΠΌΠ΅ΡΡ‚ΠΈΡ‚ΡŒ Π΄Π°Π½Π½Ρ‹ΠΉ ΠΊΠΎΠ΄, Ссли Ρƒ Π½Π΅Π³ΠΎ ΠΈ Ρ‚Π°ΠΊ ΡƒΠΆΠ΅ имССтся ΠΎΠ±ΡˆΠΈΡ€Π½Ρ‹ΠΉ Ρ„Π°ΠΉΠ» composer.json, ΠΈ это Ρ‚Π°ΠΊΠΆΠ΅ привСсти ΠΊ ошибкС. НаконСц, Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ люди Π±ΡƒΠ΄ΡƒΡ‚ ΠΈΠΌΠ΅Ρ‚ΡŒ Π΄Π΅Π»ΠΎ с Composer Π²ΠΏΠ΅Ρ€Π²Ρ‹Π΅, Π° Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ ΠΈ Π²ΠΏΠ΅Ρ€Π²Ρ‹Π΅ столкнутся с ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ строкой. ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ Ρ…ΠΎΡ€ΠΎΡˆΠ΅ΠΉ ΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊΠΎΠΉ Π±ΡƒΠ΄Π΅Ρ‚ освСщСниС всСвозмоТных случаСв, Π² ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… Π½ΠΎΠ²ΠΈΡ‡ΠΊΠΈ ΠΌΠΎΠ³ΡƒΡ‚ Ρ‡ΡƒΠ²ΡΡ‚Π²ΠΎΠ²Π°Ρ‚ΡŒ сСбя Π½Π΅ΡƒΠ²Π΅Ρ€Π΅Π½Π½ΠΎ (Π΅ΡΡ‚ΡŒ Π»ΠΈ Ρƒ Π½ΠΈΡ… графичСский Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€ ΠΈΠ»ΠΈ ΠΎΠ½ΠΈ Π±ΡƒΠ΄ΡƒΡ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΊΠΎΠΌΠ°Π½Π΄Π½ΡƒΡŽ строку? Если Π²Ρ‚ΠΎΡ€ΠΎΠ΅, установлСн Π»ΠΈ Π² Π½Π΅ΠΉ тСкстовый Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€, ΠΈ Ссли Π΄Π°, Ρ‚ΠΎ ΠΊΠ°ΠΊΠΎΠΉ? ΠžΠ±ΡŠΡΡΠ½ΡΠ΅Ρ‚Π΅ Π»ΠΈ Π²Ρ‹ саму ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Ρƒ рСдактирования Ρ„Π°ΠΉΠ»Π°? А Ρ‡Ρ‚ΠΎ Ссли Ρ„Π°ΠΉΠ»Π° composer.json Π΅Ρ‰Ρ‘ Π½Π΅ сущСствуСт Π² ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π΅? ΠžΠΏΠΈΡΡ‹Π²Π°Π΅Ρ‚Π΅ Π»ΠΈ Ρ‚Π°ΠΊΠΆΠ΅ ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏ создания Π½ΠΎΠ²ΠΎΠ³ΠΎ Ρ„Π°ΠΉΠ»Π°?).

ΠΠ°ΠΈΠ»ΡƒΡ‡ΡˆΠΈΠΉ способ Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ Π½ΠΎΠ²ΡƒΡŽ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡ‚ΡŒ Π² Ρ„Π°ΠΉΠ» composer.json β€” это Π²ΠΎΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΠΉ require:

Π­Ρ‚ΠΎ Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ всС Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎΠ΅ Π² Ρ„Π°ΠΉΠ» зависимостСй, минуя Ρ€ΡƒΡ‡Π½ΠΎΠ΅ Π²ΠΌΠ΅ΡˆΠ°Ρ‚Π΅Π»ΡŒΡΡ‚Π²ΠΎ.

Если Π²Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ ΠΏΠ°ΠΊΠ΅Ρ‚Ρ‹ Π² Ρ€Π°Π·Π΄Π΅Π» require-dev, Π΄ΠΎΠ±Π°Π²ΡŒΡ‚Π΅ Π² ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ ΠΎΠΏΡ†ΠΈΡŽ —dev:

Π’Π°ΠΊΠΆΠ΅, ΠΊΠΎΠΌΠ°Π½Π΄Π° require ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… ΠΏΠ°ΠΊΠ΅Ρ‚ΠΎΠ² ΠΎΠ΄Π½ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎ, для этого просто Ρ€Π°Π·Π΄Π΅Π»ΠΈΡ‚Π΅ ΠΈΡ… ΠΏΡ€ΠΎΠ±Π΅Π»ΠΎΠΌ.

Π€Π°ΠΉΠ»Ρ‹ Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²ΠΎΠΊ

Π€Π°ΠΉΠ» composer.lock сохраняСт Ρ‚Π΅ΠΊΡƒΡ‰ΠΈΠΉ список установлСнных зависимостСй ΠΈ ΠΈΡ… вСрсии. Π’Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, Π½Π° ΠΌΠΎΠΌΠ΅Π½Ρ‚, ΠΊΠΎΠ³Π΄Π° вСрсии зависимостСй ΡƒΠΆΠ΅ Π±ΡƒΠ΄ΡƒΡ‚ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½Ρ‹, Π΄Ρ€ΡƒΠ³ΠΈΠ΅ люди, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π±ΡƒΠ΄ΡƒΡ‚ ΠΊΠ»ΠΎΠ½ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ваш ΠΏΡ€ΠΎΠ΅ΠΊΡ‚, ΠΏΠΎΠ»ΡƒΡ‡Π°Ρ‚ Ρ‚Π΅ ΠΆΠ΅ самыС вСрсии. Π­Ρ‚ΠΎ позволяСт ΡƒΠ±Π΅Π΄ΠΈΡ‚ΡŒΡΡ Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ, ΠΊΡ‚ΠΎ ΠΏΠΎΠ»ΡƒΡ‡Π°Π΅Ρ‚ ваш ΠΏΡ€ΠΎΠ΅ΠΊΡ‚, ΠΈΠΌΠ΅Π΅Ρ‚ β€œΠΏΠ°ΠΊΠ΅Ρ‚Π½ΠΎΠ΅ окруТСниС”, ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ‡Π½ΠΎΠ΅ Ρ‚ΠΎΠΌΡƒ, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ Π²Ρ‹ использовали ΠΏΡ€ΠΈ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ΅, ΠΈ ΠΏΠΎΠΌΠΎΠ³Π°Π΅Ρ‚ ΠΈΠ·Π±Π΅ΠΆΠ°Ρ‚ΡŒ ошибок, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΠΎΠ³Π»ΠΈ Π±Ρ‹ Π²ΠΎΠ·Π½ΠΈΠΊΠ½ΡƒΡ‚ΡŒ ΠΈΠ·-Π·Π° обновлСния вСрсий.

Π€Π°ΠΉΠ» composer.lock ΠΏΠΎΡ‡Ρ‚ΠΈ всСгда Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±Ρ‹Ρ‚ΡŒ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ Π² систСму контроля вСрсий (Π½Π΅ всСгда).

ВСрсионированиС

Π Π΅ΠΏΠ΅Ρ‚ΠΈΡ†ΠΈΠΈ (Dry Runs)

Π§Ρ‚ΠΎΠ±Ρ‹ просто ΠΏΠΎΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ, ΠΏΡ€ΠΎΠΉΠ΄Π΅Ρ‚ Π»ΠΈ установка Π½ΠΎΠ²Ρ‹Ρ… зависимостСй ΡƒΡΠΏΠ΅ΡˆΠ½ΠΎ, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ —dry-run для ΠΊΠΎΠΌΠ°Π½Π΄ install ΠΈ update. Composer Π² Π΄Π°Π½Π½ΠΎΠΌ случаС Π²Ρ‹Π²Π΅Π΄Π΅Ρ‚ всС ΠΏΠΎΡ‚Π΅Π½Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹Π΅ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹ Π±Π΅Π· нСпосрСдствСнного выполнСния самой ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹. Никаких Ρ€Π΅Π°Π»ΡŒΠ½Ρ‹Ρ… ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ Π² ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π΅ Π½Π΅ ΠΏΡ€ΠΎΠΈΠ·ΠΎΠΉΠ΄Π΅Ρ‚. Π­Ρ‚ΠΎΡ‚ ΠΏΡ€ΠΈΠ΅ΠΌ ΠΎΡ‚Π»ΠΈΡ‡Π½ΠΎ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ΠΈΡ‚ для тСстирования слоТных зависимостСй ΠΈ настройки ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ ΠΏΠ΅Ρ€Π΅Π΄ Ρ€Π΅Π°Π»ΡŒΠ½Ρ‹ΠΌ ΠΈΡ… внСсСниСм.

Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°

ПослСднСС, Π½ΠΎ Π½Π΅ ΠΌΠ΅Π½Π΅Π΅ Π²Π°ΠΆΠ½ΠΎΠ΅, Ρ‡Ρ‚ΠΎ ΠΌΡ‹ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΡƒΠΏΠΎΠΌΡΠ½ΡƒΡ‚ΡŒ β€” это ΠΊΠΎΠΌΠ°Π½Π΄Π° create-project.

Команда создания ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Π΅Ρ‚ Π² качСствС Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Π° имя ΠΏΠ°ΠΊΠ΅Ρ‚Π°, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΎΠ½Π° Π·Π°Ρ‚Π΅ΠΌ ΠΊΠ»ΠΎΠ½ΠΈΡ€ΡƒΠ΅Ρ‚ ΠΈ выполняСт composer install Π²Π½ΡƒΡ‚Ρ€ΠΈ Π½Π΅Π³ΠΎ. Π­Ρ‚ΠΎ ΠΎΡ‚Π»ΠΈΡ‡Π½ΠΎ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ΠΈΡ‚ для ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΎΠ² β€” Π½Π΅ Π½ΡƒΠΆΠ½ΠΎ большС ΠΈΡΠΊΠ°Ρ‚ΡŒ Url Π½ΡƒΠΆΠ½ΠΎΠ³ΠΎ ΠΏΠ°ΠΊΠ΅Ρ‚Π° Π½Π° GitHub, ΠΊΠ»ΠΎΠ½ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π΅Π³ΠΎ, самому ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄ΠΈΡ‚ΡŒ Π² ΠΏΠ°ΠΏΠΊΡƒ ΠΈ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ install.

ΠšΡ€ΡƒΠΏΠ½Ρ‹Π΅ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Ρ‹, Ρ‚Π°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ Symfony ΠΈ Laravel, ΡƒΠΆΠ΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ Π΄Π°Π½Π½Ρ‹ΠΉ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ для ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ своих Β«skeletonΒ» ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ, ΠΈ ΠΌΠ½ΠΎΠ³ΠΈΠ΅ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ Ρ‚Π°ΠΊΠΆΠ΅ ΠΏΡ€ΠΈΡΠΎΠ΅Π΄ΠΈΠ½ΡΡŽΡ‚ΡΡ.

НапримСр, Π² Laravel это ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ:

Π’ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ create-project ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‚ΡŒ Π΅Ρ‰Π΅ Π΄Π²Π° ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π°: ΠΏΡƒΡ‚ΡŒ, Π² ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π½ΡƒΠΆΠ½ΠΎ ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ (Ссли Π½Π΅ ΡƒΠΊΠ°Π·Π°Π½, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ имя ΠΏΠ°ΠΊΠ΅Ρ‚Π°), ΠΈ вСрсия (Π±ΡƒΠ΄Π΅Ρ‚ использована послСдняя, Ссли Π½Π΅ ΡƒΠΊΠ°Π·Π°Ρ‚ΡŒ).

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ

Composer: ΠΏΠ°ΠΊΠ΅Ρ‚Π½Ρ‹ΠΈΜ† ΠΌΠ΅Π½Π΅Π΄ΠΆΠ΅Ρ€ для PHP

ΠŸΠ°ΠΊΠ΅Ρ‚Π½Ρ‹ΠΉ ΠΌΠ΅Π½Π΅Π΄ΠΆΠ΅Ρ€ β€” это ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° для поиска ΠΈ установки Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊ ΠΏΠΎ ΠΈΡ… названию.

ΠŸΠ°ΠΊΠ΅Ρ‚Π½Ρ‹ΠΉ ΠΌΠ΅Π½Π΅Π΄ΠΆΠ΅Ρ€ избавляСт ΠΎΡ‚ нСобходимости ΡΠ°ΠΌΠΎΡΡ‚ΠΎΡΡ‚Π΅Π»ΡŒΠ½ΠΎ ΠΈΡΠΊΠ°Ρ‚ΡŒ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ, ΡΠΊΠ°Ρ‡ΠΈΠ²Π°Ρ‚ΡŒ, Ρ€Π°ΡΠΏΠ°ΠΊΠΎΠ²Ρ‹Π²Π°Ρ‚ΡŒ, Ρ€Π°Π·Ρ€Π΅ΡˆΠ°Ρ‚ΡŒ зависимости β€” всС эти Π·Π°Π΄Π°Ρ‡ΠΈ ΠΎΠ½ Π±Π΅Ρ€Ρ‘Ρ‚ Π½Π° сСбя.

Π§Ρ‚ΠΎ ΡƒΠΌΠ΅Π΅Ρ‚ ΠΏΠ°ΠΊΠ΅Ρ‚Π½Ρ‹ΠΉ ΠΌΠ΅Π½Π΅Π΄ΠΆΠ΅Ρ€?

Composer: ΠΏΠ°ΠΊΠ΅Ρ‚Π½Ρ‹ΠΉ ΠΌΠ΅Π½Π΅Π΄ΠΆΠ΅Ρ€ для PHP

Π’ PHP для управлСния Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ°ΠΌΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ ΠΏΠ°ΠΊΠ΅Ρ‚Π½Ρ‹ΠΉ ΠΌΠ΅Π½Π΅Π΄ΠΆΠ΅Ρ€ ΠΏΠΎΠ΄ Π½Π°Π·Π²Π°Π½ΠΈΠ΅ΠΌ Composer. Π­Ρ‚ΠΎ ΠΌΠΎΡ‰Π½Ρ‹ΠΉ ΠΈ ΡƒΠ΄ΠΎΠ±Π½Ρ‹ΠΉ инструмСнт, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΡ‚ навсСгда Π·Π°Π±Ρ‹Ρ‚ΡŒ ΠΏΡ€ΠΎ Π³ΠΎΠ»ΠΎΠ²Π½ΡƒΡŽ боль, ΡΠ²ΡΠ·Π°Π½Π½ΡƒΡŽ с поиском, установкой ΠΈ Ρ€Π°Π·Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ΠΌ зависимостСй Ρƒ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊ.

Как Π½Π°Ρ‡Π°Ρ‚ΡŒ Ρ€Π°Π±ΠΎΡ‚Ρƒ с Composer

Установка

Π˜Π½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΡ Π² ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π΅

ΠŸΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ сцСнария Π°Π²Ρ‚ΠΎΠ·Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ

autoload.php ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌ Β«Π°Π²Ρ‚ΠΎΠ·Π°Π³Ρ€ΡƒΠ·ΠΊΠΈΒ». Он ΠΏΠ΅Ρ€Π΅Ρ…Π²Π°Ρ‚Ρ‹Π²Π΅Ρ‚ ΠΎΠ±Ρ€Π°Ρ‰Π΅Π½ΠΈΠ΅ ΠΊ классам Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊ ΠΈ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ всС Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹Π΅ сцСнарии Β«Π½Π° Π»Π΅Ρ‚ΡƒΒ». Π§Ρ‚ΠΎΠ±Ρ‹ это всё Ρ€Π°Π±ΠΎΡ‚Π°Π»ΠΎ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡ΠΈΡ‚Π΅ autoload.php Π² вашСм сцСнарии:

Установка Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ ΠΈΠ· Composer

Composer скачиваСт ΠΈ устанавливаСт Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ ΠΏΠΎ ΠΈΡ… ΠΈΠΌΠ΅Π½ΠΈ. Π­Ρ‚ΠΎ ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ сначала Π½ΡƒΠΆΠ½ΠΎ Β«Π½Π°Π³ΡƒΠ³Π»ΠΈΡ‚ΡŒΒ» Π½ΡƒΠΆΠ½ΡƒΡŽ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΡƒ, ΠΏΠ΅Ρ€Π΅ΠΉΡ‚ΠΈ Π½Π° Π΅Ρ‘ сайт, ΠΈ Π½Π°ΠΉΡ‚ΠΈ Ρ‚Π°ΠΌ Π² описании Π΅Ρ‘ имя. НапримСр, Π½Π°Π·Π²Π°Π½ΠΈΠ΅ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ Ρ‚Π°ΠΊΠΈΠΌ: fzaninotto/faker

ΠŸΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ Π² сцСнариях

Π—Π°Ρ‚Π΅ΠΌ создаём Π½ΠΎΠ²Ρ‹ΠΉ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ Π²Π°Π»ΠΈΠ΄Π°Ρ‚ΠΎΡ€Π° ΠΈ Π²Ρ‹Π·Ρ‹Π²Π°Π΅ΠΌ Π΅Π³ΠΎ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ для ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡ΠΈ ΠΏΡ€Π°Π²ΠΈΠ» Π²Π°Π»ΠΈΠ΄Π°Ρ†ΠΈΠΈ ΠΈ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ Ρ„ΠΎΡ€ΠΌΡ‹. На этом всё.

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ

Composer для самых ΠΌΠ°Π»Π΅Π½ΡŒΠΊΠΈΡ…

Когда я ΠΏΠ΅Ρ€Π²Ρ‹ΠΉ Ρ€Π°Π· разбирался с composer, я набросал для сСбя ΠΌΠ°Π»Π΅Π½ΡŒΠΊΡƒΡŽ ΡˆΠΏΠ°Ρ€Π³Π°Π»ΠΊΡƒ ΠΈ Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ, спустя Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ врСмя ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²Π»ΡΡŽ Π΅Ρ‘ Π½Π° суд общСствСнности Π² нСсколько Π΄ΠΎΡ€Π°Π±ΠΎΡ‚Π°Π½Π½ΠΎΠΌ Π²ΠΈΠ΄Π΅.
Данная публикация Π°ΠΊΡ‚ΡƒΠ°Π»ΡŒΠ½Π°Ρ для Ρ‚Π΅Ρ…, ΠΊΡ‚ΠΎ Π² ΠΏΠ΅Ρ€Π²Ρ‹ΠΉ Ρ€Π°Π· столкнулся с Π½Π΅Π·Π°ΠΌΠ΅Π½ΠΈΠΌΡ‹ΠΌ ΠΌΠ΅Π½Π΅Π΄ΠΆΠ΅Ρ€ΠΎΠΌ ΠΏΠ°ΠΊΠ΅Ρ‚ΠΎΠ² для PHP.

Π˜Ρ‚Π°ΠΊ, Composer β€” ΠΌΠ΅Π½Π΅Π΄ΠΆΠ΅Ρ€ ΠΏΠ°ΠΊΠ΅Ρ‚ΠΎΠ² для PHP.

Для Ρ‡Π΅Π³ΠΎ Π½ΡƒΠΆΠ΅Π½ Composer ΠΈ ΠΏΡ€ΠΎΡΡ‚Π΅ΠΉΡˆΠΈΠΉ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ Π΅Π³ΠΎ использования

Π’ΠΎΠ·ΡŒΠΌΠ΅ΠΌ для ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π° этот ΠΏΡ€ΠΎΠ΅ΠΊΡ‚
Если Π² Π΄Π²ΡƒΡ… словах: Ρ‚ΠΎ это Π½Π°Π±ΠΎΡ€ скриптов для Ρ€Π°Π±ΠΎΡ‚Ρ‹ Π² VK API
БоотвСтствСнно, для Ρ€Π°Π±ΠΎΡ‚Ρ‹ этих скриптов Π½ΡƒΠΆΠ½ΠΎ нСсколько Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊ
Π‘ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ пСрСчислСны Π² Ρ„Π°ΠΉΠ»Π΅ composer.json β€” ΠΊΠ»ΡŽΡ‡Π΅Π²ΠΎΠΉ Ρ„Π°ΠΉΠ» ΠΏΡ€ΠΈ Ρ€Π°Π±ΠΎΡ‚Π΅ с composer

Π’ этом ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ 5 Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊ. БоотвСтствСнно, Ссли Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊ Ρ€Π΅ΡˆΠΈΡ‚ ΠΎΠΏΡƒΠ±Π»ΠΈΠΊΠΎΠ²Π°Ρ‚ΡŒ этот ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ Π½Π° github, Ρ‚ΠΎ Π΅ΠΌΡƒ достаточно Π·Π°ΠΊΠΈΠ½ΡƒΡ‚ΡŒ Π² Ρ€Π΅ΠΏΡƒ саму ΠΏΠ°ΠΏΠΊΡƒ со скриптами ΠΈ ΡΠΎΡΡ‚Π°Π²ΠΈΡ‚ΡŒ composer.json, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ Π±ΡƒΠ΄ΡƒΡ‚ описаны Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ, Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹Π΅ для Ρ€Π°Π±ΠΎΡ‚Ρ‹ этого ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°. ΠŸΡ€ΠΎΡΡ‚ΠΎΡ‚Π° ΠΎΡ‡Π΅Π²ΠΈΠ΄Π½Π°: Π² Ρ€Π΅ΠΏΡƒ Π½Π΅ Π½ΡƒΠΆΠ½ΠΎ вслСд Π·Π° Ρ„Π°ΠΉΠ»Π°ΠΌΠΈ ΠΏΡ€ΠΈΡ†Π΅ΠΏΠΎΠΌ Ρ‚Π°Ρ‰ΠΈΡ‚ΡŒ всС Π½ΡƒΠΆΠ½Ρ‹Π΅ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ. Π—Π°Π½ΠΈΠΌΠ°Π΅Ρ‚ мСньшС мСста, ΠΏΡ€ΠΎΡ‰Π΅ Ρ€Π°ΡΠΏΡ€ΠΎΡΡ‚Ρ€Π°Π½ΡΡ‚ΡŒ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚.

Π’ ΠΏΠ°ΠΏΠΊΠ΅ scripts Π»Π΅ΠΆΠ°Ρ‚ нСпосрСдствСнно скрипты ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°, для Ρ€Π°Π±ΠΎΡ‚Ρ‹ ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… ΠΈ Ρ‚Ρ€Π΅Π±ΡƒΡŽΡ‚ΡΡ эти 5 ΠΏΠ°ΠΊΠ΅Ρ‚ΠΎΠ².

ЗапускаСм установку ΠΏΠ°ΠΊΠ΅Ρ‚ΠΎΠ²:

ПослС установки появляСтся ΠΏΠ°ΠΏΠΊΠ° vendor, ΠΊΡƒΠ΄Π° ΡΠΊΠ»Π°Π΄Ρ‹Π²Π°ΡŽΡ‚ΡΡ установлСнныС ΠΏΠ°ΠΊΠ΅Ρ‚Ρ‹ ΠΈ формируСтся Ρ„Π°ΠΉΠ» autoload.php

Π­Ρ‚ΠΎΡ‚ Ρ„Π°ΠΉΠ» ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π°Π΅ΠΌ ΠΊ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Ρƒ ΠΈ всё β€” Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½Ρ‹, ΠΌΠΎΠΆΠ½ΠΎ спокойно с Π½ΠΈΠΌΠΈ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ.

ΠŸΡ€ΠΎΡΡ‚ΠΎΡ‚Π° ΠΎΡ‡Π΅Π²ΠΈΠ΄Π½Π°: Π½Π΅ Π½ΡƒΠΆΠ½ΠΎ ΡΠΊΠ°Ρ‡ΠΈΠ²Π°Ρ‚ΡŒ ΠΈ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π°Ρ‚ΡŒ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ ΠΈ ΠΈΡ… зависимости ΡΠ°ΠΌΠΎΡΡ‚ΠΎΡΡ‚Π΅Π»ΡŒΠ½ΠΎ, composer всё сдСлаСт Π·Π° Вас. И вся эта ΠΏΠ°Ρ‡ΠΊΠ° ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ΡΡ ΠΎΠ΄Π½ΠΈΠΌ СдинствСнным Ρ„Π°ΠΉΠ»ΠΎΠΌ autoload.php
ВсС ΠΏΠ°ΠΊΠ΅Ρ‚Ρ‹, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π»Π΅ΠΆΠ°Ρ‚ Π² vendor, Π΄ΠΎΠ±Π°Π²Π»ΡΡŽΡ‚ΡΡ Π² Π°Π²Ρ‚ΠΎΠ·Π°Π³Ρ€ΡƒΠ·Ρ‡ΠΈΠΊ. ΠŸΡ€ΠΈ этом composer опираСтся Π½Π° Ρ„Π°ΠΉΠ»Ρ‹ composer.json, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π±Ρ‹Ρ‚ΡŒ Ρƒ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΠΏΠ°ΠΊΠ΅Ρ‚Π°. Π€ΠΎΡ€ΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ composer.json ΠΏΠ°ΠΊΠ΅Ρ‚Π° β€” это Π·Π°Π΄Π°Ρ‡Π° Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ° ΠΏΠ°ΠΊΠ΅Ρ‚Π°, ΠΎΡ‚ потрСбитСля ΠΏΠ°ΠΊΠ΅Ρ‚Π° трСбуСтся лишь ΠΎΠΏΠΈΡΠ°Ρ‚ΡŒ Π² composer.json ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°, ΠΊΠ°ΠΊΠΈΠ΅ ΠΏΠ°ΠΊΠ΅Ρ‚Ρ‹ Π½ΡƒΠΆΠ½ΠΎ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ.

Π­Ρ‚ΠΎ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ composer.json ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°:

Π­Ρ‚ΠΎ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ composer.json ΠΏΠ°ΠΊΠ΅Ρ‚Π°:

Π’ сСкции require прописана Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡ‚ΡŒ этого ΠΏΠ°ΠΊΠ΅Ρ‚Π° β€” Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° guzzle http, нСобходимая для Ρ€Π°Π±ΠΎΡ‚Ρ‹ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ getjump/vk. Π’ Π΄Π°Π½Π½ΠΎΠΌ случаС, Ρ‚.Π΅. с Ρ‚ΠΎΡ‡ΠΊΠΈ зрСния потрСбитСля ΠΏΠ°ΠΊΠ΅Ρ‚ΠΎΠ², всСвозмоТныС зависимости ΠΏΠ°ΠΊΠ΅Ρ‚ΠΎΠ² β€” это Π½Π΅ наша Β«Π·Π°Π±ΠΎΡ‚Π°Β», с зависимостями composer разбСрётся сам.

ΠŸΡ€ΠΎΡΡ‚Ρ€Π°Π½ΡΡ‚Π²ΠΎ ΠΈΠΌΡ‘Π½ ΠΏΠ°ΠΊΠ΅Ρ‚Π° прописано Π² сСкции autoload

getjump\\Vk\\ β€” Π½Π°ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½ΠΈΠ΅ пространства ΠΈΠΌΡ‘Π½
src/getjump/Vk/ β€” дирСктория, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ Π»Π΅ΠΆΠ°Ρ‚ Ρ„Π°ΠΉΠ»Ρ‹ с классами ΠΏΠ°ΠΊΠ΅Ρ‚Π°
Π Π°Π±ΠΎΡ‚Π° с этой Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΎΠΉ Π² ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π΅:

Core ΠΈ Friends β€” это классы Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Ρ€Π°Π·Π»ΠΎΠΆΠ΅Π½Ρ‹ ΠΈ прописаны Π² ΠΏΠ°ΠΏΠΊΠ΅ src Π² соотвСтствии со стандартом PSR-4. ΠžΠΏΡΡ‚ΡŒ ΠΆΠ΅ Ρ„ΠΎΡ€ΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ структуры ΠΏΠ°ΠΊΠ΅Ρ‚Π° β€” это Ρ€Π°Π±ΠΎΡ‚Π° создатСля ΠΏΠ°ΠΊΠ΅Ρ‚Π°.
Нам, ΠΊΠ°ΠΊ ΠΏΠΎΡ‚Ρ€Π΅Π±ΠΈΡ‚Π΅Π»ΡŽ ΠΏΠ°ΠΊΠ΅Ρ‚Π°, достаточно ΠΏΡ€ΠΎΠΏΠΈΡΠ°Ρ‚ΡŒ Π² наш ΠΏΡ€ΠΎΠ΅ΠΊΡ‚
include ‘../vendor/autoload.php’;
ΠΈ всС эти классы ΠΈ пространства ΠΈΠΌΡ‘Π½ Π±ΡƒΠ΄ΡƒΡ‚ ΠΎΡ‚Π»ΠΈΡ‡Π½ΠΎ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ.
ΠŸΡ€ΠΈ этом Π½Π°ΠΌ Π½Π΅ Π½ΡƒΠΆΠ½ΠΎ Π·Π°ΠΌΠΎΡ€Π°Ρ‡ΠΈΠ²Π°Ρ‚ΡŒΡΡ ΠΈ ΠΏΠΈΡΠ°Ρ‚ΡŒ Π°Π²Ρ‚ΠΎΠ·Π°Π³Ρ€ΡƒΠ·Ρ‡ΠΈΠΊ. Composer это сдСлаСт сам ΠΏΡ€ΠΈ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠΈ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ install.

Установка

Установка Composer глобально

1) Для Π½Π°Ρ‡Π°Π»Π° Π½ΡƒΠΆΠ½ΠΎ Ρ‡Ρ‚ΠΎ Π±Ρ‹ ΠΏΡƒΡ‚ΡŒ ΠΊ Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΠΈ с ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚Π°Ρ‚ΠΎΡ€ΠΎΠΌ PHP Π±Ρ‹Π» прописан Π² ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ окруТСния path.
ΠŸΡ€ΠΎΠ²Π΅Ρ€ΠΈΠΌ, Ρ‚Π°ΠΊ Π»ΠΈ это:
php –version

Π”Π°Π»Π΅Π΅ нас Π±ΡƒΠ΄Π΅Ρ‚ ΠΈΠ½Ρ‚Π΅Ρ€Π΅ΡΠΎΠ²Π°Ρ‚ΡŒ пСрСмСнная path:

ВписываСм ΠΏΡƒΡ‚ΡŒ ΠΊ ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚Π°Ρ‚ΠΎΡ€Ρƒ

*Π‘ Π΄Π°Π²Π½ΠΈΡ… Π²Ρ€Π΅ΠΌΡ‘Π½ Ρƒ мСня Π½Π° ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π΅ Π»Π΅ΠΆΠΈΡ‚ сборка xampp, сама сборка здСсь Π½Π°Ρ„ΠΈΠ³ Π½Π΅ Π½ΡƒΠΆΠ½Π°, Π° Π²ΠΎΡ‚ ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚Π°Ρ‚ΠΎΡ€ с Π½Π΅Ρ‘ Π²ΠΏΠΎΠ»Π½Π΅ ΠΏΠΎΠ΄ΠΎΠΉΠ΄Ρ‘Ρ‚ (вСрсия PHP – 5.6).

3) Π”ΠΎΠ±Π°Π²ΠΈΠΌ Π² ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ окруТСния path ΠΏΡƒΡ‚ΡŒ ΠΊ composer.bat, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ для D:\bin Π΄ΠΎΠ»ΠΆΠ½ΠΎ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒΡΡ:

Π”ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ ΠΌΠΎΠΆΠ½ΠΎ Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ Π² path
D:\Users\%userName%\AppData\Roaming\Composer\vendor\bin\
для Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎ-Π±Ρ‹ Π±Ρ‹Π»ΠΎ ΡƒΠ΄ΠΎΠ±Π½Π΅Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ инструмСнты, глобально установлСнныС Ρ‡Π΅Ρ€Π΅Π· Composer.
(Π£ мСня ΠΏΠ°ΠΏΠΊΠ° Users располагаСтся Π½Π° дискС D, Π° Π½Π° C создан симлинк Π½Π° Π½Π΅Ρ‘).
Всё, composer установлСн ΠΈ ΠΏΠΎΠ»Π½ΠΎΡΡ‚ΡŒΡŽ Π³ΠΎΡ‚ΠΎΠ² ΠΊ Ρ€Π°Π±ΠΎΡ‚Π΅.

Π•Ρ‰Ρ‘: ΠΏΡ€ΠΈ установкС ΠΌΠΎΠΆΠ½ΠΎ ΡΠ»ΠΎΠ²ΠΈΡ‚ΡŒ ΠΎΡˆΠΈΠ±ΠΊΡƒ
[RuntimeException]
The APPDATA or COMPOSER_HOME environment variable must be set for composer to run correctly
РСшСниС нашлось здСсь github.com/composer/composer/issues/2033
ДобавляСм ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ APPDATA со Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ΠΌ D:\Users\GSU\AppData\Roaming

Установка Composer локально

ΠžΡ‚Π»ΠΈΡ‡ΠΈΡ глобальной ΠΈ локальной установки

ΠšΠΎΠΌΠ°Π½Π΄Ρ‹ Π·Π°ΠΏΡƒΡΠΊΠ°ΡŽΡ‚ΡΡ ΠΏΠΎ Ρ€Π°Π·Π½ΠΎΠΌΡƒ ΠΏΡ€ΠΈ локальной ΠΈ глобальной установках:

НапримСр:
Π›ΠΎΠΊΠ°Π»ΡŒΠ½ΠΎ: php composer.phar require silex/silex

1.1
Π“Π»ΠΎΠ±Π°Π»ΡŒΠ½ΠΎ: composer require silex/silex

ΠŸΡ€ΠΈ глобальной установкС этот Ρ„Π°ΠΉΠ» Π½Π΅ Π½ΡƒΠΆΠ΅Π½. Composer запускаСтся ΠΏΡ€ΠΈ любой Ρ‚Π΅ΠΊΡƒΡ‰Π΅ΠΉ Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΠΈ.

ΠšΠΎΠΌΠ°Π½Π΄Ρ‹

Бинтаксис composer.json

ИмСнованиС ΠΏΠ°ΠΊΠ΅Ρ‚ΠΎΠ² ΠΈ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚Ρ‹ описания ΠΏΠ°ΠΊΠ΅Ρ‚ΠΎΠ²

Имя ΠΏΠ°ΠΊΠ΅Ρ‚Π° состоит ΠΈΠ· Π΄Π²ΡƒΡ… частСй Ρ€Π°Π·Π΄Π΅Π»Ρ‘Π½Ρ‹Ρ… косой Ρ‡Π΅Ρ€Ρ‚ΠΎΠΉ: названия поставщика (vendor name) ΠΈ названия Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ.

Если ΠΏΠ°ΠΊΠ΅Ρ‚ ΠΎΡ„ΠΎΡ€ΠΌΠ»Π΅Π½ Π² соотвСтствии со стандартом PSR-4, Π½ΠΎ ΠΎΠΏΡƒΠ±Π»ΠΈΠΊΠΎΠ²Π°Π½ Π½Π΅ Π½Π° packagist.org, Π° Π½Π° github, Ρ‚ΠΎ вмСсто вСрсии ΠΏΠ°ΠΊΠ΅Ρ‚Π° Π½ΡƒΠΆΠ½ΠΎ ΠΏΡ€ΠΎΠΏΠΈΡΠ°Ρ‚ΡŒ Π²Π΅Ρ‚ΠΊΡƒ ΠΈ Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΉ для этого ΠΏΠ°ΠΊΠ΅Ρ‚Π°:

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ, которая Π»Π΅ΠΆΠΈΡ‚ Π½Π° github, Π½ΠΎ ΠΏΡ€ΠΈ этом Π½Π΅ ΠΎΡ„ΠΎΡ€ΠΌΠ»Π΅Π½Π° ΠΏΠΎ стандарту PSR-4, Π° прСдставляСт ΠΈΠ· сСбя ΠΎΠ±Ρ‹ΠΊΠ½ΠΎΠ²Π΅Π½Π½ΠΎΠ΅ Π½Π°Π³Ρ€ΠΎΠΌΠΎΠΆΠ΄Π΅Π½ΠΈΠ΅ Ρ„Π°ΠΉΠ»ΠΎΠ² с классами ΠΈ функциями.

Pqr/superlib β€” эта Ρ‚Π° самая Β«Π½Π΅ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½Π°ΡΒ» Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ°.

Π’ сСкции repositories для Π½Π΅Ρ‘ пишСм Ρ‚Π°ΠΊΡƒΡŽ ΠΊΠΎΠ½ΡΡ‚Ρ€ΡƒΠΊΡ†ΠΈΡŽ

ΠšΠ»ΡŽΡ‡Π΅Π²ΠΎΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ‚ β€” сСкция autoload, здСсь ΡƒΠΊΠ°Π·Ρ‹Π²Π°Π΅ΠΌ Π½ΡƒΠΆΠ½Ρ‹Π΅ Π½Π°ΠΌ Ρ„Π°ΠΉΠ»Ρ‹ с классами ΠΈ функциями.
Π‘Ρ‚Ρ€ΡƒΠΊΡ‚ΡƒΡ€Π° Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ:

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ

ΠŸΠΎΠ΄Π΅Π»ΠΈΡ‚ΡŒΡΡ

doctor Brain

ΠΌΠΈΡ€ Π³Π»Π°Π·Π°ΠΌΠΈ Π²Π΅Π±-Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ°

Π‘ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹ΠΉ PHP Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊ (composer)

ΠŸΠ°ΠΊΠ΅Ρ‚Π½Ρ‹ΠΉ ΠΌΠ΅Π½Π΅Π΄ΠΆΠ΅Ρ€ composer

врСмя чтСния 10 ΠΌΠΈΠ½.

Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ composer php. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ composer php. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ composer php. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ composer php. Π€ΠΎΡ‚ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ composer php

Π‘ΠΎΠ΄Π΅Ρ€ΠΆΠ°Π½ΠΈΠ΅

ΠŸΠ°ΠΊΠ΅Ρ‚Π½Ρ‹ΠΉ ΠΌΠ΅Π½Π΅Π΄ΠΆΠ΅Ρ€

ΠžΠ±Ρ‹Ρ‡Π½ΠΎ, Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎ Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½Π½Ρ‹ΠΉ Π±Π»ΠΎΠΊ ΠΊΠΎΠ΄Π° Ρ„ΠΎΡ€ΠΌΠΈΡ€ΡƒΠ΅Ρ‚ ΠΌΠ΅Ρ‚ΠΎΠ΄, Π³Ρ€ΡƒΠΏΠΏΠ° ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ² ΠΎΠ±ΡŠΠ΅Π΄ΠΈΠ½ΡΠ΅Ρ‚ΡΡ Π² составС ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠ³ΠΎ класса, Π½Π°Π±ΠΎΡ€ классов составляСт ΠΏΠ°ΠΊΠ΅Ρ‚.

ΠŸΠΎΠ²Ρ‚ΠΎΡ€Π½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹Π΅ ΠΏΠ°ΠΊΠ΅Ρ‚Ρ‹, Π² свою ΠΎΡ‡Π΅Ρ€Π΅Π΄ΡŒ, ΡΠ²Π»ΡΡŽΡ‚ΡΡ Ρ‡Π°ΡΡ‚ΡŒΡŽ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΎΠ², ΠΈ Π½Π΅ ΠΏΠΎΠ΄Π²Π΅Ρ€Π³Π°ΡŽΡ‚ΡΡ, ΠΏΡ€ΠΈ этом, ΠΌΠΎΠ΄ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΠΈ. Π’Π°ΠΊΠΈΠ΅ ΠΏΠ°ΠΊΠ΅Ρ‚Ρ‹ ΠΏΠΎΠ·ΠΎΠ²Π»ΡΡŽΡ‚ Ρ€Π΅ΡˆΠ°Ρ‚ΡŒ строго ΠΎΠΏΡ€Π΅Π΄Π»Π΅Π½Π½Ρ‹Π΅ Π·Π°Π΄Π°Ρ‡ΠΈ, обСспСчивая взаимодСйствиС с ΠΊΠ»ΠΈΠ΅Π½Ρ‚ΠΎΠΌ Ρ‡Π΅Ρ€Π΅Π· API.

ИспользованиС ΠΏΠ°ΠΊΠ΅Ρ‚ΠΎΠ² способствуСт соблюдСнию соврСмСнных ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏΠΎΠ² Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ³ΠΎ обСспСчСния, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, DRY: β€œDon’t Repeat Yourself”, Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ ΡƒΠΌΠ΅Π½ΡŒΡˆΠ°Ρ количСство Π΄ΡƒΠ±Π»ΠΈΡ€ΡƒΡŽΡ‰Π΅ΠΉΡΡ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ всСх Π²ΠΈΠ΄ΠΎΠ².

Π’ Π±ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²Π΅ случаСв, Ρƒ ΠΏΠ°ΠΊΠ΅Ρ‚ΠΎΠ² Π΅ΡΡ‚ΡŒ зависимости. Когда для Ρ€Π°Π±ΠΎΡ‚Ρ‹ β€œΠŸΠ°ΠΊΠ΅Ρ‚Π° A” трСбуСтся β€œΠŸΠ°ΠΊΠ΅Ρ‚ B”, ΠΌΡ‹ Π³ΠΎΠ²ΠΎΡ€ΠΈΠΌ, Ρ‡Ρ‚ΠΎ β€œΠŸΠ°ΠΊΠ΅Ρ‚ A” зависит ΠΎΡ‚ β€œΠŸΠ°ΠΊΠ΅Ρ‚Π° B”. Π”ΠΎΠ²ΠΎΠ»ΡŒΠ½ΠΎ часто для ΠΏΠ°ΠΊΠ΅Ρ‚Π° формируСтся Ρ†Π΅ΠΏΡŒ Ρ‚Π°ΠΊΠΈΡ… зависимостСй (β€œΠŸΠ°ΠΊΠ΅Ρ‚ A” зависит ΠΎΡ‚ β€œΠŸΠ°ΠΊΠ΅Ρ‚Π° B”, β€œΠŸΠ°ΠΊΠ΅Ρ‚ B” зависит ΠΎΡ‚ β€œΠŸΠ°ΠΊΠ΅Ρ‚Π° C”, список ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠΈΡ‚ΡŒ).

ΠŸΡ€Π΅Π΄ΡΡ‚Π°Π²ΡŒΡ‚Π΅, Ρ‡Ρ‚ΠΎ ΠΏΠ°ΠΊΠ΅Ρ‚Π½Ρ‹Ρ… ΠΌΠ΅Π½Π΅Π΄ΠΆΠ΅Ρ€ΠΎΠ² Π½Π΅ сущСствуСт. КакиС дСйствия Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΎΡΡƒΡ‰Π΅ΡΡ‚Π²ΠΈΡ‚ΡŒ, для Ρ‚ΠΎΠ³ΠΎ Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΠ±Π΅ΡΠΏΠ΅Ρ‡ΠΈΡ‚ΡŒ Ρ€Π°Π±ΠΎΡ‚ΠΎΡΠΏΠΎΡΠΎΠ±Π½ΠΎΡΡ‚ΡŒ β€œΠŸΠ°ΠΊΠ΅Ρ‚Π° A”, зависящСго ΠΎΡ‚ β€œΠŸΠ°ΠΊΠ΅Ρ‚Π° B”? Для Π½Π°Ρ‡Π°Π»Π° ΠΌΡ‹ скачаСм исходный ΠΊΠΎΠ΄ β€œΠŸΠ°ΠΊΠ΅Ρ‚Π° A”, послС Ρ‡Π΅Π³ΠΎ ΠΎΠ±Π½Π°Ρ€ΡƒΠΆΠΈΠΌ, Ρ‡Ρ‚ΠΎ Π΅Π³ΠΎ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ зависит ΠΎΡ‚ β€œΠŸΠ°ΠΊΠ΅Ρ‚Π° B”. ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ ΠΌΡ‹ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠΈΠΌ максимум усилий, для Ρ‚ΠΎΠ³ΠΎ Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π½Π°ΠΉΡ‚ΠΈ исходный ΠΊΠΎΠ΄ β€œΠŸΠ°ΠΊΠ΅Ρ‚Π° B”. Но Ρ‚Π°ΠΊΠΎΠΉ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΈ Π½Π΅ ΡΡ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ, ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ ΠΌΡ‹ Π½Π΅ ΡƒΠ²Π΅Ρ€Π΅Π½Ρ‹, Ρ‡Ρ‚ΠΎ Π² Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π΅ скачивания ΠΏΠΎΠ»ΡƒΡ‡ΠΈΠΌ Π½ΡƒΠΆΠ½ΡƒΡŽ Π²Π΅Ρ€ΡΠΈΡŽ β€œΠŸΠ°ΠΊΠ΅Ρ‚Π° B”. Π­Ρ‚Ρƒ ΠΈΡΡ‚ΠΎΡ€ΠΈΡŽ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠΈΡ‚ΡŒ, Π° ΠΎΠ½Π° касаСтся Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΎΠ΄Π½ΠΎΠΉ зависимости. ΠŸΡ€Π΅Π΄ΡΡ‚Π°Π²Π»ΡΠ΅Ρ‚Π΅, ΠΊΠ°ΠΊΠΈΠΌ ΠΊΠΎΡˆΠΌΠ°Ρ€ΠΎΠΌ обСрнСтся Π½Π°Π»ΠΈΡ‡ΠΈΠ΅ Ρƒ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎΠ³ΠΎ ΠΏΠ°ΠΊΠ΅Ρ‚Π° мноТСствСнных зависимостСй ΠΈΠ»ΠΈ ΠΈΡ… Ρ†Π΅ΠΏΠΎΡ‡ΠΊΠΈ.

Composer vs. PEAR

КоС-Ρ‡Ρ‚ΠΎ с Π½Π°Π·Π²Π°Π½ΠΈΠ΅ΠΌ PEAR Π±Ρ‹Π»ΠΎ Π΅Ρ‰Π΅ Π΄ΠΎ появляСния Composer. Π Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΈ PHP с ΠΌΠ½ΠΎΠ³ΠΎΠ»Π΅Ρ‚Π½ΠΈΠΌ стаТСм навСрняка Π·Π½Π°ΠΊΠΎΠΌΡ‹ с PEAR. Π­Ρ‚ΠΎΡ‚ ΠΏΡ€ΠΎΠ΄ΡƒΠΊΡ‚ сущСстуСт с 1999 Π³ΠΎΠ΄Π°. PEAR, ΠΊΠ°ΠΊ ΠΈ Composer, Π±Ρ‹Π» создан с Ρ†Π΅Π»ΡŒΡŽ развития инфраструктуры ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π½ΠΎΠ³ΠΎ использования ΠΏΠ°ΠΊΠ΅Ρ‚ΠΎΠ². Π’Π΅ΠΌ Π½Π΅ ΠΌΠ΅Π½Π΅Π΅, ΠΏΠΎ ряду ΠΏΡ€ΠΈΡ‡ΠΈΠ½ ΠΎΠ½ Π±Ρ‹Π» ΠΎΡ‚Π²Π΅Ρ€Π³Π½ΡƒΡ‚ сообщСством Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ²:

Composer

ЭкосистСма Composer содСрТит Π΄Π²Π΅ части:

ΠŸΠ°ΠΊΠ΅Ρ‚Π½Ρ‹ΠΉ ΠΌΠ΅Π½Π΅Π΄ΠΆΠ΅Ρ€ уровня ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ управляСт зависимостями Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π² ΠΏΡ€Π΅Π΄Π΅Π»Π°Ρ… ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°. Π­Ρ‚ΠΎ Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ ΠΎΠ±Π»Π΅Π³Ρ‡Π°Π΅Ρ‚ ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°ΠΌΠΈ ΠΈ прСдохраняСт Ρ€Π°Π±ΠΎΡ‡Π΅Π΅ мСсто ΠΎΡ‚ хранСния большого количСства Π½Π΅Π½ΡƒΠΆΠ½Ρ‹Ρ… Ρ„Π°ΠΉΠ»ΠΎΠ². ВсС Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹Π΅ ΠΏΠ°ΠΊΠ΅Ρ‚Ρ‹ хранятся Π² Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΠΈ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎΠ³ΠΎ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°.

ΠšΠ°ΠΆΠ΄Ρ‹ΠΉ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊ ΠΌΠΎΠΆΠ΅Ρ‚ Π²Ρ‹ΠΊΠ»Π°Π΄Ρ‹Π²Π°Ρ‚ΡŒ свои ΠΏΠ°ΠΊΠ΅Ρ‚Ρ‹ Π² Packagist. Π’ ΠΎΡ‚Π»ΠΈΡ‡ΠΈΠ΅ ΠΎΡ‚ PEAR, Π½Π΅Ρ‚ нСобходимости Π½Π°Π±ΠΈΡ€Π°Ρ‚ΡŒ ΠΊΠ°ΠΊΠΈΠ΅-Ρ‚ΠΎ голоса. Π’Π΅ΠΌ Π½Π΅ ΠΌΠ΅Π½Π΅Π΅, ΠΏΠΎΠΏΡƒΠ»ΡΡ€Π½ΠΎΡΡ‚ΡŒ вашСго ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° опрСдСляСтся собранными Π·Π²Π΅Π·Π΄Π°ΠΌΠΈ.

Packagist

Установка Composer

Π‘ΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‚ Π΄Π²Π° Π²Π°Ρ€ΠΈΠ°Π½Ρ‚Π° установки Composer: Π»ΠΎΠΊΠ°Π»ΡŒΠ½Ρ‹ΠΉ ΠΈ Π³Π»ΠΎΠ±Π°Π»ΡŒΠ½Ρ‹ΠΉ. Π˜ΡΡ…ΠΎΠ΄Ρ ΠΈΠ· ΠΏΡ€ΠΎΡ„Π΅ΡΡΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎΠ³ΠΎ ΠΎΠΏΡ‹Ρ‚Π°, ΠΌΡ‹ Ρ€Π΅ΠΊΠΎΠΌΠ΅Π΄ΡƒΠ΅ΠΌ Π²Ρ‹Π±Ρ€Π°Ρ‚ΡŒ Π³Π»ΠΎΠ±Π°Π»ΡŒΠ½ΡƒΡŽ установку: скорСС всСго Π’Ρ‹ Π±ΡƒΠ΄Π΅Ρ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Composer для управлСния зависимостями Π²ΠΎ всСх своих PHP-ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°Ρ…. Π“Π»ΠΎΠ±Π°Π»ΡŒΠ½Π°Ρ установка избавляСт ΠΎΡ‚ большого количСства Π½Π΅Π½ΡƒΠΆΠ½Ρ‹Ρ… Ρ…Π»ΠΎΠΏΠΎΡ‚ Π² пСрспСктивС.

Composer ΠΏΡ€Π΅Π΄Π»Π°Π³Π°Π΅Ρ‚ ΡƒΠ΄ΠΎΠ±Π½Ρ‹ΠΉ установщик, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ запускаСтся ΠΈΠ· ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ строки, Π°ΠΊΡ‚ΡƒΠ°Π»ΡŒΠ½ΡƒΡŽ Π²Π΅Ρ€ΡΠΈΡŽ ΠΌΠΎΠΆΠ½ΠΎ Π²Π·ΡΡ‚ΡŒ здСсь (Π² связи с Ρ‚Π΅ΠΌ, Ρ‡Ρ‚ΠΎ инсталяционный ΠΊΠΎΠ΄ мСняСтся ΠΏΠΎ ΠΌΠ΅Ρ€Π΅ Π²Ρ‹Ρ…ΠΎΠ΄Π° Π½ΠΎΠ²Ρ‹Ρ… вСрсий ΠΏΡ€ΠΎΠ΄ΡƒΠΊΡ‚Π°, Π½Π΅Ρ‚ смысла Π²Ρ‹ΠΊΠ»Π°Π΄Ρ‹Π²Π°Ρ‚ΡŒ Π΅Π³ΠΎ Π² этой ΡΡ‚Π°Ρ‚ΡŒΠ΅).

MacOS/Linux/Unix

Windows

Достаточно ΡΠΊΠ°Ρ‡Π°Ρ‚ΡŒ ΠΈ Π·Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ установщик для Windows.

ΠΠΊΡ‚ΡƒΠ°Π»ΡŒΠ½ΡƒΡŽ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ ΠΎ глобальном ΠΈ локальном Π²Π°Ρ€ΠΈΠ°Π½Ρ‚Π°Ρ… установкС Composer Π² Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½Ρ‹Ρ… систСмах ΠΌΠΎΠΆΠ½ΠΎ ΡƒΠ·Π½Π°Ρ‚ΡŒ здСсь.

ΠŸΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° установки

Если Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΠΎΠ΄ΠΎΠ±Π΅Π½ этому, установка Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½Π° Π²Π΅Ρ€Π½ΠΎ:

Π Π°Π±ΠΎΡ‚Π° с Composer

Π’Π΅ΠΏΠ΅Ρ€ΡŒ Composer Π³ΠΎΡ‚ΠΎΠ² ΠΊ Ρ€Π°Π±ΠΎΡ‚Π΅. Рассмотрим нСбольшой ΠΏΡ€ΠΈΠΌΠ΅Ρ€:

Допустим, ΠΌΡ‹ Π·Π°Π²Π΅Ρ€ΡˆΠΈΠ»ΠΈ Ρ€Π°Π±ΠΎΡ‚Ρƒ Π½Π°Π΄ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΎΠΌ, Π½ΠΎ для дСмонстрации Π΅Π³ΠΎ возмоТностСй ΠΊΠ»ΠΈΠ΅Π½Ρ‚Ρƒ Π½ΡƒΠΆΠ½ΠΎ ΡΠ³Π΅Π½Π΅Ρ€ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΡƒΠ» Π΄Π°Π½Ρ‹Ρ…: ΠΈΠΌΠ΅Π½Π° ΠΈ адрСса ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ. ΠšΠΎΠ½Π΅Ρ‡Π½ΠΎ, Π΅ΡΡ‚ΡŒ ΠΆΠ΅Π»Π°Π½ΠΈΠ΅, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Ρ‚Π°ΠΊΠΈΠ΅ Π΄Π°Π½Π½Ρ‹Π΅ Π²Ρ‹Π±ΠΈΡ€Π°Π»ΠΈΡΡŒ случайным ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ ΠΈ, Π²ΠΎΠΎΠ±Ρ‰Π΅, Π±Ρ‹Π»ΠΈ максимально ΠΏΠΎΡ…ΠΎΠΆΠΈ Π½Π° Ρ€Π΅Π°Π»ΡŒΠ½Ρ‹Π΅. Одно ΠΈΠ· Ρ€Π΅ΡˆΠ΅Π½ΠΈΠΉ: ΡΠ°ΠΌΠΎΡΡ‚ΠΎΡΡ‚Π΅Π»ΡŒΠ½ΠΎ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ массив ΠΈΠΌΠ΅Π½ ΠΈ адрСсов, Π° Π·Π°Ρ‚Π΅ΠΌ случайным ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ Π²Ρ‹Π±ΠΈΡ€Π°Ρ‚ΡŒ ΠΈΠ· Π½Π΅Π³ΠΎ значСния с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ array_rand(). НадСюсь, Π’Ρ‹ ΠΏΠΎΠ½ΠΈΠΌΠ°Π΅Ρ‚Π΅, Ρ‡Ρ‚ΠΎ это Π½Π΅ΠΏΡ€Π°ΠΊΡ‚ΠΈΡ‡Π½ΠΎΠ΅ ΠΈ скучноС Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅. А Ρ‡Ρ‚ΠΎ Π΄Π΅Π»Π°Ρ‚ΡŒ, Ссли Π½Π°ΠΌ понадобятся сотни ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΡ… Π΄Π°Π½Π½Ρ‹Ρ…? НуТно Π½Π°ΠΉΡ‚ΠΈ Π°Π»ΡŒΡ‚Π΅Ρ€Π½Π°Ρ‚ΠΈΠ²Π½ΠΎΠ΅ Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅.

Π”Π°Π²Π°ΠΉΡ‚Π΅ установим Faker с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Composer.

Из ΠΊΠΎΡ€Π½Π΅Π²ΠΎΠΉ Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΠΈ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΠΌ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ:

Для установки ΠΏΠ°ΠΊΠ΅Ρ‚Π° потрСбуСтся всСго лишь нСсколько сСкунд. Π—Π° это врСмя Composer скачаСт zip-Π°Ρ€Ρ…ΠΈΠ² Faker с GitHub ΠΈ создаст нСсколько Π²Π½ΡƒΡ‚Ρ€Π΅Π½Π½ΠΈΡ… Ρ„Π°ΠΉΠ»ΠΎΠ² ΠΈ ΠΏΠ°ΠΏΠΎΠΊ.

ПослС установки ΠΏΠ°ΠΊΠ΅Ρ‚Π° Π² Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΠΈ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° ΠΌΠΎΠΆΠ½ΠΎ ΠΎΠ±Π½Π°Ρ€ΡƒΠΆΠΈΡ‚ΡŒ Π½ΠΎΠ²Ρ‹Π΅ ΠΏΠ°ΠΏΠΊΠΈ ΠΈ Ρ„Π°ΠΉΠ»Ρ‹:

composer.json

Π­Ρ‚ΠΎΡ‚ Ρ„Π°ΠΉΠ» описываСт зависимости Π² ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π΅. Π­Ρ‚ΠΎ просто JSON-Ρ„Π°ΠΉΠ», Π΄Π΅ΠΌΠΎΠ½ΡΡ‚Ρ€ΠΈΡ€ΡƒΡŽΡ‰ΠΈΠΉ установлСнныС для Π΄Π°Π½Π½ΠΎΠ³ΠΎ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° ΠΏΠ°ΠΊΠ΅Ρ‚Ρ‹.

Рассмотрим Ρ‚Ρ€ΠΈ основныС ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ Composer:

composer require

Π’ случаС, ΠΊΠΎΠ³Π΄Π° ΠΏΡ€ΠΈ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠΈ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ composer require Π½Π΅ ΡƒΠΊΠ°Π·Π°Π½Π° нСобходимая вСрсия ΠΏΠ°ΠΊΠ΅Ρ‚Π°, происходит скачиваниС послСднСй доступной вСрсии.

Π’ этом случаС ΠΏΡ€ΠΎΠΈΠ·ΠΎΠΉΠ΄Π΅Ρ‚ Π½Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ скачиваниС ΠΏΠ°ΠΊΠ΅Ρ‚Π° установлСнной вСрсии, Π½ΠΎ ΠΈ ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ‚Π½ΠΎΠ΅ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΡ… Ρ„Π°ΠΉΠ»ΠΎΠ² Composer.

composer install

Π’ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ‚ вопрос: Π² Ρ‡Π΅ΠΌ различия?

Π­Ρ‚Π° ΠΊΠΎΠΌΠ°Π½Π΄Π° ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ Π² 3 случаях:

composer update

composer update Π½ΠΈΠΊΠΎΠ³Π΄Π° нСльзя ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π½Π° ΠΏΡ€ΠΎΠ΄Π°ΠΊΡˆΠ΅Π½Π΅

Как ΠΈΠ·Π±Π΅ΠΆΠ°Ρ‚ΡŒ Ρ‚Π°ΠΊΠΎΠΉ ситуации? Π Π΅ΠΊΠΎΠΌΠ΅Π½Π΄Π°Ρ†ΠΈΠΈ просты:

БоблюдСниС этих Π½Π΅Ρ…ΠΈΡ‚Ρ€Ρ‹Ρ… условий ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΡ‚ Π²Π°ΠΌ Π±Ρ‹Ρ‚ΡŒ ΡƒΠ²Π΅Ρ€Π΅Π½Π½Ρ‹ΠΌΠΈ Π² ΠΏΠΎΠ»Π½ΠΎΠΌ соотвСтствии пСрСносимых ΠΏΠ°ΠΊΠ΅Ρ‚ΠΎΠ².

composer.lock

Π’ Ρ‚ΠΎ врСмя, ΠΊΠ°ΠΊ composer.json опрСдСляСт состав ΠΏΠ°ΠΊΠ΅Ρ‚ΠΎΠ², Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹Ρ… для ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°, ΠΈ Π½Π°ΠΊΠ»Π°Π΄Ρ‹Π²Π°Π΅Ρ‚ ограничСния Π½Π° ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹Π΅ вСрсии ΠΏΠ°ΠΊΠ΅Ρ‚ΠΎΠ², composer.lock опрСдСляСт Ρ‚ΠΎΡ‡Π½Ρ‹Π΅ вСрсии ΠΏΠ°ΠΊΠ΅Ρ‚ΠΎΠ², установлСнных Π² ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π΅. Π˜Π½Ρ‹ΠΌΠΈ словами composer.lock сохраняСт Ρ‚Π΅ΠΊΡƒΡ‰Π΅Π΅ состояниС ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°. Π­Ρ‚ΠΎ ΠΎΡ‡Π΅Π½ΡŒ Π²Π°ΠΆΠ½Ρ‹ΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ‚, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π·Π½Π°Ρ‚ΡŒ.

Рассмотрим ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΡƒΡŽ ΡΠΈΡ‚ΡƒΠ°Ρ†ΠΈΡŽ. Π‘Π»ΡƒΡ‡Π°ΠΉΠ½ΠΎ ΠΈΠ· ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° ΡƒΠ΄Π°Π»ΠΈΠ»ΠΈ ΠΏΠ°ΠΏΠΊΡƒ vendor со всСми установлСнными ΠΏΠ°ΠΊΠ΅Ρ‚Π°ΠΌΠΈ. Π§Ρ‚ΠΎ Π΄Π΅Π»Π°Ρ‚ΡŒ? Достаточно Π·Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ composer install ΠΈ Π±ΡƒΠ΄ΡƒΡ‚ установлСны всС Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹Π΅ вСрсии ΠΏΠ°ΠΊΠ΅Ρ‚ΠΎΠ², ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹Ρ… Π² ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π΅.

Π­Ρ‚ΠΎ зависит ΠΎΡ‚ вСсьма простых условий:

Composer Π΄Π°Π΅Ρ‚ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹Π΅ свободы Π² использовании своих ΠΊΠΎΠΌΠ°Π½Π΄. Но сущСствуСт нСсколько ΠΏΡ€Π°Π²ΠΈΠ», ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π»ΡƒΡ‡ΡˆΠ΅ ΡΠΎΠ±Π»ΡŽΠ΄Π°Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΈΠ·Π±Π΅ΠΆΠ°Ρ‚ΡŒ нСприятныС ситуации:

Автозагрузка

Π’ нашСм случаС, для использования возмоТностСй ΠΏΠ°ΠΊΠ΅Ρ‚Π° Fake, достаточно просто ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ Π°Π²Ρ‚ΠΎΠ·Π°Π³Ρ€ΡƒΠ·Ρ‡ΠΈΠΊ:

послС этого Faker Π³ΠΎΡ‚ΠΎΠ² ΠΊ Ρ€Π°Π±ΠΎΡ‚Π΅:

БообщСство

Π˜Ρ‚Π°ΠΊ, Π’Ρ‹ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΠ»ΠΈ достатчныС знания ΠΎ ΠΌΠ΅Π½Π΅Π΄ΠΆΠ΅Ρ€Π΅ зависимостСй Composer. ΠŸΡ€ΠΈΡΡ‚ΡƒΠΏΠ°ΠΉΡ‚Π΅ ΠΊ Π΅Π³ΠΎ использованию Π² своих ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°Ρ…. МоТно Π³Π°Ρ€Π°Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ это Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ ΠΎΠ±Π»Π΅Π³Ρ‡ΠΈΡ‚ Π’Π°ΡˆΡƒ Ρ€Π°Π±ΠΎΡ‚Ρƒ, ΠΊΠ°ΠΊ Π»ΠΈΡ‡Π½ΡƒΡŽ, Ρ‚Π°ΠΊ ΠΈ Π² составС ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹. НС Π·Π°Π±Ρ‹Π²Π°ΠΉΡ‚Π΅ ΠΎΠ±Ρ€Π°Ρ‰Π°Ρ‚ΡŒΡΡ ΠΊ Packagist, ΠΏΠ΅Ρ€Π΅Π΄ Ρ‚Π΅ΠΌ ΠΊΠ°ΠΊ ΠΏΡ€ΠΈΡΡ‚ΡƒΠΏΠΈΡ‚ΡŒ ΠΊ созданию собствСнного Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»Π°. Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ всС возмоТности сообщСства.

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ

ΠŸΡ€ΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ ΠΈ использованиС Composer для PHP

Π’ настоящСС врСмя ΠΏΡ€ΠΈ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ соврСмСнных ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ ΠΏΠ°ΠΊΠ΅Ρ‚Π½Ρ‹Π΅ ΠΌΠ΅Π½Π΅Π΄ΠΆΠ΅Ρ€Ρ‹ для управлСния зависимостями. ΠŸΡ€ΠΈ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ΅ Π½Π° PHP ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ Composer. Если Π²Ρ‹ PHP-Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊ Ρ‚ΠΎ Π²Ρ‹ Π»ΠΈΠ±ΠΎ ΡƒΠΆΠ΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚Π΅ Composer, Π»ΠΈΠ±ΠΎ ΡƒΠΆΠ΅ Ρ‡Ρ‚ΠΎ-Ρ‚ΠΎ ΡΠ»Ρ‹ΡˆΠ°Π»ΠΈ ΠΎ Π½Ρ‘ΠΌ. А Ссли Π½Π΅ ΡΠ»Ρ‹ΡˆΠ°Π»ΠΈ, Ρ‚ΠΎ Π²Π°ΠΌ Π±ΡƒΠ΄Π΅Ρ‚ интСрСсно ΠΈ ΠΏΠΎΠ»Π΅Π·Π½ΠΎ ΠΏΡ€ΠΎΡ‡ΠΈΡ‚Π°Ρ‚ΡŒ Π΄Π°Π½Π½ΡƒΡŽ ΡΡ‚Π°Ρ‚ΡŒΡŽ. Π’ ΡΡ‚Π°Ρ‚ΡŒΠ΅ Π±ΡƒΠ΄ΡƒΡ‚ ΠΏΠΎΠΊΠ°Π·Π°Π½Ρ‹ практичСскиС ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρ‹ с ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½Π½Ρ‹ΠΌΠΈ ΡΠΊΡ€ΠΈΠ½ΡˆΠΎΡ‚Π°ΠΌΠΈ ΠΈ листингом ΠΊΠΎΠ΄Π°.

ΠŸΠ°ΠΊΠ΅Ρ‚Π½Ρ‹Π΅ ΠΌΠ΅Π½Π΅Π΄ΠΆΠ΅Ρ€Ρ‹ ΡƒΠΏΡ€ΠΎΡ‰Π°ΡŽΡ‚ установку ΠΈ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅ сторонних Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊ, ΠΎΡ‚ ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… зависит ваш ΠΏΡ€ΠΎΠ΅ΠΊΡ‚. Они ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‚ ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ ΠΈ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ ΡΡ‚ΠΎΡ€ΠΎΠ½Π½ΡŽΡŽ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΡƒ ΠΎΠ΄Π½ΠΎΠΉ ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΠΉ Π² консоли, послС Ρ‡Π΅Π³ΠΎ Π²Ρ‹ сразу ΠΆΠ΅ смоТСтС ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΡƒ (Π½Π°Π±ΠΎΡ€ классов) Π² своСм ΠΊΠΎΠ΄Π΅.

Composer β€” это ΠΏΠ°ΠΊΠ΅Ρ‚Π½Ρ‹ΠΉ ΠΌΠ΅Π½Π΅Π΄ΠΆΠ΅Ρ€, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ прСдоставляСт срСдства ΠΏΠΎ ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΡŽ зависимостями ΠΈ ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ΠΌ Π°Π²Ρ‚ΠΎΠ·Π°Π³Ρ€ΡƒΠ·ΠΊΠΎΠΉ Π² PHP-ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ. ΠŸΠ°ΠΊΠ΅Ρ‚Ρ‹ ΡƒΡΡ‚Π°Π½Π°Π²Π»ΠΈΠ²Π°ΡŽΡ‚ΡΡ Π²Π½ΡƒΡ‚Ρ€ΡŒ вашСго ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° ΠΈ доступны Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π² Π½Ρ‘ΠΌ.

Установка Composer

ΠžΡ„ΠΈΡ†ΠΈΠ°Π»ΡŒΠ½Π°Ρ страница, Π½Π° ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π½Π°ΠΉΡ‚ΠΈ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ ΠΏΠΎ установкС Composer, находится здСсь. Однако, Ссли Π²Ρ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚Π΅ ОБ Π½Π° Π±Π°Π·Π΅ GNU/Linux, Ρ‚ΠΎ ΠΏΡ€ΠΎΡ‰Π΅ всСго ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ Composer с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΏΠ°ΠΊΠ΅Ρ‚Π½ΠΎΠ³ΠΎ ΠΌΠ΅Π½Π΅Π΄ΠΆΠ΅Ρ€Π° вашСй ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½ΠΎΠΉ систСмы. НапримСр для Ubuntu:

sudo apt install composer

Для Windows-ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ придСтся Π²ΠΎΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ инструкциСй, ссылка Π½Π° ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ Π±Ρ‹Π»Π° Π΄Π°Π½Π° Π²Ρ‹ΡˆΠ΅.

ИспользованиС Composer

Если Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ сторонниС Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ, Ρ‚ΠΎ ΠΏΡ€ΠΈ создании ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° Π½Π° PHP ΠΈΠ»ΠΈ Π² ΡƒΠΆΠ΅ Π³ΠΎΡ‚ΠΎΠ²ΠΎΠΌ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π΅ Π²Π°ΠΌ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Composer для Π΄Π°Π½Π½ΠΎΠ³ΠΎ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°. Π˜Π½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΡ всСго лишь ΠΏΡ€Π΅Π΄ΠΏΠΎΠ»Π°Π³Π°Π΅Ρ‚ созданиС Ρ„Π°ΠΉΠ»Π° composer.json Π² ΠΊΠΎΡ€Π½Π΅ вашСго ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° с Π½ΡƒΠΆΠ½Ρ‹ΠΌΠΈ Π²Π°ΠΌ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π°ΠΌΠΈ. ΠŸΡ€ΠΎΡ‰Π΅ всСго это ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ Π² Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠΌ Ρ€Π΅ΠΆΠΈΠΌΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΠΉ composer init Π½Π°Ρ…ΠΎΠ΄ΡΡΡŒ Π² ΠΊΠΎΡ€Π½Π΅Π²ΠΎΠΉ Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΠΈ вашСго ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°

composer init

Π”Π°Π»Π΅Π΅ Π²Ρ‹ ΠΏΠ΅Ρ€Π΅ΠΉΠ΄Ρ‘Ρ‚Π΅ Π² ΠΈΠ½Ρ‚Π΅Ρ€Π°ΠΊΡ‚ΠΈΠ²Π½Ρ‹ΠΉ Ρ€Π΅ΠΆΠΈΠΌ Π³Π΅Π½Π΅Ρ€Π°Ρ†ΠΈΠΈ package.json, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ систСма Π²Π°ΠΌ задаст нСсколько ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΡ… вопросов:

Package name β€” Π½Π°Π·Π²Π°Π½ΠΈΠ΅ вашСго ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°(ΠΏΠ°ΠΊΠ΅Ρ‚Π°). ΠžΠ±Ρ‹Ρ‡Π½ΠΎ ΠΏΠΈΡˆΠ΅Ρ‚ΡΡ Π² Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π΅ /

, Π³Π΄Π΅ vendor β€” Π½Π°Π·Π²Π°Π½ΠΈΠ΅ ΠΎΡ€Π³Π°Π½ΠΈΠ·Π°Ρ†ΠΈΠΈ ΠΈΠ»ΠΈ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ°, Π° package β€” Π½Π°Π·Π²Π°Π½ΠΈΠ΅ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° ΠΈΠ»ΠΈ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ.

Description β€” описаниС прилоТСния.

Author β€” Π°Π²Ρ‚ΠΎΡ€ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°. ΠžΠ±Ρ‹Ρ‡Π½ΠΎ ΠΏΡ€Π΅Π΄Π»Π°Π³Π°Π΅Ρ‚ ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ ваши Π΄Π°Π½Π½Ρ‹Π΅ ΠΈΠ· Git. ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π½Ρ‹ΠΉ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ Nikolay Sergeychuk

Π”Π°Π»Π΅Π΅ задаст Π΅Ρ‰Π΅ нСсколько вопросов, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Ρ‚ΠΎΠΆΠ΅ ΠΌΠΎΠΆΠ½ΠΎ просто ΠΏΡ€ΠΎΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ, ΠΈ прСдоставит листинг Π³ΠΎΡ‚ΠΎΠ²ΠΎΠ³ΠΎ package.json.

Для ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π° я создам Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΡŽ для ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° ΠΈ ΠΏΠ΅Ρ€Π²Ρ‹ΠΌ Π΄Π΅Π»ΠΎΠΌ ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·ΠΈΡ€ΡƒΡŽ Π² Π½Ρ‘ΠΌ Composer

Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ composer php. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ composer php. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ composer php. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ composer php. Π€ΠΎΡ‚ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ composer php

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ Composer

Π’Π΅ΠΏΠ΅Ρ€ΡŒ Π² ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π΅ Π΅ΡΡ‚ΡŒ Ρ„Π°ΠΉΠ» package.json, Π² ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ Π΄ΠΎΠ±Π°Π²Π»ΡΡ‚ΡŒ списо зависимостСй.

Зависимости Π±Ρ‹Π²Π°ΡŽΡ‚ Π΄Π²ΡƒΡ… Ρ‚ΠΈΠΏΠΎΠ²: ΠΎΠ±Ρ‹Ρ‡Π½Ρ‹Π΅ ΠΈ дСвСлопСрскиС.

ΠžΠ±Ρ‹Ρ‡Π½Ρ‹Π΅ зависимости β€” это зависимости, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π±ΡƒΠ΄ΡƒΡ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ Π² исходном ΠΊΠΎΠ΄Π΅ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° ΠΈ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹ для Π΅Π³ΠΎ Ρ€Π°Π±ΠΎΡ‚Ρ‹. К Π½ΠΈΠΏ относятся Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Π΅ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π°Π΅ΠΌΡ‹Π΅ ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹Π΅ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ.

ДСвСлопСрскиС зависимости β€” зависимости, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π½ΡƒΠΆΠ½Ρ‹ лишь Π½Π° этапС написания ΠΊΠΎΠ΄Π° ΠΈ Π½Π΅ Π½ΡƒΠΆΠ½Ρ‹ Π² ΠΏΡ€ΠΎΠ΄Π°ΠΊΡˆΠ΅Π½Π΅. НапримСр Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ для тСстирования, Π½Π° ΠΏΡ€ΠΎΠ΄Π°ΠΊΡˆΠ΅Π½Π΅ ΠΎΠ½ΠΈ совсСм Π½Π΅ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹.

Для добавлСния зависимости ΠΊ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Ρƒ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅Π³ΠΎ Π²ΠΈΠ΄Π°

composer require somepackage/somepackage:someversion

НапримСр Π½Π°ΠΌ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π² ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π΅ ΡΠ³Π΅Π½Π΅Ρ€ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Ρ„Π°ΠΉΠ» для Excel, для этого Π½Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ Π±Ρ‹Π»ΠΎ Π±Ρ‹ Ρ€Π°Π·ΠΎΠ±Ρ€Π°Ρ‚ΡŒΡΡ ΠΊΠ°ΠΊ устроСны Ρ‚Π°ΠΊΠΈΠ΅ Ρ„Π°ΠΉΠ»Ρ‹ ΠΈ Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ ΠΊΠΎΠ΄, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π±ΡƒΠ΄Π΅Ρ‚ ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ Ρ‚Π°ΠΊΠΎΠΉ Ρ„Π°ΠΉΠ» β€” это всё ΠΎΡ‡Π΅Π½ΡŒ Π΄ΠΎΠ»Π³ΠΎ. Π‘ Composer ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ просто Π½Π°ΠΉΡ‚ΠΈ Π³ΠΎΡ‚ΠΎΠ²ΡƒΡŽ Π±ΠΈΠ»Π±ΠΈΠΎΡ‚Π΅ΠΊΡƒ, ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ Π΅Ρ‘ ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΡƒΠ΄ΠΎΠ±Π½Ρ‹ΠΉ API для создания Ρ‚Π°ΠΊΠΈΡ… Ρ„Π°ΠΉΠ»ΠΎΠ².

Π”Π°Π²Π°ΠΉΡ‚Π΅ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡ΠΈΠΌ Ρ‚Π°ΠΊΡƒΡŽ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΡƒ, для ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π° Π²ΠΎΠ·ΠΌΡ‘ΠΌ PHPExcel. Найти Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ ΠΌΠΎΠΆΠ½ΠΎ Π½Π° сайтС https://packagist.org/

composer require PHPOffice/PHPExcel

ПослС Ρ‡Π΅Π³ΠΎ Composer скачаСт Π΄Π°Π½Π½ΡƒΡŽ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΡƒ ΠΈ ΠΏΡ€ΠΎΠΏΠΈΡˆΠ΅Ρ‚ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡ‚ΡŒ Π² package.json

Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ composer php. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ composer php. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ composer php. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ composer php. Π€ΠΎΡ‚ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ composer php

Установка ΠΏΠ°ΠΊΠ΅Ρ‚Π° Π² Composer

Π‘ΠΎΠ΄Π΅Ρ€ΠΆΠΈΠΌΠΎΠ΅ package.json измСнилось, Π° Π² ΠΊΠΎΡ€Π½Π΅ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° появилась дирСктория vendor с Ρ„Π°ΠΉΠ»Π°ΠΌΠΈ установлСнной Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ. ΠŸΡ€ΠΈ пСрСносС исходного ΠΊΠΎΠ΄Π°, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ ΠΏΡ€ΠΈ использовании систСмы контроля вСрсий (Git etc.), совсСм Π½Π΅ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ Ρ‚ΡΠ½ΡƒΡ‚ΡŒ с собой Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΡŽ vendor. Достаточно ΠΏΠ΅Ρ€Π΅Π½ΠΎΡΡ‚ΠΈΡ‚ΡŒ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ Π±Π΅Π· Π½Π΅Π΅, Π° Π·Π°Ρ‚Π΅ΠΌ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒ composer install Π² ΠΊΠΎΡ€Π½Π΅ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°. Composer скачаСт ΠΈ установит ΠΏΠ°ΠΊΠ΅Ρ‚Ρ‹, прописанныС Π² package.json

Если Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ ΠΎΠ±Π½ΠΎΠ²ΠΈΡ‚ΡŒ ваши ΠΏΠ°ΠΊΠ΅Ρ‚Ρ‹ Π΄ΠΎ совмСстимых вСрсий Π²Ρ‹ΡˆΠ΅, Ρ‚ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ composer update

ИспользованиС ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½Π½Ρ‹Ρ… ΠΏΠ°ΠΊΠ΅Ρ‚ΠΎΠ²

Для использования установлСнных Composer’ом Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊ, Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ Π°Π²Ρ‚ΠΎΠ·Π°Π³Ρ€ΡƒΠ·ΠΊΡƒ. Π’ соврСмСнных прилоТСниях ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ ΠΏΠ°Ρ‚Ρ‚Π΅Ρ€Π½ front controller, ΠΎΠ½ позволяСт ΠΈΠΌΠ΅Ρ‚ΡŒ Π΅Π΄ΠΈΠ½ΡƒΡŽ Ρ‚ΠΎΡ‡ΠΊΡƒ доступа Π² ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅. Π’ΠΎ Π΅ΡΡ‚ΡŒ всС запросы ΠΊ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡŽ заходят Π² Π½Π΅Π³ΠΎ, Π° ΠΎΠ½ опрСдСляСт ΠΊΠ°ΠΊΠΈΠΌ ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€ΠΎΠΌ Π΄ΠΎΠ»ΠΆΠ΅Π½ Ρ„ΠΎΡ€ΠΌΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒΡΡ рСспонс. Если Π² вашСм ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ Ρ‚Π°ΠΊΠΎΠ³ΠΎ Π½Π΅Ρ‚, Ρ‚ΠΎ ΡΡ‚Ρ€Π°ΡˆΠ½ΠΎΠ³ΠΎ Π½Π΅Ρ‚ Π½ΠΈΡ‡Π΅Π³ΠΎ, Π²Π°ΠΌ просто придётся ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π°Ρ‚ΡŒ Ρ„Π°ΠΉΠ» Π°Π²Ρ‚ΠΎΠ·Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ Π²ΠΎ всСх мСстах, Π³Π΄Π΅ Π²Ρ‹ ΡΠΎΠ±ΠΈΡ€Π°Π΅Ρ‚Π΅ΡΡŒ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ установлСнныС Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ.

НапримСр, Ρƒ мСня ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ состоит ΠΈΠ· ΠΎΠ΄Π½ΠΎΠ³ΠΎ Ρ„Π°ΠΉΠ»Π° β€” index.php, Π°Π²Ρ‚ΠΎΠ·Π°Π³Ρ€ΡƒΠ·ΠΊΡƒ ΠΌΠ½Π΅ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ Π² Π½Ρ‘ΠΌ.

index.php с ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½Π½ΠΎΠΉ Π°Π²Ρ‚ΠΎΠ·Π°Π³Ρ€ΡƒΠ·ΠΊΠΎΠΉ выглядит ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ

Всё, Π²Π΅Π·Π΄Π΅ Π½ΠΈΠΆΠ΅ ΠΌΠΎΠΆΠ½ΠΎ Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½Π½Ρ‹Π΅ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ.

Π”Π°Π²Π°ΠΉΡ‚Π΅ Π²ΠΎΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡΡ установлСнной Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΎΠΉ ΠΈ напишСм ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ сгСнСрируСт Ρ„Π°ΠΉΠ» для Excel с записю Hello, world! Π² ΠΏΠ΅Ρ€Π²ΠΎΠΉ ячСйкС.

Π’Π΄Π°Π²Π°Ρ‚ΡŒΡΡ Π² ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½ΠΈ ΠΊΠ°ΠΊ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ с PHPExcel Π½Π΅ Π±ΡƒΠ΄Π΅ΠΌ, Ρ‚.ΠΊ. это ΡƒΠΆΠ΅ Π±Ρ‹Π»ΠΎ описано Π² ΡΡ‚Π°Ρ‚ΡŒΠ΅ использованиС PHPExcel Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ, поэтому сразу ΠΏΡ€ΠΈΠ²Π΅Π΄Ρƒ ΠΊΠΎΠ΄ Ρ„Π°ΠΉΠ»Π° index.php

Как Π²ΠΈΠ΄ΠΈΡ‚Π΅, Π² ΠΊΠΎΠ΄Π΅ ΠΌΡ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌ классы, прСдоставлСнныС Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΎΠΉ PHPExcel.

Запустим скрипт ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΠΉ

php index.php

Он ΠΎΡ‚Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ ΠΈ создаст Ρ„Π°ΠΉΠ» Hello.xls, ΠΎΡ‚ΠΊΡ€Ρ‹Π² ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ, ΠΌΠΎΠΆΠ½ΠΎ ΠΎΠ±Π½Π°Ρ€ΡƒΠΆΠΈΡ‚ΡŒ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅Π΅

Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ composer php. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ composer php. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ composer php. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ composer php. Π€ΠΎΡ‚ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ composer php

Composer Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ ΡƒΠΏΡ€ΠΎΡ‰Π°Π΅Ρ‚ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΡƒ, Π²Π°ΠΌ Π½Π΅Ρ‚ нСобходимости ΡΠΊΠ°Ρ‡ΠΈΠ²Π°Ρ‚ΡŒ ΠΎΡ‚ΠΊΡƒΠ΄Π°-Ρ‚ΠΎ Π³ΠΎΡ‚ΠΎΠ²Ρ‹Π΅ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ ΠΈ скрипты, Π° Π·Π°Ρ‚Π΅ΠΌ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π°Ρ‚ΡŒ ΠΈΡ… с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ include. Composer всё Π΄Π΅Π»Π°Π΅Ρ‚ Π·Π° вас сам. ΠŸΡ€ΠΈ этом, ΠΏΡ€ΠΈ пСрСносС ΠΊΠΎΠ΄Π° вашСго ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°, Π²Π°ΠΌ Π½Π΅ Π½ΡƒΠΆΠ½ΠΎ Ρ‚ΡΠ½ΡƒΡ‚ΡŒ Π³ΠΎΡ‚ΠΎΠ²Ρ‹Π΅ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ пСрСнСсти Ρ‚ΠΎΠ»ΡŒΠΊΠΎ свой ΠΊΠΎΠ΄, Π° Π·Π°Ρ‚Π΅ΠΌ просто ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ эти Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Composer.

НадСюсь ΡΡ‚Π°Ρ‚ΡŒΡ оказалась Π²Π°ΠΌ ΠΏΠΎΠ»Π΅Π·Π½ΠΎΠΉ ΠΈ Π²Ρ‹ ΡƒΠ·Π½Π°Π»ΠΈ ΠΎ Composer ΠΈ Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ ΠΎΠ±Π»Π΅Π³Ρ‡ΠΈΡ‚Π΅ сСбС Тизнь, примСняя Π΅Π³ΠΎ.

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ

Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΉ

Π’Π°Ρˆ адрСс email Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚ ΠΎΠΏΡƒΠ±Π»ΠΈΠΊΠΎΠ²Π°Π½. ΠžΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ поля ΠΏΠΎΠΌΠ΅Ρ‡Π΅Π½Ρ‹ *