プログラミング123

定年近しプログラマーが作る 今のところは絵のないカルタです。

82.生ショート 開けるの怖い 横倒し

足場機能の実例として、
PHP 言語の Web フレームワークであるCakePHP を紹介します。

CakePHP はデータベースのテーブル構成情報を元に
bake コマンドで足場( scaffold )機能を利用して、 
CRUD プログラムコードを自動生成できます。

『宝物相続アプリ』を例に採ります。

『宝物相続アプリ』でできることは
①一つの宝物を複数の相続人に分け与える。
②宝物の入手経緯を思い出話として記述する。
③画像ファイルをアップロードして、添付する。
④画像サムネイルを利用できる。
⑤法的な効力は まったく考慮しない。
です。

CakePHP の規約に従い、
テーブル名は英語の複数形、参照にはテーブル名を単数形にして _id を付けます。
相続人_宝物は n:m の結びつきを可能にします。
相続人数、宝物数は _count とします。

テーブル構成は以下とします。
共通
Idid
 
 
作成日時created
更新日時modified
宝物treasures
名称title
宝物種別Idtype_treasure_id
表示順disp_order
入手経緯detail
価値value
相続人数successor_treasure_count
相続人successors
氏名name
続柄relation
表示順disp_order
宝物数successor_treasure_count
価値合計value_total
相続人_宝物successor_treasures
相続人Idsuccessor_id
宝物Idtreasure_id
割合percent
イメージimages
宝物Idtreasure_id
名称image_name
ファイル名file_name
ファイルタイプfile_mime
ファイル大きさfile_size
画像幅image_w
画像高さimage_h
画像中身image_content
サムネイル幅thumbnail_w
サムネイル高さthumbnail_h
サムネイル中身thumbnail_content
宝物種別type_treasures
種別名name

上記のテーブルをデータベース上に作成して、
足場機能を使用すると以下のようなアプリが
自動生成されます。
ただし、画像関係の処理は含まれません。


f:id:programingcram:20180922171458p:plain


f:id:programingcram:20180922171518p:plain


f:id:programingcram:20180922171541p:plain

これは環境がそろっていた場合の話です。

環境を整備する必要がある場合には試験用として、
XAMPP というパッケージで
Web サーバ、DB サーバ、PHP 言語を一括で、
インストールすると良いです。

その後、パッケージマネージャ( composer )をインストールして、
CakePHP3 をダウンロードすることになります。
その際、PHP 言語の国際化対応モジュールが必要になります。

これらの作業を一人でするのは お薦めしません。
つまづいた時に誰かにサポートしてもらえる環境で行いましょう。