環境
ローカル開発で、vagrant。
本番環境で別のサーバーがあり、githubを利用しているケース
使うコマンド
composer install
composer update
流れ
composer.jsonのバージョンを書き換える。現在のcakephpの最新バージョンに合わせて下記部分を変えれば良い。
"cakephp/cakephp": "3.3.*"
そのあと、
vagrantにおいて composer update
composer.lockを更新する。
jsonとlockのファイルをgithubでコミットする。
本番環境において composer install
コミットされたcomposer.lockとcomposer.jsonに基づき、
パッケージをインストールする。
本番ではバージョン固定のため、コマンドはupdateではなくinstallが良い。
updateだと、composer.lockの内容が変わってしまうため、composer.lockは、バージョンアップする時だけ変更するのが良いと思います。
circleCI等の自動ツールで、デプロイするたびに、installしているケースも多いので基本はこの流れです。
自動ツールがないケースなら、バージョンアップしたい時だけ、コマンド使いupdateして、一発でlockファイルも変更するのもありですが。安全に事を運ぶなら、.jsonと.lockファイルをgitでコミットしたあとに、それらのファイルに基づき、本番ではinstallをした方が無難かもしれません。
参考サイト
http://qiita.com/notona/items/c5a087d8dd446d315e6e
以下参考サイトより抜粋
コマンドcomposer install
composer.lock があればそれに基づいてパッケージをインストールし
なければ composer.json に基づいてパッケージをインストールした後に composer.lock を作成
コマンドcomposer update
パッケージのインストールと composer.lock の更新
書き方の逆を取ると、jsonなくてもいいように見受けられますが、
jsonがないってことはそもそもありえなく。オートロードとかもできないし、初期状態でないっていうことがおそらくないのかなと思います。