Posts tagged

CakePHP グローバル関数

0

PHP のネイティブ関数の短縮表記には下記のようなものがあります。

a() => array()
e() => echo()
low() => strtolower()
up => strtoupper()
r() => str_replace()
am() => array_merge()
h() => htmlspecialchars()

このような短縮表記の関数を独自に定義して開発に使用されている方も多いと思いますが、CakePHP として定義されていると使用しやすいですね。(特に複数人で開発しているときなど、標準であると助かります。)

このほかにも CakePHP には便利な関数が定義されています。

debug($var, $showHtml);
DEBUGレベルが0以外のときに、$varが出力される。
print '<pre>';
print_r($var);
print '</pre>';

のようなことをしてくれます。$showHtmlが TRUE ならブラウザで見やすいように出力してくれます。
aa(‘a’,'b’)
連想配列を作成する。
array('a'=>'b')
をやってくれます。
h($mixed)
文字列を指定して htmlspecialchars をやってくれるが、配列も指定できる。
配列を指定すると再帰的に h() を呼び出している。
pr($var)
print_r をブラウザでみやすいように <pre> で囲んでくれます。echo "<pre>";
print_r($var);
echo "</pre>"
env($key)
環境変数を取得できます。
一番の特徴は PHP_SELF, DOCUMENTO_ROOT をサポートしていないサーバでも動作をエミュレートして値を返してくれます。コードを再配布するときには重宝しそうです。
params($mixed)
文字列を返してくれます。
配列なら一番最初の値、文字列なら文字列、値がなければ NULL を返します。
setUri()
現在のURI を返してくれます。
file_get_contents()
file_put_contents()
この関数が実装されていない PHP4.3 未満のためにエミュレートされています。
stripsslashes_deep($array)
$array は配列を指定。配列の全ての値に対して再帰的に stripslashes を行います。
countdim($array)
$array の配列の次元数を返します。
LogError($message)
CakeLog::write を実行します。
fileExistsInPath($file)
現在のinclude パスから $file で指定されたファイル名があるか探します。
見つかればそのパスを返し、見つからなければ false を返します。
ife($condition, $var1, $var2)
$condition が true なら $var1 を返し、false なら $var2 を返す。

使用しすぎると読みにくいコードになりかねませんが、うまく使用すれば開発効率が上がりそうです。

日本語マニュアル:Chapter 11. Cake のグローバル定数とグローバル関数

CakePHP でビューでメール本文を作成する方法

0

前回の記事でメール用のビューを管理する方法を書きましたが、
今回はビューを使用してメール本文を作成する方法です。

前提として

  • メール用のレイアウト名は /app/views/layouts/email.thtml で管理
  • メール本文に使用するビューは /app/views/email/hoge.thtml

だとすると
ob_start();
$this->render(null, 'email', '/path/to/app/views/email/hoge.thtml');
$body = ob_get_clean();
という感じで、$body に本文が入ります。

ちなみにレイアウトを指定しないと default.thtml が使用されHTMLタグが入ってしまいます。

emial.thtml

ここにメールの共通ヘッダなどなど

<?php echo $content_for_layout; ?>

-----------------------------------
ここに署名などなど
-----------------------------------

としておけば、HTMLタグも入らずに署名やヘッダなども読み込めてよいかと思います。

瞬間接着剤が指についたときの取り方

1

昨日、瞬間接着剤のフタから液が漏れているのを気がつかずにつかんでしまい、左手の指が3本くっついてしまうというトラブルが発生しました。。。

あ、私ではなく、相方です。

最初はお湯につけて指をもんでみたのですがまったく取れそうにないので、
車を飛ばしてホームセンターで瞬間接着剤のリムーバを購入。
早速指に垂らして様子を見たのですが、まったく取れない。。。

自分自身が情けないって相方はもう泣きそうですよ。

実は車でリムーバを購入に行く前にネットで調べたのですが、
リムーバの他に除光液が書かれていたのを思い出しました。

マニキュアの除光液を指に垂らしてみると、今度は少し指が離れた感じがあると!
それからビンの半分くらいの量を少しづつ垂らしながら30分かけて無事引き離すことができました。

専用リムーバより除光液が効くって。。。がんばってくれリムーバ。
まあ、指はリムーバが留まらずに落ちていってしまうから不利かもしれない。
物とかなら専用リムーバが効くのでしょう。きっと。。。

Go to Top