「30日ブログ」開発の経緯・企画趣旨など

昨日に公開しました30日ブログについて、開発の経緯、企画趣旨などを簡単にまとめたいと思います。
・自分のウェブサービスを公開したい
小生は非IT企業で、ウェブディレクションのような感じと思われることを仕事にしています。
毎日ウェブに触れる中で、自分の企画、アイデアを思い通りに具現化したいという思いが膨らみます。
↓読んで刺激を受ける記事。
田口元の「ひとりで作るネットサービス」探訪 – ITmedia Biz.ID
・でも続かない
仕事柄プログラミングの基礎知識が必要だとPHPの講習会に参加したのが2006年9月8日。なんと2年前。
講習会終了後はPHPがどんなものか概観を把握できましたが、その次につながらず。
やっぱり継続するものがないとダメだ。
・時間の経過
そして忙しさ(と人生のイベント)で時間が1年経過して2007年12月。
百式さんの主催する忘年会議に参加します。
「忘年会議2007」に行ってきました。
この後の懇親会にも参加したのですが、周りのすげーギークっぷりに恐縮。
自分もウェブサービスを公開させるぞという気持ちを新たにします。
・そしてCakePHP
その固い決心から早くも半年が経過w ダメダメだw
2008年5月からCakePHPの勉強を始めます。
初心者がCakePHPの勉強を始めるよ。
CakePHPは百式さんのブログで存在を知っていました。
CakePHP修行! アーカイブ | IDEA*IDEA
またこの頃に関わっていた仕事の案件で開発会社がCakePHPを使うとのことで、いまが契機だと着手します。
・アイデアを思いつく
そしてこの頃に読んだブログ。
勉強が苦手な人向けの「遅延評価勉強法」 : ロケスタ社長日記
まずは課題、目標を立て、それを解決しながら勉強を進める。
忙しい社会人にとってはこのような「パラシュート勉強法」が向いているようだ。
そしてけんすうさんは実際に100日プログラミングという企画を完遂していました。
その終了後の反省の中に「100日というのは妥当なのか?30日とかのほうがいいかな?」とのコメントがありました。
それなら30日に限った課題を立てられるサービスがあると面白いんじゃないかな?
小生が開発するウェブサービスのテーマが決まりました(インスパイヤされました)。
・そして半年
最初の1ヶ月はわけもわからず参考書をなぞるだけ。
そりゃPHPもよく知らないのに、さらにフレームワークを学ぶなんて・・・。
途中で1ヶ月放置したりしながら何とか土日休日をつぶして開発を続け、
初心者がCakePHPをはじめる件
ようやくアイデアを形として陽のあたる場所に出すことができました。
ウェブサービスを公開したことで一つの満足感を感じてしまいますが、自身でもこのサービスを使い新しい課題を立て、今後ともサービスの継続、改善に努めたいと思います。
・今後実装したいこと
・複数人でテーマを共有(みんながんばれ)
・複数の目標を立てる(いろいろやろうぜ)
・30日を超える目標を設定(いのちをだいじに)
公開に至るまでのCakePHPの技術的な諸々については、また後日に。
とりあえずsakuraサーバでの公開はとっても楽でした。

ウェブサービス「30日ブログ」を公開しました。

念願だったウェブサービスの公開にこぎつけました。
30日ブログ(30daysBlog.com)
30日のテーマを決めてブログを書こうというサービスです。
まだ仮公開で調整しながらの運用ですが、良かったらご利用ください。
30日ブログ(30daysBlog.com)
30daysblog.png

裏テーマとしては自己管理ができない自分に必要だったので。
日々の記録をつけながら、色々な目的・目標を達成していきたいと思っています。
それにしても、ウェブに関わる仕事をしてるとはいえ、エンジニアでもない小生がここまでの機能を実装したサービスを開発できるとは思わなかった。
フレームワーク「CakePHP」の威力は絶大です。
参考
初心者がCakephpをやる件(これまでの経緯)

Cakephpで日本語メール送信(パスワード再発行)

