Composer install/update/require 差別

閱讀時間約 2 分鐘
Composer是PHP的軟體包管理系統,它提供用於管理PHP軟體和依賴庫關係的標準格式。(引用自維基百科)

composer install

這個指令會安裝composer.lock中定義的套件(Laravel專案中可以看到生成vendor資料夾),如果找不到composer.lock這個檔案,則會根據composer.json的定義去安裝,並自動產生composer.lock檔案。

composer update

這個指令會安裝composer.json中指定或最新版本的required packages,然後更新composer.lock檔案,在其中記錄安裝的package版本。
  • 這個指令會更新composer.json中指定的套件版本,比如在require中這樣寫:
"monolog/monolog": "1.0.0"
這樣就只會安裝monolog 1.0.0這個版本,如果原本就是1.0.0就不會更新。
  • 但如果是這樣:
"monolog/monolog": "1.0.*"
則會upgrade至最新released版本的monolog,可能是1.0.3。
另外,假如原本已經安裝的套件,在composer.json中不再required,就會被移除。

composer require

安裝套件用的指令,如下範例:
$ composer require tymon/jwt-auth "1.0.1"
同時會將套件資訊記錄到composer.json與composer.lock檔案中。
本筆記參考:
  1. https://stackoverflow.com/questions/33052195/what-are-the-differences-between-composer-update-and-composer-install
  2. https://medium.com/@j4demacia/%E9%97%9C%E6%96%BCcomposer-install-update-require-2a9561e714a4
  3. http://blog.tonycube.com/2016/12/composer-php.html
  4. https://zh.wikipedia.org/zh-tw/Composer_(%E8%BB%9F%E9%AB%94)
