2013年10月18日金曜日

在庫管理システム『SASO1.0』のディレクトリ構造

下記のツリーは作成した在庫管理システムのディレクトリ構造です。
MVCアーキテクチャーで作りました。

まず、index.phpではオートローダと振り分けクラスを呼び出します。
全てのアクセスが、index.phpを経由します。
なお、config.phpも呼び出しますがそれは単に定数定義です。

classesディレクトリの中身は三つです。
baseはPDOやリクエスト振り分けなど、ほぼすべての箇所で使いまわすクラスを収めたディレクトリです。
controllersはMVCのC、そのままです。modelsはMです。

extentionは自作でないソフトの置き場です。
バーコードラベル印刷に使うPDFの出力を行うtcpdfをおきました。
http://www.tcpdf.org/(本家。ダウンロードできます)
http://www.monzen.org/doc/tcpdf/jman/(マニュアル日本語訳)

imgは画像ファイル、styleはスタイルシートです。

logicにはクラスを使うレガシーPHPのファイルを入れます。
viewはMVCのVです。ただしテンプレートシステムは使いませんでした。
このlogicとviewの中身のディレクトリは全て、コントローラクラスにそのまま対応します。
例えば、imageディレクトリの中身はImageController.phpから呼び出されます。
さらに各ディレクトリの中身のファイルがコントローラクラスのメソッドに対応します。
例えば、ImageController.phpのaddImageAction()はimageディレクトリのaddImage.phpを呼び出します。

saso1_0
├── .htaccess
├── index.php
├── config.php
├── autoload.php
├── classes
│   ├── base
│   ├── controllers
│   └── models
├── extention
│   └── tcpdf
├── img
├── logic
│   ├── image
│   ├── item
│   ├── label
│   ├── quantity
│   ├── shelf
│   └── start
├── style
└── view
    ├── image
    ├── item
    ├── label
    ├── quantity
    ├── shelf
    └── start

.htaccessの中身は以下の通りです:

RewriteEngine On
RewriteBase /saso1_0/
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule !\.(pdf|ico|gif|jpg|png|css|html|xml)$ index.php

こう書いておくと、最後の行で指定した拡張子以外のファイルをどう呼びだそうと、
index.phpに飛ばされます。そして、そのindex.phpはアドレスバーに表示されません。

0 件のコメント:

コメントを投稿