質問: 現在、PHPのテンプレートエンジンTwigを使って、Webページを開発しています。現状の開発環境でのDirectory Treeは以下のようになっています。 ``` ├── css ├── index.php ├── js ├── templates │ ├── base.html │ ├── footer.html │ ├── header.html │ └── index.html └── vendor ├── autoload.php ├── bin ├── composer ├── symfony └── twig ``` つまり、index.phpのあるディレクトリに、テンプレートの入っているディレクトリ「templates」や、composerでインストールした「vendor」があります。 ただこれだと、templatesの中がWebアクセスで丸見えになってしまい、問題があるのではないかと考えました。templatesやvendorというディレクトリを他のWebアクセスできないところに持っていくことは可能なのですが、そうすると本番サーバへの適用時にパスなどが変わって、ややこしいことになりそうな気がしています。 この辺りのディレクトリの構成は、どのようにするのがよいのでしょうか? ご教示いただけると幸甚です。よろしくお願いいたします。
回答: 1. ディレクトリ構成は今のままで.htaccess等でブラウザからアクセス出来なくする(レンタルサーバー等でディレクトリ構成の自由度がない時によく使われる方法) 2. 見せたくないディレクトリをドキュメントルート外に持っていって(もしくはpublicディレクトリを同じ階層に作ってドキュメントルートにしてindex.phpを配置)、index.phpからはdirname()や`__FILE__`等を駆使してアプリケーション内で相対パスを維持する事で設置時の苦労を無くす(個人的にはお勧め) のどちらかで対応することが多いですね。