-
Notifications
You must be signed in to change notification settings - Fork 0
/
TODO.html
332 lines (331 loc) · 14 KB
/
TODO.html
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
<!DOCTYPE html>
<html lang="ja">
<head>
<meta charset="utf-8">
<title>Ethnamドキュメント</title>
<link href="css/style.css" media="all" rel="stylesheet" />
<link href="css/github.css" media="all" rel="stylesheet" />
</head>
<body>
<p><a href=".">目次</a></p>
<div class="blob instapaper_body">
<article class="markdown-body entry-content">
<h1>TODO(ロードマップ)</h1>
<p>ユーザーの方々からの要望や、開発者が思い描いているTODOを纏めています。終わったものについては、削除 マークをつけることで、進捗度を示しています。</p>
<p>また、ここに記載している事柄については、IRC やメーリングリストで話し合われています。詳しくは <a href="ethna-community.html">コミュニティ</a> のページをご覧下さい。</p>
<ul>
<li>TODO(ロードマップ)
<ul>
<li>2.6.x〜 </li>
<li>概要 </li>
<li>変更点詳細 </li>
<li>2.5.x〜 </li>
<li>2.5.0 preview3: NOW WORKING </li>
<li>2.5.0 preview2: DONE 2008/10/11 release. </li>
<li>2.5.0 preview1: DONE 2008/07/16 release </li>
<li>2.3.x〜: DONE </li>
<li>2.3.0-preview1: DONE 2006/07/09 release </li>
<li>2.3.0-preview2: DONE 2006/07/16 release </li>
<li>2.3.0-preview3: DONE 2006/07/23 release</li>
<li>2.5.0 以降 (重要!) </li>
</ul></li>
</ul>
<p>| 書いた人 | sotarok | 2011-01-07 | 3.0.x 削除、 2.6.x 作成 |
| 書いた人 | sotarok | 2010-02-22 | 3.0.x 作成 |
| 書いた人 | mumumu | 2008-11-13 | 新規作成 |</p>
<h3>2.6.x〜</h3>
<ul>
<li>基本方針
<ul>
<li>2.5.x + preview 5 + α を PHP 5.3.x で動かせるようにした版</li>
</ul></li>
</ul>
<h4>概要</h4>
<ul>
<li>PHP 5.3 対応</li>
<li>プラグイン機構の修正</li>
<li>View機能の拡充</li>
</ul>
<h4>変更点詳細</h4>
<ul>
<li>Core
<ul>
<li>[Breaking B.C.] PHP 5.3 Compatible</li>
<li>アクセス修飾子の調整(private|protected|public, static) とそれに伴う skel, test等の調整</li>
<li>不要な参照渡しの除去</li>
<li>コンストラクタのメソッド名変更</li>
<li>[Breaking B.C.] ファイル名の命名規則の変更</li>
</ul></li>
<li>Renderer
<ul>
<li>Smartry3 対応</li>
<li>レンダラー対応</li>
</ul></li>
<li>View
<ul>
<li>デフォルトのレイアウト化</li>
<li>Viewメソッド追加(header(), redirect() 等)</li>
</ul></li>
<li>プラグイン
<ul>
<li>[Breaking B.C.] プラグインの命名規則変更</li>
<li>extlibプラグインの読み込み機構</li>
<li>SmartyプラグインのSmarty 3対応</li>
</ul></li>
<li>Debugging
<ul>
<li>extlib の Debugtoolbar の同梱</li>
</ul></li>
</ul>
<h3>2.5.x〜</h3>
<h4>2.5.0 preview3: NOW WORKING</h4>
<ul>
<li>
<p>DBまわり</p>
<ul>
<li>既存ドライバを Ethna_DBインターフェイスにあわせる</li>
<li>インターフェイス及び、その子クラスの実装がバラバラで腐ってるのを再実装</li>
<li>インターフェイスは汎用的なDBアクセスレイヤを選ぶ方向。PDOや、JDBC等。</li>
<li>各DBドライバ(PEAR::DB, adodb, CreOle 等) の独自機能については、PHP5 であれば __call を呼べばよいが、PHP4 も一応扱うからにはwrapperを書くしかない</li>
<li><a href="http://www.mumumu.org/~mumumu/tmp/Ethna_DB.phps"><a href="http://www.mumumu.org/~mumumu/tmp/Ethna_DB.phps">http://www.mumumu.org/~mumumu/tmp/Ethna_DB.phps</a></a></li>
<li><a href="http://www.mumumu.org/~mumumu/tmp/Ethna_DB_Statement.phps"><a href="http://www.mumumu.org/~mumumu/tmp/Ethna_DB_Statement.phps">http://www.mumumu.org/~mumumu/tmp/Ethna_DB_Statement.phps</a></a></li>
<li>AppObject をその上でSelectableにする</li>
<li>ロギング周りを可能なら見直し検討</li>
<li>Ethna_DB_PDO の追加</li>
<li>テストを書いて確認しながら作業</li>
</ul>
</li>
<li>動的フォームを ActionForm とうまく連携できるように
<ul>
<li>Ethna_ActionFormのコンストラクタから呼ばれるフックを追加 -> 追加済</li>
<li>フォームヘルパ用の動的フォームAPIも追加する</li>
<li>validate() する前に、どう値の正当性を確保させるかが課題</li>
<li>View との連携なので、基本的にはvalidate済みなのが前提だが、validateone あたりが欲しいところか</li>
</ul></li>
<li>
<p>ひとつのViewに複数Formが存在した場合に、値を設定させる標準的な方法を実装する</p>
<ul>
<li>現在の Ethna の実装は ひとつのViewにひとつのFormが基本</li>
<li>{form name= .... の部分を使う</li>
<li>これは既に {form default=...} でできることだった。</li>
<li>複数フォームがあった場合の動作を改善させた</li>
<li>値の補正をsubmitされたformに限るようにした</li>
<li>submitしたフォームを区別するようにした</li>
</ul>
</li>
<li>
<p>Session</p>
<ul>
<li>Ethna_DB_Session (assigned to maru_cc)</li>
<li>Ethna_Session_MobileJP(assigned to maru_cc)</li>
<li>セッション格納ディレクトリ等の設定を [appid]-config.php で可変に出来るように</li>
</ul>
</li>
<li>
<p>フォームテンプレートのシンタックスシュガー -> 実装済み</p>
<ul>
<li>'def' => array(), としなくても、'def', と定義するだけで親のフォームテンプレートの定義を補うようにする</li>
</ul>
</li>
<li>
<p>URLHandler</p>
<ul>
<li>プラグイン化して取り込み</li>
</ul>
</li>
<li>
<p>Ethna_SmartyPlugin -> 分割済み</p>
<ul>
<li>ファイル毎に分割してプラグイン化する</li>
</ul>
</li>
<li>
<p>多次元配列 -> 取り込み済</p>
<ul>
<li>id:syachiさんのパッチ取り込み</li>
<li>test を書くこと</li>
<li><a href="http://d.hatena.ne.jp/syachi5150/20081022/1224676038"><a href="http://d.hatena.ne.jp/syachi5150/20081022/1224676038">http://d.hatena.ne.jp/syachi5150/20081022/1224676038</a></a></li>
</ul>
</li>
<li>
<p>set_exception_handler</p>
<ul>
<li>未実装なので実装すること</li>
</ul>
</li>
<li>
<p>Testing -> DONE</p>
<ul>
<li>Ethna_ActionForm#validate 配列関連テスト</li>
<li>新規に実装した部分のリグレッションテスト</li>
</ul>
</li>
<li>
<p>Bug Fix</p>
<ul>
<li>複数ファイルアップロード時にrequiredが効かない件の調査 -> 修正済 DONE</li>
<li><a href="http://www.mumumu.org/~mumumu/sample/www/index.php?action_upload=true"><a href="http://www.mumumu.org/~mumumu/sample/www/index.php?action_upload=true">http://www.mumumu.org/~mumumu/sample/www/index.php?action_upload=true</a></a></li>
<li>Ethna_ActionForm::getHiddenVars で定義が配列で、値が非配列の場合にエラーになる件 -> 修正済</li>
<li>patch あり。テスト中</li>
<li><a href="http://maru.cc/~maru/ethna/tmp/ethna_actionform_gethiddenvars.patch"><a href="http://maru.cc/~maru/ethna/tmp/ethna_actionform_gethiddenvars.patch">http://maru.cc/~maru/ethna/tmp/ethna_actionform_gethiddenvars.patch</a></a></li>
<li>ethna pearlocal コマンドがなぜか list -a オプションだけ効かなくなっている件 -> 影響が大きいので 2.5.0 preview4 で取り込むことに</li>
<li>原因判明 patchあり。テスト中</li>
<li><a href="http://www.mumumu.org/~mumumu/tmp/ethna_getopt_new_nontest.patch"><a href="http://www.mumumu.org/~mumumu/tmp/ethna_getopt_new_nontest.patch">http://www.mumumu.org/~mumumu/tmp/ethna_getopt_new_nontest.patch</a></a></li>
<li>UnitTest が動作しないソースが存在する -> 修正済</li>
<li><a href="http://sourceforge.jp/tracker/index.php?func=detail&aid=10006&group_id=1343&atid=5092"><a href="http://sourceforge.jp/tracker/index.php?func=detail&aid=10006&group_id=1343&atid=5092">http://sourceforge.jp/tracker/index.php?func=detail&aid=10006&group_id=1343&atid=5092</a></a></li>
<li><a href="http://maru.cc/~maru/ethna/ethna_infomanager/Ethna_InfoManager_analyzeActionScript.patch"><a href="http://maru.cc/~maru/ethna/ethna_infomanager/Ethna_InfoManager_analyzeActionScript.patch">http://maru.cc/~maru/ethna/ethna_infomanager/Ethna_InfoManager_analyzeActionScript.patch</a></a></li>
<li>loggerのendメソッドが呼ばれる箇所がないため、Logwriterプラグインのendメソッドの実装がすべて、呼ばれる場所がない件 -> 修正済</li>
<li><a href="http://d.hatena.ne.jp/sotarok/20081204/1228394337"><a href="http://d.hatena.ne.jp/sotarok/20081204/1228394337">http://d.hatena.ne.jp/sotarok/20081204/1228394337</a></a></li>
</ul>
</li>
<li>Documentation
<ul>
<li>少なくとも現状に沿うように再整備</li>
<li>ロギング</li>
<li>config</li>
<li>DBまわり</li>
<li>セッション</li>
</ul></li>
</ul>
<h4>2.5.0 preview2: DONE 2008/10/11 release.</h4>
<ul>
<li>
<p>Programming</p>
<ul>
<li>"ethna i18n" コマンドの実装 -> DONE</li>
<li>PEAR 依存の排除 -> DONE</li>
<li>B.C コードのうち、可能な部分の排除 -> DONE</li>
<li>メッセージカタログのパーサが Line Parser でしかない点を修正し、複数行にも対処できるようにする -> DONE</li>
<li>sekido さんによるパッチ取り込み [ethna-users:1053] -> DONE</li>
<li>smarty_modifier_checkbox の修正(実装が仕様に反している) -> DONE</li>
<li>Ethna_ActionClass に $logger を付け足す -> DONE</li>
<li>Ethna_ViewClass に $ctl を付け足す -> DONE</li>
<li>フォームのテストでNOTICEが出て Exception としてカウントされる問題の対処 -> DONE</li>
<li>raiseError してもEthnaはログを吐いてコールバックを呼ぶのみ。trigger_error はしないので、E_NOTICE を吐くのはEthna内部の問題</li>
<li>調べてみると、Ethna_ActionError#_getActionForm が E_NOTICE を吐いていたので対処したところ、exception はカウントされなくなったとのこと。</li>
</ul>
</li>
<li>
<p>Testing</p>
<ul>
<li>"ethna i18n" コマンド リグレッションテスト -> DONE</li>
</ul>
</li>
<li>
<p>Documentation</p>
<ul>
<li>strtotime の件(厳密に言うとバグではない。どこまで救うのかを決める)</li>
<li>WONTFIX. ドキュメントにその旨明記する -> DONE</li>
<li>移行ドキュメントに追記 -> DONE</li>
<li>i18n まわりのドキュメント</li>
<li>i18n コマンドについて -> DONE</li>
<li>プロジェクトの i18n 化について -> DONE</li>
</ul>
</li>
<li>Release -> DONE
<ul>
<li>PEAR パッケージは チャンネルサーバには入れず、2.5.0 preview1のそれも削除>する。</li>
<li>stable しかチャンネルサーバには入れないポリシーにする</li>
<li>beta 版は <a href="http://pear.ethna.jp/get/Ethna-x.x.x-YYYYMMDDMM.tgz"><a href="http://pear.ethna.jp/get/Ethna-x.x.x-YYYYMMDDMM.tgz">http://pear.ethna.jp/get/Ethna-x.x.x-YYYYMMDDMM.tgz</a></a> にしか置か>ない</li>
<li>pear config-set preferred_state [beta|alpha] とかにしている人がアップグレードでハマるため。</li>
</ul></li>
</ul>
<h4>2.5.0 preview1: DONE 2008/07/16 release</h4>
<ul>
<li>
<p>UTF-8化</p>
<ul>
<li>エンコーディング依存の関数または動作洗い出し -> OK</li>
<li>Ethna_Plugin<em>Validator</em>[Min|Max] -> OK</li>
<li>Ethna_UnitTestReporter#__construct -> OK</li>
<li>Ethna_Plugin_Validator_Mbregexp -> OK</li>
<li>smarty_modifier_wordwrap_i18n -> OK</li>
<li>全角半角のvalidateメッセージ -> OK</li>
</ul>
</li>
<li>バグ(?) 修正
<ul>
<li>Ethna_ClassFactory#get[Manager|Object] -> OK</li>
</ul></li>
</ul>
<h3>2.3.x〜: DONE</h3>
<h4>2.3.0-preview1: DONE 2006/07/09 release</h4>
<ul>
<li>Ethna_Plugin追加</li>
<li>
<p>Ethna_Renderer追加</p>
</li>
<li>Ethna_Handleのプラグイン対応</li>
<li>
<p>Ethna_CacheManagerのプラグイン対応</p>
</li>
<li>Ethna_LogWriterのプラグイン対応</li>
</ul>
<h4>2.3.0-preview2: DONE 2006/07/16 release</h4>
<ul>
<li>
<p>(Ethna自体の)UnitTestサポート</p>
</li>
<li>
<p>ハードタブをソフトタブに</p>
</li>
<li>Ethna_ClassFactoryの汎用化</li>
<li>Ethna_AppManagerの汎用化(やっぱりやめました→近い将来プラグインのネットワークインストール対応→アプリケーションマネージャ、アプリケーションオブジェクトのネットワークインストール対応、という形で進めていきます)</li>
</ul>
<h4>2.3.0-preview3: DONE 2006/07/23 release</h4>
<ul>
<li>
<p>Ethna_ActionForm改善-- フォームレンダリングサポート</p>
</li>
<li>
<p>Ethna_AppObject改善-- テーブル定義->フォーム定義自動生成</p>
</li>
<li>プラグインリポジトリ構築/ネットワークインストール対応</li>
</ul>
<h3>2.5.0 以降 (重要!)</h3>
<ul>
<li>プラグイン機構の改善
<ul>
<li>グローバルなプラグインディレクトリを設ける</li>
<li>キャッシュ機構の検討</li>
</ul></li>
<li>複数プロジェクト間のリソースの共有方法を考える</li>
<li>AppObjectの扱いとORMの扱いを再検討
<ul>
<li>捨てる? 生かす? 車輪の再発明する? もしくは既存の実装を利用する?</li>
<li>同じ BSD-revised な rhaco のORMとかおもしろいかも</li>
</ul></li>
<li>Ethna_Controller のリファクタリング
<ul>
<li>XMLRPC, SOAP などを別コントローラに</li>
<li>simpletest 依存コードを Ethna_UnitTestManger に追い出す</li>
</ul></li>
<li>ビューコンポーネントサポート
<ul>
<li>汎用Viewを加えていく (redirect, 404, JSON 等)</li>
</ul></li>
<li>Ethna_Util#getDirectLinkList の改善</li>
<li>PHP5 専用にする(Ethna 3.0 以降)</li>
<li>更なるドキュメントの整備</li>
<li>ethnaコマンド改善
<ul>
<li>crudアクション一括生成</li>
</ul></li>
<li>Ajaxサポート(+ prototype.js (+ script.aculo.us連携))
<ul>
<li>JSONビュー対応</li>
<li>innerHTML対応</li>
<li>prototype.js連携(?)</li>
<li>(?)script.aculo.us連携</li>
</ul></li>
<li>REST対応
<ul>
<li>真の意味での Restful なアクション生成を</li>
</ul></li>
</ul> </article>
</div>
<div class="site-footer">
@2015 <a href="https://twitter.com/DQNEO">DQNEO</a>
</div>
</body>
</html>