Upgrade to Pro — share decks privately, control downloads, hide ads and more …

[Modern Web Conf 2015] 給 PHP 開發者的 Composer 錦囊

[Modern Web Conf 2015] 給 PHP 開發者的 Composer 錦囊

對於 PHP 開發者而言,使用 Composer 處理套件相依已是標準程序,對於習於使用框架的開發者而言更是如此。但也往往因為太習以為常,導致僅會使用基本指令而忽略進階技巧。

在這場講座裡,講者將從日常開發工作中汲取出幾個常見情境,依此脈絡分享數個關於 Composer 的使用錦囊,做為進一步認識 Composer 核心的敲門磗,期盼能讓更多 PHP 開發者熟悉自己的工具。

Shengyou Fan

May 16, 2015
Tweet

More Decks by Shengyou Fan

Other Decks in Programming

Transcript

  1. 2015 Modern Web Conference 7 話 1. Composer 2. Skeleton

    3. 起⽅方 4. composer.lock 5. 的 repositories 6. VM 會 Composer 7. Satis/Toran Proxy 有
  2. 2015 Modern Web Conference Composer • Composer 種 (這 只

    ) • ( Bug ) • Composer ( "^") • Composer (樣 ) 間 PHP ⽂文 多 在
  3. #1 1VM1provision1 1Composer1 config.vm.provision1"shell"1do1|s|1 11s.inline1=1"/usr/local/bin/composer1self7update"1 end ( 1Vagrantfile1 ) $1vagrant1provision

    ( 1VM1Host1 ) 間 你能 https://github.com/laravel/homestead/blob/master/scripts/homestead.rb#L144-L147
  4. 2015 Modern Web Conference Composer • Composer (!) • 沒

    ⽂文 想 • 還 地⽂文好天起第現出 • •
  5. 2015 Modern Web Conference Skeleton • 經三 skeleton 三⼜又 •

    packages第scripts • github第 tag • Packagist package • composer package create-project 間 你能他 然⽽而 https://packagist.org/packages/jaceju/b5 $1composer1create7project1jaceju/b51[project7name]17s1dev
  6. 2015 Modern Web Conference laravel-installer • laravel/laravel ⽂文 composer1install •

    事 vendor 中 回 每 zip ⽂文 • 裡 laravel7installer ⼈人⽤用 ⽂文 new - http://cabinet.laravel.com/latest.zip 啊 zip - 每 post7create7project7cmd
  7. 2015 Modern Web Conference 0.1.0 0.2.0 1.0.1 1.1.0 0.1.1 1.0.0

    1.0.2 2.0.0 1 1 1 動 1 1 動 1 動 動 1 動 1
  8. 2015 Modern Web Conference Version Constraints Exact Match 1.2.3 1.2.3

    Wildcard Range 1.0.* >=1.0 發 <1.1 Hyphen Range 1.0 - 2.0 >=1.0.0 發 <2.1 Tilde Operator ~1.2 >=1.2 發<2.0 Caret Operator ^1.2.3 ^0.3 >=1.2.3 發 <2.0 >=0.3.0 發 <0.4.0 Stability Flags @stable @dev dev > alpha > beta > RC > stable 開看啊 stable⽂文 @ ⼈人
  9. ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^ 明^ Composer 裡 ⽂文 地之 ( AWS ElasticBeanstalk Composer 1.0.0-alpha9)⽂文 明~ ⽂文 X < 0 package
  10. 2015 Modern Web Conference ⽅方個 • 時 機 SemVer 後然

    • 麼 dev-master 動 • 多 在 Packagist ⽂文真 ⽅方 ( Package 機 SemVer ⽂文 Caret Operator) • ⽅方個 ⽂文 Packagist Semver Checker 很 個 • composer.json ⽂文 composer validate 活
  11. 1. 活 1composer.lock1 可 1 2. 可 ⽂文 ⾃自1composer1update1 到

    1 3. 可 ⽂文 1lock1 1package1 $1composer1install 間 你能 https://blog.engineyard.com/2014/composer-its-all-about-the-lock-file
  12. $1composer1install177prefer7dist1\1 77no7dev177optimize7autoloader ( 主 1install1 1lock1 ) 間 Composer 開看

    dev 就⽂文 --no-dev 無 require-dev 間 --prefer-dist 啊 package archives clone source 間 --optimize-autoloader 到 autoloader
  13. 2015 Modern Web Conference • forked package - package⽂文 package

    patch ⽂文 hot-fix • 們 private package - 們 才 package⽂文 ⼀一 Packagist Composer 有
  14. {1 1111"repositories":1[1 11111111{1 111111111111"type":1"vcs",1 111111111111"url":1"{url}"1 11111111}1 1111],1 1111"require":1{1 11111111"vendor/package":1"{version}"1 1111}1

    } 間1version:1x.y.z1 間1version:1dev7master1as1x.y.z composer.json 間 看 forked https://getcomposer.org/doc/05-repositories.md#loading-a-package-from-a-vcs-repository 間 private package https://getcomposer.org/doc/05-repositories.md#using-private-repositories 間1url:1https://github.com/vendor/package1 間1url:1https://[email protected]/account/repo.git
  15. 2015 Modern Web Conference 會 Composer • Composer 會 •

    ⽂文 會 • Composer Packagist • Composer repositories • 快 Composer 開
  16. 2015 Modern Web Conference Satis Satis Composer Packagist Satis 知

    Satis Packagist 著 Satis 間 三⼜又 你能 http://goo.gl/sxLQEn
  17. 2015 Modern Web Conference Toran Proxy Toran Proxy Composer Packagist

    Toran Proxy Toran Proxy Packagist 著 Toran Proxy
  18. 2015 Modern Web Conference Toran Proxy • Proxy • (

    ) Web UI 做 • Git 看 • Event Hook 看 • Satis Migrate • … 間 都 ⽂文 能 等 ⼤大⽣生 Composer
  19. 2015 Modern Web Conference • 話 - skeleton repositories -

    無 Composer 看 - 不 Composer ⼈人⽤用 - composer.lock 主 會 感 - VM 會 Composer - Satis/Toran Proxy 有 會
  20. 2015 Modern Web Conference Composer ⼈人我 Laravel Composer 話更 https://goo.gl/OfJK3C

    email⽂文 就 ⼼心 Composer 話 • vagrant 感 • global • 讓去給 要然…