トップページ⇒php
982コメント331KB

【PHPフレームワーク】Ethna【スケルトン自動作成】

■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん2005/08/03(水) 21:00:39ID:TuHx69hT
国産フレームワーク、Ethnaでいい意味で手抜きなプログラミングライフを。

Ethna -PHPウェブアプリケーションフレームワーク-
http://ethna.jp/

SourceForge.jp: Project Info - Ethna
http://sourceforge.jp/projects/ethna/
0792nobodyさん2007/02/05(月) 23:12:49ID:???
AppObjectの使いどころが良くわからない・・・

クエリ発行するには
AppManager->db->query();
でいいんだよね?

AppObjectって必要なの?
0793nobodyさん2007/02/06(火) 00:41:00ID:???
私は使ってません。
0794nobodyさん2007/02/06(火) 15:35:18ID:???
/etc/[APPID]-ini.php
内で セッション値やアクションフォーム値を使用するためには
どうすればいいでしょうか?
$this->session->get('hoge')
でやってみましたが、Call to a member function on a non-object
が出ました。
0795nobodyさん2007/02/06(火) 15:55:40ID:???
if( !empty( $this->af->get("hoge") ) ){
}
とするとエラーが出ます。

$hoge = $this->af->get("hoge");
if( !empty( $hoge ) ){
}

ならうまくいきます。へるぷみー
0796nobodyさん2007/02/06(火) 18:02:29ID:???
セッションの値をsmarty内で{$session.id}みたいな感じで
使えませんかね?
setApp するのがだるいのです。
0797nobodyさん2007/02/06(火) 19:35:30ID:???
>>795
PHP4だからじゃね?

>>796
[APP_ID]_ViewClass.phpの _setDefaultメソッドでアサインすれば?
0798nobodyさん2007/02/06(火) 19:52:01ID:???
>>795
emptyで調べられるのは変数のみ
http://jp.php.net/manual/ja/function.empty.php
07997942007/02/06(火) 20:22:16ID:???
>>797
レスありがとうございます。
おっしゃるとおり PHP4です。
PHP5にせずに何とかする方法はないでしょうか。
あとみなさんPHP5でエスナってるんでしょうか?
08007212007/02/06(火) 23:30:31ID:???
>>794
>/etc/[APPID]-ini.php
>内で セッション値やアクションフォーム値を使用するためには
>どうすればいいでしょうか?

そんなやり方はしないヨ。

/etc/hogehoge-ini.php
には、設定値を書くから、設定値をセッションで上書きするって言う使い方はしない。
設定値はethna_configオブジェクト(のサブクラス)として存在してて、
そのロードはControllerのコンストラクタで行われてて、それってEthnaの起動のほぼ直後。
もちろん、Sessionが始まるより遥か前。

そもそも、セッションオブジェクトやアクションフォームオブジェクトは
AppManager/AppObject/ActionClass/ViewClass内のみで使われることを
想定としてるから、そんな変なところではアクセスできるわけがない。
0801nobodyさん2007/02/07(水) 09:06:56ID:???
>>793
792です。
自前のクラスを使うことにしました、ありがとう。

いろいろ調べてみて、現状ではAppObjectを他のフルスタックフレームワークのModelと同じように考えてはいけないと思いました。

何でこんな中途半端なものがくっついてるんだろう?
混乱するだけなのにな・・・。
0802nobodyさん2007/02/07(水) 17:46:41ID:hhcgJkB/
>何でこんな中途半端なものがくっついてるんだろう?
私はメチャメチャ使っています。
とにかく、ActionClassの行数を増やしたくないので、とりあえずAppManager/AppObjectにという感じで。
0803nobodyさん2007/02/10(土) 12:18:29ID:???
.tplが勝手にキャッシュされて
htmlミスりまくりの自分としてはテスト中はかなり不便なんですが、
どこかでキャッシュの設定はできるんでしょうか?
smartyのキャッシュ設定はoffになってました。

