CodeIgniterの学習 3 - ソースのディレクトリ構成を移動

これからは後で見つけやすいように、なるべく1エントリ=1作業 で書いていく。
(実際はもっと先にいっているけど、ここに書くのもそれなりに時間が掛かるので、少しずつ。)


デフォルトのソースツリーだと、apacheのドキュメントルート配下にsystemだのapplicationだのが存在して非常に嫌だ。
なので、以下のような構成に変えた。

既にhgでバージョン管理を始めているので mv ではなく、

hg mv (元ディレクトリ) (先ディレクトリ)

で移動する。


デフォルトのディレクトリ構成

変更前の構成は、

$ cd /var/vhosts/citest/ ;tree -d
.
`-- CodeIgniter_1.6.3 (ここがapacheのドキュメントルート)
    |-- system
    |   |-- application
    |   |   |-- config
    |   |   |-- controllers
    |   |   |-- errors
    |   |   |-- helpers
    |   |   |-- hooks
    |   |   |-- language
    |   |   |   `-- english
    |   |   |-- libraries
    |   |   |-- models
    |   |   `-- views
    |   |-- cache
    |   |-- codeigniter
    |   |-- database
    |   |   `-- drivers
    |   |       |-- mssql
    |   |       |-- mysql
    |   |       |-- mysqli
    |   |       |-- oci8
    |   |       |-- odbc
    |   |       |-- postgre
    |   |       `-- sqlite
    |   |-- fonts
    |   |-- helpers
    |   |-- language
    |   |   `-- english
    |   |-- libraries
    |   |-- logs
    |   |-- plugins
    |   `-- scaffolding
    |       |-- images
    |       `-- views
    `-- user_guide
        |-- database
        |-- doc_style
        |-- general
        |-- helpers
        |-- images
        |-- installation
        |-- libraries
        |-- nav
        `-- overview


PHPのソースをドキュメントルート外に追いやる

変更後の構成は

$ cd /var/vhosts/citest/ ;tree -d
`-- CodeIgniter_1.6.3
    |-- application
    |   |-- config (設定とか)
    |   |-- controllers (ここが主役)
    |   |-- errors
    |   |-- helpers(脇役)
    |   |-- hooks
    |   |-- language
    |   |   |-- english
    |   |   `-- japanese
    |   |-- libraries(俺俺ライブラリ移植先)
    |   |-- models(ここも主役になる)
    |   `-- views (ここも主役)
    |-- html (ここがapacheのドキュメントルート)
    |   |-- user_guide(後でけずる)
    |   |   |-- database
    |   |   |-- doc_style
    |   |   |-- general
    |   |   |-- helpers
    |   |   |-- images
    |   |   |-- installation
    |   |   |-- libraries
    |   |   |-- nav
    |   |   `-- overview
    |   `-- user_guide_ja(後でけずる)
    |       |-- database
    |       |-- doc_style
    |       |-- general
    |       |-- helpers
    |       |-- images
    |       |-- installation
    |       |-- libraries
    |       |-- nav
    |       `-- overview
    `-- system
        |-- cache(キャッシュ)
        |-- codeigniter
        |-- database
        |   `-- drivers
        |       |-- mssql
        |       |-- mysql(DBはこの辺)
        |       |-- mysqli
        |       |-- oci8
        |       |-- odbc
        |       |-- postgre
        |       `-- sqlite
        |-- fonts
        |-- helpers
        |-- language
        |   |-- english
        |   `-- japanese
        |-- libraries
        |-- logs(この辺にログが吐かれる)
        |-- plugins
        `-- scaffolding
            |-- images
            `-- views

となった。ドキュメントルートがhtdocsじゃなくてhtmlなのは2文字短いから。

html/以下には、
index.php.htaccess がある。
後で images/ css/ js/ とかの静的ファイルを増やしていく予定。



user_guide_jaとか japaneseとかディレクトリが増えているのは、
日本語パッチをダウンロード - http://codeigniter.jp/download/ して当てたため。
リビジョンが異なるので、そのまま置換するのではなくマージした。


後は、html/index.php

//$system_folder = "system";
$system_folder = "../system";

//$application_folder = "application";
$application_folder = "../application";

に変更すればいい。(リリース時は絶対パスの方がいいか…)

これですっきり。



CodeIgniterは縛りが緩くて、柔軟性があっていいね。
ディレクトリ構成も自由ということは、もっと深いところも柔軟な作りだろう。たぶん。