【保存版】2013年度発売全パチスロアプリ一覧(iPhone,iPad)

【CakePHP】CakeEmailクラスなら簡単!htmlメール送信やらCronジョブ送信。

先日、とある案件でCakePHP2系のメール機能を使いました。

数年前にもCakePHPでサイト作成したことがあったのですが、バージョンは1系。
標準のメール送信機能では日本語が文字化けし、
結局、外部ライブラリを使用してメール送信をしました。

でも今回(CakePHP2系)は違います。

CakePHP標準のCakeEmailクラスでさくっとメール送信することができました。

文字化けもなし。
(ただし、今回作成したのは業務システムでしたので、
限られた環境の限られた人に対してOKだっただけですので、念のため。)

「メール送信したいだけ」といった軽い使い方の場合、外部ライブラリを使わず、
標準機能だけでメール送信できると便利ですね。

使い方も簡単!
STEP0
事前に、config/email.php にメール送信設定

STEP1
App::uses('CakeEmail', 'Network/Email');
で、CakeEmailクラスを事前によみこんでおいて、

STEP2
送信する際、
$email = new CakeEmail('default');
な感じで、CakeEmailクラスをインスタンス化して、

STEP3
$email->send();
で送信完了。わずか3ステップ!

・・・

簡単さを伝えたかったのですが、ちょっとはしょりすぎました。
サンプルコードは以下のサイトでどうぞ。(汗)

CakePHP2でメール送信を手軽に行うための実装CakeEmailを使ってみたら本当に簡単すぎて便利、メールフォームがなくてもメール送信機能だけで | Ultraひみちゅぶろぐ
CakePHP2.X 「CakeEmail」 の使い方 | 高橋 です
cakephp2.x メール送信 | まとめーたー

htmlメールも簡単!


今回、htmlメールで送信する仕様だったのですが、楽々でした。
画面出力を作るような感じで、メール送信できました。

$email = new CakeEmail('default');
$email->emailformat('html');
$email->template($template);
$email->to($mail_to);
$email->subject($subject);
$email->viewVars(array('sendData' => $data));
$email->helpers(array('Utill'));

$sent = $email->send();
if ($sent){
//正常終了
$result = true;
} else {
//異常終了
$result = false;
}

画面出力の場合、レイアウトとビューを使いますが、
メール送信の場合は、メール専用のレイアウトとテンプレートを使います。
(text用とhtml用があります)

htmlメールの場合は以下のレイアウトファイル・テンプレートファイルを使用。
・app/View/Layouts/Emails/html/レイアウト.ctp
・app/View//Emails/html/テンプレート.ctp

画面出力の場合、モデルから取得してきたデータを$hits->setでビューに渡しますが、
メール送信の場合、viewVars でテンプレートへ渡します。
また、テンプレート内ではヘルパーが使用できます。

標準で読み込まれないヘルパーは helpers で指定してください。

