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 開發者熟悉自己的工具。

Avatar for Shengyou Fan

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 • 讓去給 要然…