====== Apricot 公開フォルダ ======
--- //[[http://www.y2sunlight.com|y2sunlight]] 2020-03-24//
[[apricot:top|Apricot に戻る]]
関連記事
* [[apricot:configuration|Apricot プロジェクトの作成]]
* Apricot 公開フォルダ
* [[apricot:core:top|Apricot コア]]
* [[apricot:app:top|Apricot アプリ]]
* [[apricot:ext:middleware|Apricot 拡張]]
ここからの作業は基本的にEclipseで行います。
----
===== 公開フォルダの作成 =====
以下に示すようにプロジェクトフォルダ下に、公開用のフォルダ ''public'' を作成し、その下に4つのフォルダ(''css'',''img'',''js'',''resources'')と2つの空のファイル(''.htaccess'',''index.php'')を作成します。
{{fa>folder-open-o}} ** /apricot **
apricot [プロジェクト]
|
├── public [公開フォルダ]
| |
| ├── css/ [css保存用]
| ├── img/ [画像保存用]
| ├── js/ [JavaScript保存用]
| ├── var/ [データ保存用]
| ├── resources/ [ライブラリリソース保存用]
| ├── .htaccess [Apacheの設定]
| └── index.php [フロントコントローラ]
\\
===== .htaccess =====
アプリケーションへの全てのリクエストを1つのフロントコントローラ(index.php)で処理する為に、.htaccess を以下のように編集します。
{{fa>folder-open-o}} ** apricot/public **
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^ index.php [L]
この設定では、ApacheのRewriteEngineを有効にして、publicフォルダ下に実在しないファイル及びフォルダに対する全てのリクエストをindex.phpに転送しています。詳しくはApacheの[[https://httpd.apache.org/docs/2.4/ja/mod/mod_rewrite.html|マニュアル]]を参照して下さい。
\\
===== index.php(暫定版) =====
以下にように index.php を編集します。
{{fa>folder-open-o}} ** /apricot/public **
今の index.php では以下の事を行っています。
* オートローダーの登録
* プロジェクトフォルダの設定
* 公開フォルダの登録
これら全ての設定は、index.phpの存在するフォルダからの相対パスで行われていいる点に注目して下さい。これは、公開フォルダとプロジェクトフォルダの関係が相対的に表現できる場所であれば、どこにでも公開フォルダを設定できることを示しています(vendorフォルダはプロジェクトフォルダの直下にあることが決められています)。
通常、プロジェクトフォルダはユーザからアクセスできない場所に設置されます。しかし同時に、これは必ずしもプロジェクトフォルダの直下に公開フォルダがなくてもよいことも意味しています。例えば以下のような構成も可能です。
┌── apricot [プロジェクトフォルダ]
|
├── public [公開フォルダ]
┌── apricot [プロジェクトフォルダ]
|
├── html
| |
| └── public [公開フォルダ]
=== index.phpの起動 ===
ブラウザ上で以下のURLにアクセスしてみて下さい。
http://localhost/ws2019/apricot/public/
次のように表示されます:
project_path : D:\usr\ws2019\apricot
public_path : D:\usr\ws2019\apricot\public
METHOD : GET
URI : /ws2019/apricot/public/
\\