23884


以下のような環境でcakephpで開発を行っています。

  * 開発環境  
windows->vagrant(centos7)->docker(centos)

  * ステージング環境  
centos7->docker(centos)

cakephpの下記のようなコードが開発環境ではエラーにならずに実行されますが、  
ステージング環境ではエラーになってしまいます。

[code]

    $this->helper->hoge()
    
[/code]

helperをHelperとすればエラーにはならないのですが、  
Dockerコンテナは開発、ステージングともに同じDockerfileでビルドして  
コンテナ作成しており、OSからWebサーバー、phpなどのバージョンも全て同じはずです。

[class_exists
でのオートロード](http://qiita.com/ArimaRyunosuke/items/f47b4f0a0e98bea434a8)  
上記が原因かと思い、dockerコンテナのファイルシステムを確認(df -T)してみましたが、  
extで開発、ステージングともに同じなっています。

ただ開発環境はホスト機でxdebugでデバック実行する為、windows<->vagrant<->dockerで  
ファイル共有をかけています。このような構成にした場合、ホスト機のwindowsのファイルシステムに依存する形になってしまうのでしょうか？それとも別の原因が考えられますでしょうか？

よろしくお願いします。


CC BY-SA 3.0
2016-01-27T13:36:47.847
21395
2016-04-10T02:31:07.757
10712
question
php cakephp centos vagrant docker
docker上でのcakephpでのコード内の大文字、小文字の判定


WindowsホストでVagrantもといVirtualBoxの共有フォルダを利用した場合、ご指摘のように大文字小文字は区別されません。ファイルを列挙すれば大文字小文字の違いを見ることはできますが、実際にはどちらでもアクセスできてしまいます。そして、それをDockerコンテナにマウントした場合も同様でしょう。

参考 [Vagrant共有フォルダの罠 — A Day in Serenity (Reloaded)](http://blog.a-way-
out.net/blog/2014/02/07/vagrant-synced-folder-trap/)

いずれにせよ、そのような問題に遭遇するということはフレームワークがその違いを吸収していない＝大文字小文字を揃える前提で作られているわけですから、そのように書くべきかと思います。


CC BY-SA 3.0
2016-04-10T02:31:07.757
23884
2016-04-10T02:31:07.757
8000
21395
answer