基本的な使い方
インストール
リリースノート
ESPスターターキット
ESPを始めるためのミニマムなファイルセットです。
git:
標準的なディレクトリおよびファイル構成
/var/www/esp/
|--_esp36/
|--.esp/
|--_esp_tips.php
|--esp.php
|--hard/
| |--loaded/
|--install.sh
|--modules/
|--prototype/
| |--private/
| | |--_log/
| | |--tips_all.php
| |--public/
| | |--.htaccess
| | |--favicon.ico
| | |--index.php
|--tips_all.php
|- .esp/
|- my_project/
|- _log/
/var/www/html/
|--.esp/ -> /var/www/esp/_esp36/.esp
|--.esp_tips.php
|--.htaccess
|--_html/
|--favicon.ico
|--html/
|--index.php
手順
1.ESPスターターキットをWebサーバにダウンロードします。
$ git clone
2.アプリケーションプロジェクトをクリエイトします。
$ cd /var/www/esp/_esp36 & install.sh my_project /var/www/html
3.URLが表示できれば成功です。
アプリケーション:http://myproject.crowdventure.online/
ESPマネージャ:http://myproject.crowdventure.online/_esp/
はじめに
ESPとは?
ESPとは?
コンセプト
コンセプト
Tip
アプリケーションプログラムのすべてはTipに記述します。
既存の外部ライブラリはその限りではありませんが、そこに格納することも可能です。
SoftTip
アプリケーションの定義です。
HardTip
いわゆるプログラムモジュールです。
想定する役目
ESPの重要なコンセプトのひとつは分業です。次のような役目を想定しています。
- アプリケーション定義者
- アプリケーションを定義する人です。アプリケーションディレクターやビジネスディレクターなどでプログラムに関するテクニカルなスキルは必要ではありません。
※ただしロジック定義のスキルは必要であり、広義でのプログラミングのスキルは役に立ちます。 - アプリケーション制作者
- ESPでアプリケーションを動作させるエンジニアリング的な責任を負う人です。いわゆるインフラエンジニアレベルのスキルを想定しています。
- HardTip開発者
- 既成のライブラリを利用してHardTipを作成する人です。ライブラリをESP-HardTipでラッピングします。
すべきことは定形的で限られているので通常のプログラマより低レベルのスキルを想定しています。新しく何か”発明的な機能”を作るのでなければこのレベルで十分です。
コア
ESPのコアは極めてシンプルです。それぞれの役割で知っておくべきESPコアのメソッドはごく限られています。
- アプリケーション定義者向け
- アプリケーション制作者向け
- ESPコアメソッド
- ESP::start
- システムのエントリ。
- HardTip開発者向け
- ESPコアメソッド
- ESP::_act
- オブジェクトを機能させる。
- ESP::_action
- 任意のHardTipでオブジェクトを機能させる。
- ESP::_tipsGet
- Tipを取得する。取得するデータの型によりバリエーションがある。
- カスタマイザブルHardTip
アプリケーション制作時の標準的な編集対象ファイル
ユーザーはごく限られたファイルをカスタマイズします。
0 | 1 |
---|---|
/var/www/html/.htaccess | |
/var/www/html/.esp_tips.php | オーバーライドするシステムTips(PHP配列形式) |
/var/www/esp/_esp36/my_project/tips_all.php | アプリケーションプロジェクトTips(PHP配列形式) |
/var/www/esp/_esp36/my_project/hard/ | ユーザー定義のHardTipを外部ファイルとして作成する場合の設置場所 |
コア
ESPのコアについて解説します。
Tipsの場所
Tipsが記述されているファイルです。
1.システムTips
ESPアプリケーションをスタートするために必要最低限のTipsです。
ほとんどの場合このファイルを編集することはありません。
ESPシステム全体に共通でかつシステム初期化フェーズで参照されるTipを追加編集したければここに記述することができますが、次の"オーバーライドされるシステムTips"に記述する方が安全です。
もし同一のESPシステムで複数のプロジェクトを運用しており、全てに共通のTipを追加編集したければここに記述するのが効率的です。
/var/www/esp/_esp36/_esp_tips.php
2.オーバーライドされるシステムTips
システムTipsをオーバーライドすることができます。
複数のプロジェクトを運用しておりプロジェクトごとに異なる値が必要なTipsはここに記述します。
初期状態では開発ライフステージとドキュメントルートが設定されています。
たとえばアプリケーションTipsをどこからロードするかはここに記述します。
/var/www/html/.esp_tips.php
3.アプリケーションTips
アプリケーションを定義するすべてのTipsをここに記述します。
ファイルもしくはDBのいづれか指定された場所からロードされます。
初期状態では以下のファイルが指定されています。
/var/www/esp/_esp36/my_project/tips_all.php
4.ランタイムTips
HardTipにより随時動的にTipsがセットされます。
リクエストパラメータ、セッション、DBなどのデータ値などありとあらゆるデータは例外なくTipsにセットされTipsから取得して利用されます。
スタートシーケンス
システムが動作する初期時点のシーケンスです。
1.URLは以下のように分解されてTipに設定されます。
myproject.crowdventure.online/mysite/page/subpage/arg1/arg2
↓
__path=mysite/page/subpage/arg1/arg2
__project=my_project
__site=mysite
__page=page/subpage/arg1/arg2
関連するファイル
/var/www/html/.htaccess
/var/www/esp/_esp36/my_project/_esp_tips.php
2.index.phpがコールされます。
ESPシステムのエントリとして、ESP::startメソッドがコールされます。
関連するファイル
/var/www/html/index.php
<?php
// Include ESP core
require ".esp/../esp.php";
// Start ESP system
ESP::start('project');
3.ESP::startメソッドがコールされます。
public static function start($name){
// システムTipをロード
self::_filesGuard([__DIR__."/_esp_tips.php",".esp_tips.php"]);
global $_tips;
$tips = ["@@config/esp/dir"=>__DIR__ . '/']
+ (@$_tips ?: [])
+ (require ".esp_tips.php")
+ (require __DIR__."/_esp_tips.php");
// システム初期化シナリオを実行
self::_act('scenario/simple','@@system');
// アプリケーションアクションを実行
// 通常project/scenarioがシナリオとして実行される。
self::_action($name);
}