ようこそ!逆襲のニートブログへ

ブログ内検索

最近の記事

はてなブックマーク数

この日記のはてなブックマーク数

カテゴリー

月別アーカイブ

スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

第2回:Mojaviのセットアップ その2

OpenPNE解析の参考にするために、今さらながらmojaviをインストール&勉強している。

スタックアスタリスクというサイトで、mojavi講座が公開されている。
http://www.stackasterisk.jp/tech/php/mojavi02_01.jsp
(どうもありがとうございます。)

mojavi2.0.0でインストールテストをしたら、エラー表示がドバドバっと出て、いきなり窮地に(汗

Only variable references should be returned by reference

なんじゃ、こりゃ~!!!と思ったら、Googleで同じトラブルの人発見。
[PHP-users 27128] mojaviの導入[エラーの対処]

この度、mojaviを導入しました。
phpを初めて1ヶ月です。
http://www.stackasterisk.jp/tech/php/mojavi02_01.jsp
上記サイトを参考にしながら、セットアップを進めましたところ
Notice: Only variable references should be returned by reference
この様なエラーが大量に出てきます。
HelloWorldを試しに出力しているのですが、文字は出力されています。

php.iniにて、エラーを表示させない様に
error_reporting = E_ALL & ~E_NOTICE
と記述をしています。

エラーの対処をご教授願えませんか?



PHPが4.4にバージョンアップしたときに、リファレンス(&)の仕様が何か変わったらしく、それがエラー表示の原因になってるらしい。
(詳しいことは分からん)

対策は2つほど出てきた。
PHP4.4.xでの注意
http://www.stackasterisk.jp/tech/php/mojavi08_01.jsp

PHP4.4.xでの仕様変更によりMojavi2.0.0ではエラーが発生してしまうようになりました。

(1) mojavi2.0.0→2.0.3betaに変更
(2) mojavi2.0.0のまま→エラーがあっても表示しないように mojavi-all-classes.phpの15行目を error_reporting(E_ALL & ~E_NOTICE);
と書き換える。

ここでは、(1)の方法で対処することにした。それによって、
Only variable references should be returned by reference
のエラーは解消できた。



気を取り直して、次のステップに進む。
Hello World!の表示だ!!!

6. アクションの作成
actionsディレクトリにDefaultIndexAction.class.phpというファイルを作ります。

class DefaultIndexAction extends Action
{
function execute (&$controller, &$request, &$user)
{
$request->setAttribute('message', 'Hello World!');

return VIEW_SUCCESS;
}
}
?>



アクションを作ってから、mojaviのindex.phpにアクセスすると、エラー表示が次のようになった。

FATAL [C:\Program Files\Apache Group\Apache2\htdocs\mojavi\mojavi-all-classes.php:160] Module Default does not contain view DefaultIndexView_success or the file is not readable
=ビューがないよ、と。

7. ビューの作成
viewsディレクトリにDefaultIndexView_success.class.phpというファイルを作成します。

class DefaultIndexView extends View
{
function & execute (&$controller, &$request, &$user)
{
$renderer =& new Renderer($controller, $request, $user);

$renderer->setTemplate('defaultindex.tpl');
$renderer->setAttribute('message', $request->getAttribute('message'));

return $renderer;
}
}
?>



ビューを作ってから、mojaviのindex.phpにアクセスすると、エラー表示が次のようになった。

FATAL [C:\Program Files\Apache Group\Apache2\htdocs\mojavi\mojavi-all-classes.php:687] Template file C:\Program Files\Apache Group\Apache2\htdocs\mojavi\webapp/modules/Default/templates/defaultindex.tpl does not exist or is not readable
=テンプレートがないよ、と。

8. テンプレートの作成
templatesディレクトリにdefaultindex.tplを作成しましょう。

<div><?= $template['message'] ?></div>



テンプレートを作ってから、mojaviのindex.phpにアクセスすると、
Hello World!

やった!
mojaviで、Hello World!表示、とりあえず成功。

今日はもう寝ますzzz

後でまとめをよく読んでおこう。
http://www.stackasterisk.jp/tech/php/mojavi02_05.jsp
関連記事

コメント

コメントの投稿


管理者にだけ表示を許可する

トラックバック

トラックバックURL:
http://gooddays1.blog37.fc2.com/tb.php/114-9cbaed5d

FC2Ad

上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。