即將進入廣告,捲動後可繼續閱讀
為什麼會看到廣告
21會員
161內容數
留言0
查看全部
發表第一個留言支持創作者!
Vic Lin的沙龍 的其他內容
當伺服器需要處理一些比較花時間的任務時(如發送Email、上傳影片等等),讓user等待直到執行完畢,是個很不明智的選擇,這時候就很適合使用Queue,讓工作在背景執行,使用者就能立刻做下一件事,不必在那邊等待。 .env: QUEUE_CONNECTION預設是sync 改成database:
建立middleware指令: 假設建立一個Test middleware: 新增的middleware檔案會在app/Http/Middleware路徑中。 註冊Middleware: Global Middleware: 2. Route Middleware route group用法如下:
Laravel 提供了快速套用軟刪除的方法,直接在Model中加上use SoftDeletes即可: 接著在程式中,假設要把文章1刪除,可以直接這樣寫: 另外,如果我再執行一次上述的Article::find(1)->delete(); 會發現有error: 所以上述改成這樣:
如上篇,使用Migration來做DB版本控制,但是會發現開發過程中若是要建立測試資料,要進DB一筆一筆手動新增或執行預先寫好的insert sql,其實有點麻煩,使用Laravel提供的Seeder功能,就可以解決這個問題。 指令如下,假設建立一個user table seeder:
在Laravel中除了用Validator來驗證資料,還可以用Form Request Validation,建立一個驗證class,在request進入controller之前,會先在這邊做驗證,若驗證失敗則不會繼續執行Controller。 建立form request: 範例程式碼:
資料情境: 每個產品有多種顏色,每種顏色屬於一個產品(一對多)。 程式碼: Product Model: 本筆記參考: 1. https://stackoverflow.com/questions/40468976/inserting-with-relationships-in-laravel
當伺服器需要處理一些比較花時間的任務時(如發送Email、上傳影片等等),讓user等待直到執行完畢,是個很不明智的選擇,這時候就很適合使用Queue,讓工作在背景執行,使用者就能立刻做下一件事,不必在那邊等待。 .env: QUEUE_CONNECTION預設是sync 改成database:
建立middleware指令: 假設建立一個Test middleware: 新增的middleware檔案會在app/Http/Middleware路徑中。 註冊Middleware: Global Middleware: 2. Route Middleware route group用法如下:
Laravel 提供了快速套用軟刪除的方法,直接在Model中加上use SoftDeletes即可: 接著在程式中,假設要把文章1刪除,可以直接這樣寫: 另外,如果我再執行一次上述的Article::find(1)->delete(); 會發現有error: 所以上述改成這樣:
如上篇,使用Migration來做DB版本控制,但是會發現開發過程中若是要建立測試資料,要進DB一筆一筆手動新增或執行預先寫好的insert sql,其實有點麻煩,使用Laravel提供的Seeder功能,就可以解決這個問題。 指令如下,假設建立一個user table seeder:
在Laravel中除了用Validator來驗證資料,還可以用Form Request Validation,建立一個驗證class,在request進入controller之前,會先在這邊做驗證,若驗證失敗則不會繼續執行Controller。 建立form request: 範例程式碼:
資料情境: 每個產品有多種顏色,每種顏色屬於一個產品(一對多)。 程式碼: Product Model: 本筆記參考: 1. https://stackoverflow.com/questions/40468976/inserting-with-relationships-in-laravel
你可能也想看
Google News 追蹤
Thumbnail
接下來第二部分我們持續討論美國總統大選如何佈局, 以及選前一週到年底的操作策略建議 分析兩位候選人政策利多/ 利空的板塊和股票
Thumbnail
🤔為什麼團長的能力是死亡筆記本? 🤔為什麼像是死亡筆記本呢? 🤨作者巧思-讓妮翁死亡合理的幾個伏筆
Thumbnail
Docker-Compose負責對container做快速編排。設定檔預設名稱為docker-compose.yml,在檔案中,可以透過COMPOSE_FILE或-f對設定進行定義。 想要將專案透過Docker-Compose部署,需要創建docker-compose.yml和Dockerfile
Thumbnail
Composer是PHP的軟體套件管理系統,它提供用於管理PHP軟體和依賴庫關係的標準格式。通常以專案為單位進行管理,會在專案根目錄底下(預設是vendor)安裝套件,除此外可以安裝全局套件。
composer dump-autoload 是 Composer 工具的指令,用於重新生成自動載入檔案,以確保專案中的類別檔案能夠正確載入。透過執行該指令,Composer會根據專案的 composer.json 檔案中的設定重新生成 vendor/autoload.php 檔案。這個指令不會安裝
Thumbnail
前言 大家好上次我們教了 Gitlab CI/CD 的 extends 如何使用,今天我們要來實際做一個真正佈署上線我們的服務,我們會分成兩個章節,第一部分先教大家怎麼寫 Docker Compose 佈署計畫書,第二部分教大家撰寫 CI/CD 自動化佈署流程計劃書 什麼是 Docker Com
插上RS232 轉USB的線之後,會在/dev下出現一個ttyUSB0的裝置 接著設定minicom
Thumbnail
特斯拉Giga Shanghai於2019年1月7日破土動工,並於2019年12月交付了首批Model 3。特斯拉Giga上海工廠投產還不到三年,它的第一百萬輛量產車就下線了。 2.德國柏林超級工廠於2022/3/22舉辦新車下線慶祝活動宣告正式開始營運。 另外分享TESLA 過去生產的指數級成長
Thumbnail
當前的療程告一段落後,就會進入新藥物的申請審核程序,希望可以順利達成申請,讓這相伴一生的病情可以得到更好的控制了。
Thumbnail
就像叫佛地魔那個人一樣,他們不屑稱那塊土地為以色列,他們說disney land,迪士尼樂園,佐以嘴角的嘲弄。 「問題從來都不是宗教,是那顆貪婪的心。」 二十六歲,開網頁設計公司,我的boss,在大馬士革的日子都住在他辦公室。 「我們只想要和平的改變。」
Thumbnail
接下來第二部分我們持續討論美國總統大選如何佈局, 以及選前一週到年底的操作策略建議 分析兩位候選人政策利多/ 利空的板塊和股票
Thumbnail
🤔為什麼團長的能力是死亡筆記本? 🤔為什麼像是死亡筆記本呢? 🤨作者巧思-讓妮翁死亡合理的幾個伏筆
Thumbnail
Docker-Compose負責對container做快速編排。設定檔預設名稱為docker-compose.yml,在檔案中,可以透過COMPOSE_FILE或-f對設定進行定義。 想要將專案透過Docker-Compose部署,需要創建docker-compose.yml和Dockerfile
Thumbnail
Composer是PHP的軟體套件管理系統,它提供用於管理PHP軟體和依賴庫關係的標準格式。通常以專案為單位進行管理,會在專案根目錄底下(預設是vendor)安裝套件,除此外可以安裝全局套件。
composer dump-autoload 是 Composer 工具的指令,用於重新生成自動載入檔案,以確保專案中的類別檔案能夠正確載入。透過執行該指令,Composer會根據專案的 composer.json 檔案中的設定重新生成 vendor/autoload.php 檔案。這個指令不會安裝
Thumbnail
前言 大家好上次我們教了 Gitlab CI/CD 的 extends 如何使用,今天我們要來實際做一個真正佈署上線我們的服務,我們會分成兩個章節,第一部分先教大家怎麼寫 Docker Compose 佈署計畫書,第二部分教大家撰寫 CI/CD 自動化佈署流程計劃書 什麼是 Docker Com
插上RS232 轉USB的線之後,會在/dev下出現一個ttyUSB0的裝置 接著設定minicom
Thumbnail
特斯拉Giga Shanghai於2019年1月7日破土動工,並於2019年12月交付了首批Model 3。特斯拉Giga上海工廠投產還不到三年,它的第一百萬輛量產車就下線了。 2.德國柏林超級工廠於2022/3/22舉辦新車下線慶祝活動宣告正式開始營運。 另外分享TESLA 過去生產的指數級成長
Thumbnail
當前的療程告一段落後,就會進入新藥物的申請審核程序,希望可以順利達成申請,讓這相伴一生的病情可以得到更好的控制了。
Thumbnail
就像叫佛地魔那個人一樣,他們不屑稱那塊土地為以色列,他們說disney land,迪士尼樂園,佐以嘴角的嘲弄。 「問題從來都不是宗教,是那顆貪婪的心。」 二十六歲,開網頁設計公司,我的boss,在大馬士革的日子都住在他辦公室。 「我們只想要和平的改變。」