プログラム

WindowProcの定義の方法

WindowProc(UINT message, WPARAM wParam, LPARAM lParam)
CDialog継承してるソースコード開いてクラスウィザードの"Overrides"で確認すればすぐありますわな。
VC++使ったり書くのが久しぶりだったので探してしまった。

PHPコマンドラインのスクリプトとして利用し、長い時間がかかる処理をさせる場合はタイムアウト時間を無制限に変更する。

set_time_limit(0);

Ethnaあれこれ

EthnaのプロジェクトルートディレクトリはEthna_Backend::getBaseDirメソッドで取れる。
ViewクラスやActionクラスで、

$this->backend->getBaseDir();

とすれば、「 /home/httpd/doc/ethna_root 」の様な形式で取得可能。

あと、etc/project_name-ini.phpで定義していある$configを丸ごと取りたいとき*1

$config = $this->config->config

と取るのはありなのだろうか?

*1:この様なことをするのがそもそもありえないのかもしれない。。。

{foreach}

今一度、Smarty
keyとvalue用の変数が一文字なのは考える気力が無かったからです。あしからず。


{foreach from=$array item=v key=k name=loop_name}
{$k}=>{$v} <br>
{foreachelse}
配列が空の場合。(ここでは$array)
{/foreach}

{foreachelse}ってのを知らなかった。勉強不足。反省。

勉強中

昨日、買い物に行った際に買った本で勉強中。
この本、よいですね。
暖かいコーヒー飲みながら本見ながら試しにMacのターミナルで試してみたり。
それにしても今日は寒いぞ。足が冷える。

PHP Hacks ―プロが教えるWebプログラミングテクニック

PEAR::DB_DataObject

アップグレードしなきゃなぁ。メモしておく。

$ pear list-upgrades

PEAR.PHP.NET AVAILABLE UPGRADES (STABLE):
=========================================
CHANNEL PACKAGE LOCAL REMOTE SIZE
pear.php.net DB_DataObject 1.8.0 (stable) 1.8.4 (stable) 58kB
pear.php.net Mail 1.1.10 (stable) 1.1.14 (stable) 17.2kB

Ethnaで構築されたサイトを携帯で見た際のトラブル

トラブルといってもEthnaが悪いのではなく、自分がphp.iniをきちんと設定できていなかったのが悪かったのだが、


<?php
class Hoge_View_Foo extends Ethna_ViewClass
{
function preforward()
{
$foo1 = $this->session->get('foo1');
}
}
?>

とか、Smartyの中で


<input hidden={$session.foo1} name=foo1>

とかといいう感じでEthna_Sessionからセッション値を取ろうとしてもとれない。
手元の環境では問題なくて、運営する予定のサーバに持って行くとダメ。
そして、ダメな場合は携帯のブラウザのみ。PCのブラウザからであれば問題が無い。

悩む、悩む、大いに悩む。
携帯のブラウザの様にクッキーが利用できない場合は、

session.use_trans_sid 1

として、ハイパーリンクの相対URLにセッションIDを付与して解決すると思っていたのだが、それをしていてもNG。

こまったときのML頼み。ということで過去ログを見てみる。
ここにあった。

session.use_cookies 0

とすればよいとのこと。こうすると、要はセッションをURLに付与し、クッキーを利用しない。と明記するとよいみたい。

i18n

I18N (Internationalization)

  • 読み方はアイ・イチハチ・エヌ
  • 国際語化(Internationalization)の略であり、多言語・多国語対応の意味。
  • 先頭の“I”と末尾の“N”の間に18文字…。なので略してることになるらしい。(英語だと)