本家でキャッシュで調べましたが、見つかりませんでした。
0804nobodyさん2007/02/11(日) 11:49:01ID:???
アクションのフォワードってどうやるんですか?
0805nobodyさん2007/02/11(日) 15:03:58ID:???
>>804
できません。
0806nobodyさん2007/02/11(日) 23:05:45ID:???
>>804
やはりリダイレクトかアクションの継承になるんでしょうか。
0807nobodyさん2007/02/12(月) 01:51:26ID:???
>>806
継承だったらこんな感じになるのでしょうか?

Base_Action
{

function doHoge()
{
}
function doFuga()
{
}

}

class Action_A extends Base_Action
{
function perform()
{
$this->doHoge();
}
}

class Action_B extends Base_Action
{
function perform()
{
$this->doHoge();
$this->doFuga();
}
}
0808nobodyさん2007/02/14(水) 23:01:46ID:pcigeSJ1
行数のかさむコードには誰も反応しない。。w
0809nobodyさん2007/02/15(木) 00:08:38ID:???
行数がかさまないように、括弧の前後にある改行を消せばいいの?
08107212007/02/15(木) 03:31:47ID:???
>>808
>行数のかさむコードには誰も反応しない
というか、何したいかいまいちよくわからん・・・・。
アクションのフォワードとかリダイレクトとかそれっぽい言葉があるが、
とりあえず言葉を使ってるだけ感がいっぱいで。
0811nobodyさん2007/02/16(金) 17:19:24ID:???
プロジェクトディレクトリまでの絶対パスの取得方法教えてくださいまし。
APPID/lib 内のファイルを操作したいです。
0812nobodyさん2007/02/17(土) 12:43:45ID:???
>>811
$_SERVER["SCRIPT_FILENAME"]からwww/index.phpを抜くのじゃ駄目か?
0813nobodyさん2007/02/17(土) 13:00:20ID:???
普通に__FILE__使えばいいだけでは。
0814nobodyさん2007/02/19(月) 17:44:59ID:???
ethnaでmod_rewriteが上手く使えない。
?や&で切れる。どうやればいいですか?
0815>>814 マルチ乙www2007/02/19(月) 23:38:21ID:???
http://mixi.jp/view_bbs.pl?id=11662178&comm_id=261369