初心者がCakephpをやる件で、ユーザーのパスワード再発行機能を作成しました。
参考・・・というかコピペさせて頂いたのはこちら。
「パスワードを忘れた方は」を実装したい(CakePHP修行 #22) | IDEA*IDEA
ただ、メール送信はmb_send_mail関数ではなく、Cakephpのコンポーネントとして外部ライブラリのQdmail(日本語メール送信)、Qdsmtp(外部SMTPサーバでメール送信)を利用しました。
参考:cakePHP メール送信はもうこれでいいでしょ – LoveIT – 安江ブログ
(このメールデータを生成する方法がうまくいかなかったので少し改変)
これで日本語環境もばっちり。なおかつメールのテンプレートとして、Cakephpのレイアウト、エレメントを利用できます。
以下手順とソースコード。

続きを読む

Cakephpのよく使う処理をまとめる

初心者がCakephpをやる件、ガシガシと進めています。
難しい処理は後回しにしてDBの出入力を中心に目標の7割方できてきました。
DBに関わる処理はselect、insert、deleteなど限られるわけですが、あちこちからコピペしたためか、全体的に記述が統一されていません。
ここで復習を兼ねて全ソースを見直し、整理して自分なりの構文をまとめてみました。

●値の取得(複数)

条件に合致した値を取得してviewに渡す処理。
$cond = array('post.user_id' => $this->Auth->user('id'));
$data = $this->Post->findAll($cond, null, 'Post.created desc');
$this->set("data", $data);

・findAll(条件式,取得フィールド(nullで全て),取得順序)
・例はAuthComponentでログインしたユーザーと同じidのPostデータを取得。
なお上2行はこっちでも同じ処理。わかりやすいかもしれない。
$data = $this->Post->findAllById($this->Auth->user('id'), null, 'Post.created desc');
findAllByIdAndPasswordというand条件にしても直感的でわかりやすい。

●値の取得(1件のみ)

条件に合致した値を1件のみ取得する。パラメタを指定してのedit、deleteのときによく使う。
function edit($id){
$this->Post->id = $id;
$data = $this->Post->read();

なお上2行はこっちでも同じ処理。わかりやすいかもしれない。
$data = $this->Post->findByid($id);

●DBへのデータ保存

insertのとき
$data = array(
'Post' => array(
'title' => $this->data['Post']['title'],
'body' => $this->data['Post']['body'],
'post_date' => $this->data['Post']['post_date'],
)
);
$this->Post->save($data)

updateのとき
$data = array(
'Post' => array(
'title' => $this->data['Post']['title'],
'body' => $this->data['Post']['body'],
'post_date' => $this->data['Post']['post_date'],
)
);
$this->data['Post']['id'] = $id;
$this->Post->save($data)

updateのときはidを指定する。
また更新する値だけを$dataに記述しないと、任意の値を書き換えられることになるのでセキュリティ的に問題あり。
色々と試行錯誤してきたけど、難しいことしなければこれだけで済むのか・・・。
ソースコードの見直し(リファクタリング)も楽だったし。
cakephpすげー。

PHP開発環境にEclipseをセットアップ

初心者がCakePHPを学ぶ件、今回は開発環境について。
これまではお手軽な開発環境「PHPエディタ」を使用していました。
PHPエディタ – フリーのwindows用php統合開発環境 – phpspot
インストールや設定もわかりやすく良かったのですが、新規ファイル作成をする際はPHPエディタ上で行わなければならないという欠点がありました。
また、もう少しプロっぽい開発環境を使ってみたくもあり代表的なPHP統合開発環境を調べてみました。
PHP開発ツール 比較調査 – KABOSU
商用、無料を含めた開発ツールが比較されています。
こちらで無料かつオススメとされていたPDT(Eclipse PHP Development Tools)にチャレンジします。

続きを読む

  • 他のブログ

    育児で買ったモノたち
  • Twitter

  • 最近の投稿

  • 最近のコメント

  • はてなブックマーク

  • RSS購読

    RSS Feed RSS - 投稿

  • カテゴリー

  • 月別

  • カレンダー

    2017年4月
    « 3月    
     12
    3456789
    10111213141516
    17181920212223
    24252627282930
  • プロフィール


    健康・医療系の出版社でウェブに関わる営業企画と浅い技術。Webディレクター?
  • キーワード検索