我们已发布Ethnam v3
Ethnam是什么
“m”项目是Ethna的分支项目,旨在使Ethna更加轻量化和紧凑化。
我是开发者DQNEO。
这是否在实际中被使用?
我已在生产环境中实际运行并使用了约7年。顺便提一下,虽然我以外的人表示“正在考虑使用”,但我从未听说过有人实际使用过,实际上就等于自制的框架。
运行在现代PHP环境中
PHP 5.4、5.5、5.6是可运行的版本。
由于已在 Packagist 上发布,您可以通过 composer install 命令进行安装。
由于没有使用命名空间,会污染全局空间。
但是,现在好孩子们的库都各自包含在自己的命名空间中,所以几乎没有冲突的可能性(太傲娇了)。
Ethna和其他有什么不同之处?
我们非常重视与Ethna 2.5的向后兼容性,所以与Ethna 2.5相比差别很小。
如果硬要说,我们从Ethna中删除了一些额外功能,因此源代码量减少了。
下面,我將直接從CHANGES.md複製以下關於Ethna2.5的變更。
变更清单
(注:版本控制并不是出于语义上的原因,而是成人间的事情。)
3.0 版本的改动
-
- [core] ethnaコマンド一式(Ethna_Comman, Subcommandプラグイン, Generatorプラグイン, 全skelファイル)をethnam-generatorパッケージに分離。ethnam-generateコマンドに名称変更。
モノリシックだったEthnamを、疎結合な3つのパッケージに分離しました。これはSymfony哲学から学んだ成果です。 pic.twitter.com/XulvjNR173— ₍₍⁽⁽(ી(ˇωˇ)ʃ)₎₎⁾⁾ (@DQNEO) June 21, 2015
将源代码生成器分离出来的这个想法,受到了Node.js的Express 4的启发。非常感谢。
- [core] Ethna_ControllerのcheckAppId, checkActionName, checkViewNameをethnam-generatorに移管。
2.23的更新内容
-
- [core]ethnaコマンドを修正。add-projectが動くようになりました。
-
- [view] Smarty3のサポートを廃止
-
- [core] Smarty2.6を同梱するのをやめて、composer経由でインストールする方式に変更
-
- [core] miscディレクトリを削除
- [document] インストール・プロジェクト作成方法をちゃんと動く形で明記しました。
在2月22日的更新中的改动
-
- [session] $_GET,$_POSTからセッションIDを受け取らないようにしました。
-
- [session] check_remote_addr機能を廃止しました。
- [core] ActionClassのpreloadPlugin機能を廃止しました。
2月21日的更改
- [core]Ethna_Controller::getClientEncoding -> Ethna_Controller::getEncoding にリネームしました。
2.20での変更点
-
- [core] 文字コードをUTF-8のみサポートするようにしました。
-
- [core] EUC_JP用の文字列長バリデーション(strmaxcpmat, strmincompat)は廃止しました。文字列バリデーションにおけるmin/maxはmbstrmin/mbstrmaxと等価になります。
- [core] mbregexpバリデータを廃止しました。
2月19日的更新内容
-
- [core] mbstringモジュールを必須要件としました。
-
- [core] system_encoding変数は使われていなかったので廃止しました。
-
- [core] その他、language/encodingまわりの無駄なメソッドを削除しました。
mail MailSenderがcharset=utf8でメール送信するようになりました。内部エンコーディングがUTF-8になっているのを前提としています。
2月18日的修改内容。
-
- [core] ethna.sh周りをシンプル化。ethna_handle.phpをcommand.phpにリネームし、中身をEthna_Commandクラスに移動。
-
- [plugin] PEARのパッケージを管理する機能を削除
-
- [plugin] クラス名がわかりにくかったので変更(‘Handle’ -> ‘Subcommand’)
-
- [test] Travis-ci を使うようにしました。
- [core] class/ ディレクトリを廃止しました。(B.C.)
2.17での変更点
- [core]「アクション定義」機能を廃止しました。古い仕組みでほとんど使われていなかったため。( #21 )
2.16版本的更改点
- [core] ActionFormで、$form_templateと$formをマージするロジックを変更しました。( #20 )
2.15への変更点
-
- [i18n] バリデーションエラーメッセージで、form_nameにi18n変換が適用されるようになりました。
- [i18n] form_submitのvalueでi18n変換が適用されるようになりました。
2.14的变更内容
- [config] 設定ファイル名を{$appid}-ini.phpからconfig.phpに変更しました。
2月13日的更改内容
-
- [log] ログファイル名のデフォルトを{$appid}.logからapp.logに変更しました。
-
- [core] クラスファイルの置き場所のディレクトリをclassからsrcに変更しました。(PSR4に準拠させるための準備)
- [core] Packagistに公開しました!
2.12への変更点
-
- [core] composerでインストールできるようになりました。
-
- [core] PHP5.3のサポートを廃止しました。
-
- [i18n] Form定義の’name’がバリデーションエラーの際にi18n適用されるようになりました。
- [i18n] Form定義の’option’でi18n変換が適用されるようになりました。
对于2.11版本的更改内容
-
- Managerを$weak=trueで呼び出す機能を削除しました。
-
- Managerを自動でincludeしなくなりました。自前でオートロードしてください。
- Ethna_MailSenderのpreg_replace eを修正しました。
2.10への変更点
-
- RendererクラスでSmartyをロードしなくなりました。Appid_ControllerでSmartyをrequireするか、自前でオートロードしてください。
-
- SOAP Gatewayを廃止しました。
-
- Ethna_DB_PEARを廃止しました。
- Ethna_Controllerでpreg_matchがPHP5.5でDEPRECATEDになるのを修正しました。
2.9への変更点
-
- Backend#performを Controller#performへ引っ越ししました。
-
- ActionClassからViewClassにパラメータを渡す機能を廃止しました。
-
- E_DEPRECATED エラーを拾えるようにしました。(E_USER_DEPRECATEDについては未対応)
-
- Smarty のi18n modifierで引数を渡してsprintf的に使えるようになりました。(see Plugin/Smarty/modifier.i18n.php)
-
- GATEWAY_XMLRPCを廃止。
-
- UnitTestMamger, InfoMangerを廃止
- インストール方法をREADME.mdに書きました。
2.8版本的变更点
-
- AppObject, AppSQL, AppSearchObjectを廃止しました。[e871a1a]
- Windowsサポートを廃止しました。[4ec5802]
从Ethna 2.6(beta4)到Ethnam 2.7的变更内容
-
- コア
PHP5.4に対応しました。(主な変更はhtmlspecialcharsの第三引数です。)
インストール方法が変わりました。(pear installはできなくなりました。)
主なプロパティ・メソッドでprivate,protected だったものをpublicにしました。これはEthna2.5との後方互換を確保するためです。
ActionFormの配列バリデーション, {form ..}, {form_input ..},などの仕様を古い(2.3.5あたり?)状態に戻しました。 cc6d63e
bin/ethna.batを廃止しました。今後、Windowsは推奨環境から外れます。
PHP4の名残であった参照の&を除去しました。
EthnaManagerを廃止しました。
__ethna_info__, __ethna_unittest__を廃止しました。
設定ファイル(etc/{appid}_ini.php)が存在しないときに自動で作成する機能を廃止しました。
雑多なコンテンツファイルを補完するためのresourcesディレクトリを追加
Ethna本体がinclude_pathに置いてなくても(なるべく)大丈夫なように改善しました。
プラグインまわり
Puginの命名規則を2.5に近い状態に戻しました。プラグインのクラス名で2.5と同じようにAppIDが使えます。(例:Project_Plugin_Cachemanager_Memcache)
extlibを廃止しました。
Ethna_Plugin_Abstractを廃止しました。これによりプラグインの基底クラスはなくなりました。
CacheManager_LocalFileでsafeモードを無視するようにしました。
ログ関連
Ethna_ActionError#AddError()した際のログ出力をLOG_NOTICE -> LOG_INFO に変更しました。
ADODBのログ出力処理をオーバーライドできるようにしました。(ethna_adodb_loggerというグローバル関数内で処理がべた書きされていたのを改善)
ログファイルにメモリ使用量を記録するようにしました。
ログファイルに現在時刻をミリ秒単位まで記録するようにしました。
Validationのログをもう少し詳細に出すようにしました。
テンプレート関連
HTML5のに対応しました。(あくまで当座しのぎ的)
セッション関連
check_remote_addrをデフォルトで無効にしました。
その他
adodb/adodb.inc.phpをEthna側でrequireしなくなりました。(アプリケーション側でrequire_onceする必要があります。)
テスト関連
UnitTestManagerを廃止しました。
未来的计划 de
-
- PHP7に対応したい
- もっと小さくしたい