19: 普通 ( http://mixi.jp/show_friend.pl?id=2134264 )
つい先日から、ethnaを使い始めたものですが、mod_rewriteで上手く飛ばせないので、どうかご教授ください。

簡単なブックマーク的なものを作成しようとしてるのですが、URLを
entry?uri=http://hoehogeをentry/hogehogeのようにしたいのですが、hogehogeに?や&などが含むとそこでとぎれてしまいます。
簡単に、
RewriteRule ^entry/(.+) /entry?uri=http://$1 [L] や
RewriteRule ^entry/(.+) /entry?url=http://$1%{QUERY_STRING} [L]

こんふうに書いたのですが、これがいけないのでしょうか?
?や&が含まれなければ、全てを取得できるのですが。。
はてブさんとかのエントリーと比較した場合、http://の://がはてブさんだとそのままだったのですが、自分のエントリーを見ると、http%3A%2F%2Fのようにエンコードされてしまいます。
これが原因なのでしょうか?
Smarty側のほうには、エスケープさせるsetAppNEがありますがこれは表示の問題で今回とは関係ないと思いますし。
もしかしたら、mod_rewriteの問題でここでの質問はおかしかったらすいません。すぐに削除します。
ただ、ethnaのエスケープ関連の問題でしたら、どうか解決法をご教授くださいませ。
よろしくお願いします。
0816nobodyさん2007/02/20(火) 00:59:16ID:???
解決法。
もっと簡単なプログラムから勉強し直す。
0817nobodyさん2007/02/21(水) 05:44:31ID:???
Smartyにcache_idを渡してページごとに複数のキャッシュを持たしたいんだけど、
できなさそうですね?
0818nobodyさん2007/02/22(木) 14:22:50ID:???
>>817
ここはEthnaのスレ
よそで聞け

ちなみに余裕で出来るぞ
0819nobodyさん2007/02/22(木) 15:16:44ID:???
Ethnaでって話しだろ?
0820nobodyさん2007/02/23(金) 04:10:03ID:???
>>818
Ethnaでの話ですよ、もちろん。

>>819
その通りです

ちょいと改造して解決しました
0821nobodyさん2007/03/01(木) 00:08:12ID:???
wamp環境でEthna使ってるんだけど、ethnaコマンドが黙り込むのはなぜ?

ethna add-action --basedir=dir sample

とかやるとき。
0822nobodyさん2007/03/01(木) 16:07:38ID:ue5nOCQJ
AppObjectで
SQLの関数使いたいとき、
たとえば
update some_table set some_date = now() where some_id = 1;
↑こんなかんじのことをAppObjectでやりたいときって
どうやればいいんでしょう
ちなみにPostgreSQLです
0823nobodyさん2007/03/02(金) 00:59:24ID:???
>>822
今のところ確かできなかったはず。
そのうち出来るようにしたいと言ってた気がする。
0824nobodyさん2007/03/02(金) 01:00:04ID:???
そのうちじゃなくて将来的に出来るようにしたいと言ってたんだったかな。
どっちでもいいが。
0825nobodyさん2007/03/05(月) 17:42:41ID:???
そのうちと将来的の違いについて教えて貰えるスレはここですか?
0826nobodyさん2007/03/05(月) 20:12:43ID:???
そのうち→実装する確率50%
将来的に→実装する確率20%
はやいうちに→実装する確率70%
気が向いたら→実装する確率0%
0827nobodyさん2007/03/06(火) 23:01:03ID:???
>>826
有り難うございます。
0828nobodyさん2007/03/07(水) 10:37:08ID:???
最近動きないね。
0829nobodyさん2007/03/08(木) 00:52:13ID:???
ちゃんと動いてるからじゃね。
0830nobodyさん2007/03/08(木) 04:27:37ID:???
$ pear channel-discover pear.ethna.jp
$ pear install ethna/ethna
でインストールできません・・・

アーカイブをダウンロードして展開したEthna-2.3.1の中に
Ethna-2.3.1とpackage.xml
が入ってるのですが、パスが通ったディレクトリに移動するべきディレクトリって中に入ってる方でしょうか?
08318302007/03/08(木) 05:04:28ID:???
自己解決しました。pearのバージョンが古かっただけでしたorz
0832nobodyさん2007/03/10(土) 19:15:21ID:???
PHP5でEthna使おうとしたら、E_STRICTに引っかかって使うのを中止にした。
せっかくマニュアル読んだのに。
0833nobodyさん2007/03/10(土) 19:26:45ID:???
PHP4ベースのコードがE_STRICT吐くのはしょうがないでしょ
0834nobodyさん2007/03/10(土) 20:16:36ID:???
まあそうなんだけど。
使ってる人は無視して使ってるの?書き換えてるの?
0835nobodyさん2007/03/10(土) 20:32:39ID:???
E_STRICTは無視してる
php.iniで。
0836nobodyさん2007/03/13(火) 05:04:38ID:HG/GLq71
AppObjectを使ってるときに、ファイルをアップロードして、そのファイル名をDBに入れるには?
ActionFormでアップロード用とファイル名ようにフォームを2つ定義?
0837nobodyさん2007/03/13(火) 14:29:12ID:???
気にせず
$db =& $this->backend->getDB();
$db->db->autoExecute(....
とかかいてるけどいいんだろうか。

AppObjectでWHERE文で一括DELETEとか出来たら楽なんだけどなぁ。SELECTはできるのに。
0838nobodyさん2007/03/13(火) 17:06:50ID:???
>>836
イマイチよくわからないが、これじゃダメなのか?

$filename = $_FILE['example']['name'];
$app_object->set('filename', $filename);
0839こんな藤本神は嫌だ2007/03/14(水) 09:01:38ID:???
Webシステム開発でEthnaを使わず、symfonyばっかり使う藤本神
0840nobodyさん2007/03/14(水) 11:57:04ID:???
>>839
マジで?

裏切りじゃん・・・。
0841nobodyさん2007/03/14(水) 12:02:12ID:???
>>840
愚かなやつめ。
司令官はいつだって真っ先に危険を察知して、逃げるものだ。
0842nobodyさん2007/03/14(水) 14:03:59ID:???
symfonyは保守をしっかりやると宣言してるので、Ethnaに勝ち目は薄いね
0843nobodyさん2007/03/14(水) 15:24:20ID:???
>>840
名前欄嫁
0844こんな藤本神は嫌だ2007/03/14(水) 15:25:49ID:???
mixi中毒な藤本神
0845nobodyさん2007/03/14(水) 15:28:55ID:???
メール欄でもないのに、引っかかるお前らカワイス
0846nobodyさん2007/03/14(水) 18:58:02ID:???
テラワロス
0847nobodyさん2007/03/14(水) 23:56:44ID:???
ギザカワユス
0848nobodyさん2007/03/16(金) 00:48:50ID:???
         ____
       /      \
      /  ─    ─\
    /    (●)  (●) \  「カワユスナァ、カワユスナァ」・・・・と
    |       (__人__)    | ________
     \      ` ⌒´   ,/ .| |          |
    ノ           \ | |          |
  /´           カタ.    | |          |
 |    l             カタ  | |          |
 ヽ    -一ー_~、⌒)^),-、   | |_________|
  ヽ ____,ノγ⌒ヽ)ニニ- ̄   | |  |       ____
0849nobodyさん2007/03/16(金) 23:20:57ID:???
AppObjectで、
http://ethna.jp/ethna-document-dev_guide-appobj-overview.html
には
....
$prop_defメンバには、フィールド定義を記述します。
今のところ、スキーマの自動取得は対応していません(有った方がいいですかねー?)。 Ethna-2.3.0では自動取得されるようになりました。
....
とあって、多分これ
http://ethna.jp/pipermail/users/2006-January/000165.html
あたりがマージされてるのかと思ったんですが

ethna add-app-object sometable
としてもpropdefは空で何も無いですよね?つーかskel.app_object.php自体がテーブル名以外は作られそうに無いし・・・
DBからスキーマを自動取得してマッピングされたAppObjectを生成するのは特別な方法があるんでしょうか?
0850nobodyさん2007/03/17(土) 00:50:06ID:???
$this->af->getArray()
の使い方がリファレンス見ても良くわからんのですが、

$form = $this->af->get('test');
$form_array = $this->af->getArray();

で、
$form_array['test'] と $form は等しくなる、
という考えて間違ってますでしょうか?
なぜかうまくいかないので間違ってる気がするのですが。
0851nobodyさん2007/03/17(土) 01:26:51ID:???
>>849
prop_defは省略できる
最初のDBアクセスでテーブル定義を取得して、
/tmp/cache/default(だったかな?)にseriarizeしたものが保存されるようになってる

でも、prop_def自動定義も欲しいところだな
藤本神もいちい氏もAppObjectを改良したいみたいなこと言ってるから、そのうち(相当先だろうけど)変わるかもしれない
0852nobodyさん2007/03/17(土) 03:37:48ID:???
>>851
>/tmp/cache/default(だったかな?)にseriarizeしたものが保存されるようになってる
PHP5以降な。
0853nobodyさん2007/03/17(土) 19:32:51ID:???
ttp://d.hatena.ne.jp/moriyoshi/20070315/1173979493
なんだかなぁ。
0854nobodyさん2007/03/17(土) 21:37:37ID:???
ほとんど宗教論争

不毛だ・・・
0855nobodyさん2007/03/18(日) 08:17:38ID:???
> 一時期生活がままならないほどPHPのバグハンティングにのめり込むが、
> 現在はすっかり飽きている様子。

依存症かよw
0856nobodyさん2007/03/20(火) 17:22:43ID:???
ethna使いたてです。
appManagerから別のappManager呼び出したい時って
どうやってするんでしょうか?

0857nobodyさん2007/03/20(火) 17:42:03ID:???
>>856
普通に
$this->backend->getManager('hogehoge');
とかでできるんじゃないか?
08588562007/03/21(水) 23:53:28ID:???
>>857
あ、単純にtypoしてただけでした・・
1回やってみただけでこれじゃだめなんだと決め付けてました。
$this->backend->getManager('hogehoge');
で行けました。ありがとうございました。
0859nobodyさん2007/03/22(木) 17:24:28ID:???
ありがちな情報管理ページで、
?action_edit=true&id=1
と指定された際にDBからid=1のレコードを取得($row)して
$this->af->setApp('name', $row[name]);
したものを
name:<input type="text" value="{$app.name}">
とフォームに表示して修正、と言った感じの場合に、

validate()に引っかかって再修正とか、「修正しました」とメッセージを表示してまた同じようにフォームを表示と言った処理をしたい
場合は毎回
$this->af->setApp('name',$this->af->get('name');
と書いて回るのが普通なんでしょうか?

それとも、最初に表示する際に
$this->af->form_vars['name'] = $row[name];
と直接代入してしまって($af->setForm()って無いですよね?)
name:<input type="text" value="{$form.name}">
と処理してしまって良いものなのでしょうか?
0860nobodyさん2007/03/22(木) 18:48:43ID:???
あ、af->setForm()ってのを探して無かったから勘違いしてたけどaf->set()で良いのか・・・
0861nobodyさん2007/03/30(金) 18:17:00ID:???
良くある情報入力→DB登録のようなページで
入力画面表示を
action_add
としたら、そこからPOSTしてDB登録する動作を
action_add_do
にした場合、ActionFormの中身って両方(Add.php,Add/Do.php)に同じものを書くしか無いんでしょうか?(Do.phpのprepare()でvalidate()する)

add.tpl内で{input_name="form_a"}とか使わないで全部<input type=text name=form_a value={$form.form_a}>
とか書いていけばDo.phpだけにActionForm書くだけでも問題は無いですけど・・・
0862nobodyさん2007/03/30(金) 18:24:04ID:???
>>861
同じ物を書くか、俺の場合はフォーム定義を外部化出来るようにしたよ。
0863nobodyさん2007/03/30(金) 19:09:22ID:???
>>861
add-view action_add
して、その中で
var $helper_action_form = array('action_add_do' => null);
する。
08648632007/03/30(金) 19:14:21ID:???
追加。(途中で送信しちまった)

{form ethna_action="action_add_do"}
{form_input name="form_a"}
{/form}

とか書けば、Viewの省略も可能。
08658612007/03/30(金) 20:17:37ID:???
>>862
取り合えずEthna始めたばかりなのでなるべくコアは弄らないで試してみようかなと。
私はあまりに面倒だったので簡単な書式のテキストからActionForm形式のarrayを吐き出すスクリプトは作ったんで毎回指定しても良いんですけどねぇ。
なんか二度手間は気持ち悪いというか。

>>863
なるほど、使用するActionFormを指定することが出来るんですね。
有難う御座います。

ところでSELECT,CHECKBOXなんかで
$form=array(
'managers'' => array(
 'type'    =>  VAR_TYPE_INT,
 'form_type'    =>  FORM_TYPE_SELECT,
 'name'    =>  '担当者',
 'option'    =>  array(),
 ),
);
なんてのを定義して、リストは
function prepare() {
...
$res = $db->getAll("SELECT id,name FROM managers");
$options = array('0'=>'--');
foreach($res as $r){
 $options += array($r['id']=>$r['name']);
)
$this->af->form['managers']['options'] = $options;
return null;
}
の様に動的にDBから取って来る、ってのも良くあるパターンだと思うんですがこう言う処理はAppManagerにして使いまわすのが流儀ですかね?

なんか、物凄いありがちでフレームワークによきに計らって貰いたいselected,checked処理関連がマニュアルから良さ気なのが見つけられ無かった・・・
08668632007/03/30(金) 21:22:18ID:???
>>865
optionの指定は、配列指定する他に2種類あって、
array(
==snip==
'option' => 'managers'
)

こう指定してやると、ActionFormにmanagersメソッドがある場合は、その返り値がoptionに入る。$af->managers = array()みたいに、直接配列が入っていてもOK

そして、'option' => 'man, managers'としてやれば、AppID_ManManagerのgetAttrListが呼ばれる。
$man->getAttrList('manager');のように呼ばれるから、
manのgetAttrListをオーバーライドしてやる。
デフォルトだと、manの変数 $managers_list を参照しようとするから、DBかませたいときは、getAttrListのオーバーライドが一番手っ取り早いかな

ブラウザのフォームで書いてるからtypoあるかもしれない、適宜脳内変換して読んでください。。

ちなみに、ActionFormの定義は、BoBppさんのビルダが便利。
http://as-roma.com/ethna/formBuilder/
0867nobodyさん2007/03/31(土) 03:05:42ID:???
マネージャでコンストラクタに変数渡したい場合、
呼び出すとき、どう記述すればいいでのしょうか?

例:
class Hoge_AbcManager extends Ethna_AppManager
{
function Hoge_AbcManager( $watasitai_var )
{



通常の方法ではコンストラクタに渡す変数を指定できませんよね?
$HOGE_m =& $this->backend->getManager('Hoge');
0868nobodyさん2007/03/31(土) 09:04:45ID:???
使い方を間違ってる。
0869nobodyさん2007/03/31(土) 10:03:27ID:???
>>867
コンストラクタに渡したいって変数なら、アクションやビューに
依存しない変数だよね。managerを呼ぶ時に常に行う処理ってことだから。

で、そういうのはbackendに詰めるでしょ。
すると、そもそもmanagerはbackendを持ってるから
$this->backend->ってやればコンストラクタで変数取れるじゃん。ってことだと思う。

やるなら、backend::getManagerをオーバーライドして、ってなるんだろうけど
ただのバッドノウハウになるね。
0870nobodyさん2007/03/31(土) 12:22:34ID:???
>>861
class Sample_Form_AddDo extends Sample_Form_Add

俺はこうしてる。
0871nobodyさん2007/04/04(水) 18:42:23ID:???
>>870
それって勝手にそれぞれのDo.php等の中で
例えばAdd/Do.php内で
require_once 'Add.php';
して?

うーむ、更にModify,Modify_Doとかでも使いまわすことを考えるとそれも現実的かなぁ・・・
0872nobodyさん2007/04/04(水) 21:23:16ID:???
>>871
870じゃないが、このやり方は確か藤本氏がサンプルでやってた方法だったかと。
ひとつ上のクラスだったら
require dirname(__FILE__).'.php' でおk
別のクラス呼ぶなら、直接ファイル名記述。
0873nobodyさん2007/04/16(月) 15:15:35ID:KZll3+ph
初心者ですが、すいません

WindowsXP + IIS にEthnaをインストールしようと
「アプリケーション構築手順(1) 」に従って
インストール、スケルトン作成まで終わったのですが、
index.phpを指定してもブラウザに表示されません

何が悪いのでしょうか?

アドレスは
http://localhost/sample/www/index.php
と指定しています

0874nobodyさん2007/04/16(月) 23:03:05ID:ty8BPgJH
tmpのパーミッションとかは?
0875nobodyさん2007/04/17(火) 02:22:21ID:???
>>873
> 何が悪いのでしょうか?

>初心者ですが
>WindowsXP
>IIS
>http://localhost/sample/www/index.php
この4つかな。
0876nobodyさん2007/04/17(火) 12:32:32ID:???
>>873
そのページに従ってやったならそのアドレスはおかしいんじゃないの?
0877nobodyさん2007/04/24(火) 01:57:17ID:XNYrKVIb
通常のPHPからEthnaへsession変数渡せないでしょうか?
昔作ったプログラムからEthnaへ遷移したいんだけど、session変数が渡せなくて、挫折気味・・・
0878nobodyさん2007/04/24(火) 02:45:37ID:???
>>877
んー、「昔作ったプログラム」のセッションIDの付け方がまちまちだとダメだね。

でないなら、Ethna_Sessionを自前のクラスでOverrideさせて、
SessionIDを決めるロジックだけそのIDで上書きすればOK。

あとは、ActionClassでセッションをスタートさせれば普通に取れるはず。
0879nobodyさん2007/04/24(火) 11:13:37ID:???
>>878
ありがとうございます!
「昔作ったプログラム」では、session_start()だけでID決めてるんで、IDはまちまち・・・だと思います。(この辺よく理解していないですが)

Ethna_Sessionのロジックがよくわからない初心者なので、とりあえず
 �@クッキー($_COOKIE["PHPSESSID"])からセッションID取得して、
 �Asession_id()でセッションID設定して、
 �B「昔作ったプログラム」で保存されたディレクトリのセッションファイルと照合
って流れにムリクリしてるんですが、
�@でクッキーが取得できず・・・なぜだろう・・・、
0880nobodyさん2007/04/24(火) 19:10:42ID:/+uAa599
Hoge_Controller.phpのテンプレートから$managerが
いつの間にか消えてたんだけど、$managerってobsoleteな仕様なの?
http://cvs.sourceforge.jp/cgi-bin/viewcvs.cgi/ethna/ethna/skel/app.controller.php?r1=1.21&r2=1.22
08818782007/04/25(水) 02:11:01ID:???
>>879
SessionIDの言い方がマズかった。というか、間違った。すまん。

PHPSESSIDならそれをEthna_SessionのセッションIDのキーにしてやる。ということ。
デフォルトではEthnaはHoge_Controllerとか使ってる場合=HogeがアプリケーションIDの
場合、HogeSESSIDをセッションIDのキーに使う。PHPのデフォはPHPSESSIDだね。


で、この「HogeSESSIDをセッションIDのキーに使う」っていうロジックをOverrideさせろ
っていうこと。
ControllerでセッションのクラスをEthna_SessionからHoge_Sessionに書き換えて、
class Hoge_Session extends Ethna_Session{
function Hoge_Session($appid, $save_dir, $logger)
{
$this->session_name = "PHPSESSID";
//あとはEthna_Sessionのコンストラクタと同じのをコピペ
// もちろん、一行目は抜かせよ。w
}
}
08828782007/04/25(水) 02:12:08ID:???
>>880
2.3.0から$managerは使えません。
0883nobodyさん2007/04/28(土) 22:48:15ID:???
EthnaでSmartyのキャッシュ機能を無効にしたいんですがやり方がわからんとです。

$this->backend->ctl->getRenderer()->getEngine()->clear_all_cache();
とかをアクション、ビュー、コントローラ辺りに書いてみたんですが無効にならんとです。

Smarty単体なら
http://sky.freespace.jp/smarty/SmartyManual_2-6-7J_html/api.clear.all.cache.html
で出来るとですがEthnaが絡むと出来んとです。

どうかEthnaでのやり方を教えて欲しいとです。

0884nobodyさん2007/04/29(日) 12:40:34ID:???
俺も知りたい
0885nobodyさん2007/04/29(日) 12:46:44ID:???
>>881
セッションキーを指定せずに、session_start()してるならそのままEthna内でも使えるはず
恐らくEthnaが内部でセッションの保存先が元アプリのと違うんじゃない?
0886nobodyさん2007/04/29(日) 21:13:05ID:???
>>883
Ethnaのデフォルトはキャッシュ無効になってないか?
0887nobodyさん2007/04/30(月) 18:59:50ID:???
デフォは有効じゃないかな?
0888nobodyさん2007/04/30(月) 20:08:50ID:???
templates_cとcacheを勘違いしてない?
0889nobodyさん2007/05/06(日) 20:44:18ID:???
adodbを使っている場合ってAppObjectとかって使えないのでしょうlか?
0890nobodyさん2007/05/08(火) 03:03:53ID:???
AppObjectで対応してないDB使いたいからadodb使うとか、
AppObject使いたくないからadodb使うんじゃないの?
0891nobodyさん2007/05/10(木) 00:32:00ID:???
>>889
前に誰か挑戦してたなーと、ブックマークを漁ってたら出てきました。
http://riaf.org/Test_DB.phps
作者のriafさんも、途中であきらめたとか言っていたような気がするので、もしかしたら使えないかもしれません。
0892nobodyさん2007/05/13(日) 13:34:58ID:???
http://d.hatena.ne.jp/riaf/20070513/1178996357

helper_app_objectとか知らなかったんだが…
■ このスレッドは過去ログ倉庫に格納されています