注意点としては、1行の行数が長すぎる場合、CakePHPの自動改行にまかせると
文字化けしてしまいます。(ここで少しはまりました
マルチバイトが考慮されていないのかもしれません。
なので、ここはテンプレート側で手動で改行します。

<イメージ タグは全角。コピペしても動きません>
echo '<p>メールです</p>' . "¥n";>
echo '<p>ちゃんと見てね</p>' . "¥n";

改行コード(¥n)は、ダブルコーテーションでくくる必要があります。

シングルコーテーションだとそのまま表示されてしまうのでご注意(ここでも少しはまりました

モデルから取得したデータを、テンプレートへ引き渡してテンプレートで
表示まわりを整形し、メール送信。

画面まわりを作るのと同じ要領でメール送信できました。


Cronジョブ連携も簡単!


あと、CakeEmailはクラスで実装されていますので、shellからの呼び出しも簡単です。
(CakePHP1系はコンポーネントで実装されていました)

使い方は全く同じ。
shellファイルの先頭で
App::uses('CakeEmail', 'Network/Email');
してあげれば、いいだけです。

いやー簡単でした。
(文字化けでちょっと焦ったのは、ここだけの話しでお願いします。。。)

CakePHPの実践的なTipsが100例以上収録されています(メール送信サンプルもあり)
>>Webアプリ開発を加速する CakePHP2定番レシピ119

[Google PR]

Twitterはじめました。プラプラ | Twitter

【CakePHP】初テーマの新刊CakePHP本「CakePHPで学ぶ継続的インテグレーション」

今まで発売されているCakePHP関連本のテーマは、ざっくりいうと以下の3つのいずれかをテーマに書かれたものでした。

・初心者向け・・・インストールから、基本的なCakePHPのMVCの解説本
・実践/サンプル・・・本番運用をみすえた具体的なソースコード、Tipsの類本
・辞典

CakePHPでサイトを作成する際、特に初めて作成する場合は、いきなりCookbookとネット上の情報だけで開発するのではなく、上記テーマの本を1冊ぐらいずつ手元においておけば効率よく開発できるかと思います。

ネットの情報は情報が新鮮でかつ無料なのですが、デメリットとしては情報が断片的で中には間違っているものもあります。また、必ずしも初心者を対象としているわけではないので、初心者本と実践本/サンプル本で基礎的な部分を身に着けてから、ネットで情報を補完していくのがベストでしょう。

で、すでに、CakePHP開発をスムーズにすすめるための本は一通り発売されているような状況なのですが、先日、少し毛色の違ったCakePHP書籍が発売されました。

>>CakePHPで学ぶ継続的インテグレーション


どちらかというと、実戦本の類になるかと思うのですが、CakePHPアプリケーションの(自動テストを含めた)品質管理がテーマになっています。

継続的インテグレーションの「インテグレーション」とは、日本語では「統合」・「一体化」と訳されます。
開発するソフトウェアの複雑度が増すほど、この「インテグレーション」を早期かつ頻繁に実施する必要に迫られます。
「インテグレーション」がプロジェクト終盤まで実施されない場合、出荷が迫った状況でさまざまな問題が一気に発生することになり、
出荷遅延や品質低下など、さまざまな問題の誘因となります。
継続的インテグレーションでは、プロジェクトの初期段階から「インテグレーション」を頻繁に実施することで、
問題が小さなうちに発見し対処していきます。
本書は、Webアプリケーション開発における継続的インテグレーションについて、
その概要から使用ツール解説、導入方法、メンテナンスまでを解説した珠玉の一冊です。


なお、執筆は4名の名だたる開発者の共著となっております。
関連ブログは以下。
「CakePHPで学ぶ継続的インテグレーション」- CakePHPを使って継続的インテグレーションを実践するながれを解説した書籍が出版されます

CakePHPで学ぶ継続的インテグレーションの紹介

CakePHPで学ぶ継続的インテグレーション 発売のお知らせ(9/19)

弊社のエンジニア穴澤康裕が共同執筆しました「CakePHPで学ぶ継続的インテグレーション」が出版されます

目次は以下。

1章 概論
2章 導入
3章 使用ツール
4章 環境構築
5章 開発工程(1)
6章 開発工程(2)
7章 デプロイと運用

Amazonのレビューはというと、
バージョン管理、テストの自動化、インスペクションの自動化、ドキュメント生成の自動化、デプロイの自動化など、様々なタスクを自動化することで、複数人でWebアプリケーションの開発を行う基盤を構築することができます。権限者の承認を待つことなく、本番環境での展開が可能になるのです。

本書ではCakePHPというPHPのフレームワークを利用して解説していますが、内容を理解すれば、JavaやRubyなどの環境でももちろん活用できます。
上記のそれぞれのフェーズごとに利用するサービスの紹介と設定、連携のさせ方について詳しく記載されています。
CakePHPを利用しない人でも、一度環境を作ってみて、他の言語やフレームワークで簡単に展開できるくらいに詳しく書かれています。

特にテストについて内容が充実していますので、テストスキルを磨こうと思っている人にはうってつけです。
また、デザイナーとプログラマーが独立して作業を行うような環境でもUIの変更などをリアルタイムに行い、テストを通じて自動的に反映されるような環境を構築することが可能になります。



チームで開発する場合は当然として、個人で開発する場合も品質を担保して開発すると、効率的かつ保守が便利になるかと思います。

っていうか、タイムマシンで、2年前の自分にこの本を届けてあげたい。
「お前のせいで(自分だけど。。。)の2年後のおまえ(自分だけど。。。)が保守にひぃーひぃー言ってるぞ」、と文句を言いながら。

>>CakePHPで学ぶ継続的インテグレーション


<CakePHP関連書籍>

第2版ですね。入門書。表紙がほんの少しカッコよくなりました。(笑)評価は高いです。
>>はじめてのCakePHP―日本でも人気!無料で使えるPHP用フレームワーク (I・O BOOKS)


サンプル本。ソースサンプルをよくある処理を中心に119本収録しています。
>>Webアプリ開発を加速する CakePHP2定番レシピ119


辞典。サンプルもあり。
>>詳解CakePHP辞典―2.0/2.1/2.2/2.3対応


これ1冊でどうこうできるといったものではありませんが、読んで損なし。まあ、最初に買う本ではないかな。
>>CakePHP2 実践入門 (WEB+DB PRESS plus)


Webデザイナーというより、CakePHP初心者プログラマーにおすすめ。ビューまわりの基本をおさえることができます。良書かと。
>>WebデザイナーのためのCakePHPビューコーディング入門


以上、新刊が発売されたので、久しぶりにCakePHP本をまとめてみました。

[Google PR]

Twitterはじめました。プラプラ | Twitter



[Google PR]


[最新エントリ 5]

>>トップページ
人気カテゴリ:AccessTips SQLServer CakePHP iPad
過去ログ(全記事一覧)

カテゴリー
プロフィール
お問い合わせ
Powered by NINJA TOOLS
links
recent comment
  • 【SQLServer】超シンプル!再帰CTE(共通テーブル式)で連続データを作成する。
    sazi (09/08)
  • 【あまっちゃお】Amazon商品検索「あまっちゃお」プロジェクト始動。Ver00-06-00 β
    カメちゃん (07/31)
  • 【Access】あれ?DoCmd.RunCommand acCmdSaveRecordの内部仕様が変わった?
    花姉 (03/17)
  • 【Access】実行中のmdb(自分自身)をバックアップコピーする方法。
    亀 (02/06)
  • 【雑記】Amazonでの注文時、TMGさん発送にご注意を。納期を守れない可能性あり!
    管理人 (01/31)
  • 【雑記】Amazonでの注文時、TMGさん発送にご注意を。納期を守れない可能性あり!
    あ (01/31)
  • 【雑記】Amazonでの注文時、TMGさん発送にご注意を。納期を守れない可能性あり!
    K (11/13)
  • 【VAIOP】VaioXと両持ちできるものすっっごくマニアックなケース。当たり前ですが在庫限り。(笑)
    管理人 (08/04)
  • 【VAIOP】VaioXと両持ちできるものすっっごくマニアックなケース。当たり前ですが在庫限り。(笑)
    通りすがり (08/04)
  • 【雑記】Amazonでの注文時、TMGさん発送にご注意を。納期を守れない可能性あり!
    meale (07/01)
recent trackback
  • 【Access】2003安全でない式がブロックされていませんとセキュリティーレベル。
    awgs Foundry (10/29)
  • 【VAIOtypeP】液晶保護シートは、新車のカバーではない。レイアウト社液晶/天板保護フィルムセットRT-VP1FS1
    XMLがキライ。 (04/09)
  • Vistaから、LinkStation(NAS)にアクセスできません。
    そのほかいろいろ (09/06)