cakephpでscaffoldとbake.php

cakephpについてブログ更新は途絶えました(「初心者がCakePHPを遅々として進める。」)が、勉強は淡々と進めています。
今回はscaffold(「足場」?)機能について。
この機能を使うとCakephpがDBを解析し、テーブル操作が行える簡易画面を使えるようになります。
使い方はcontrollerに“var $scaffold;”とするだけ。
例:userテーブル
cake\app\controllers\users_controller.php

これで、userテーブルへのinsert、update、delete操作が可能なインターフェースが使えるようになります。
http://localhost/cake/users/view
http://localhost/cake/users/add
http://localhost/cake/users/edit
Scaffold1.gif
Scaffold2.gif
ただこの$scaffoldは動的生成になるので、カスタマイズするには不向きです。
そこでbake.phpを使うと、Model、View、Controlleの各種ファイルを自動生成してくれます。
雛形のファイルとなるのでカスタマイズも楽に行えます。
自動生成であるため、bake.phpを使う前提としてDBの構造が最初から固まっている必要があります。
従ってbake.phpの使い道は開発着手時の取っ掛かりといったものになるでしょうか。
また$scaffoldは開発初期での動作イメージの確認や管理者機能として使われるようです。
小生は学習も兼ねてbake.phpを使わずに全て手打ちで進めることにしました。
(DBの構造なんて最初っから決まってないし)
参考
$scaffoldを試してみる(CakePHP修行 #009) | IDEA*IDEA
CakePHP のおいしい食べ方: Windows上のXAMPP構成で bake.php を使う場合
CakePHP guide >> scaffolding と bake.php から学ぶ CakePHP

初心者がCakePHPを遅々として進める。

初心者がCakePHPに関して少しづつですが学習を進めています。
インストールを終え、次に公式サイトのプログチュートリアルに進みます。
付録 A. Cake ブログチュートリアル
手順通りに進めて雰囲気を感じる。
ぬー、オブジェクト指向は手続き型に慣れた身には難解。
以下ブログチュートリアルのまとめ。
●CakePHPには「規約」と呼ばれるいくつかの決め事がある。
テーブル構造から変数、ファイル名まで色々と決まりがある。
(それに準じて書くとCakePHPを最大限活用できる)
付録 C. Cake 規約
●CakePHPはMVCモデルである。
プログラムが、データ形式のModelと、見た目のViewと、動作のControllerに完全に分離している。

チュートリアル「ブログ・プログラムを作ろう」

・DB:”blog”を作成(DBの名前は自由)
・テーブル:“posts”(複数形。なんとyをiに変えてesの変則複数形も可)
・構造:‘id’‘modified’(編集時刻)、‘created’(作成時刻)フィールド推奨。

Model(モデル)をつくる。

/app/models/post.php
postsテーブルのモデルなのでpost.php(単数形)。
値のバリデーションなどを記述する。
//postsテーブルのモデルは単数形で頭文字は大文字。
class Post extends AppModel
{
var $name = 'Post';
}

Controller(コントローラー)をつくる

/app/controllers/posts_controller.php
postsテーブルのcontrollerなのでposts_controller.php(アンダーバー必須)。
動作に関するfunctionを記述する。
//postsテーブルのコントローラーは複数形の頭文字は大文字。
class PostsController extends AppController
{
var $name = 'Posts';
 function index()
 {
  //$postsにPostモデルのfindAll()の結果をセット
  $this->set('posts', $this->Post->findAll());
 }
}
View(ビュー)をつくる

/app/views/posts/index.thtml
postsテーブルのviewなのでpostsフォルダに保存し、ファイル名をアクション名にして、拡張子はthtml(CakePHP1.2以降は"ctp")。
中身は普通のPHP。
<?php foreach ($posts as $post): ?>
<tr>
<td><?php echo $post['Post']['id']; ?></td>
<td>
<?php echo $html->link($post['Post']['title'], "/posts/view/".$post['Post']['id']); ?>
</td>
<td><?php echo $post['Post']['created']; ?></td>
</tr>
<?php endforeach; ?>

実際に表示してみる

CakePHPはURLでメソッドを指定する。
http://localhost/コントローラ名/メソッド名/パラメータ1/パラメータ2/
チュートリアルのindexメソッドは下記のように呼び出す。
http://www.example.com/posts/index/
パラメーターのある例
http://localhost/users/view/3
以上でブログチュートリアル。
実は1回目にさらっと読んだだけではよくわからず、下記を見てから再度チュートリアルをやった。
連載:CakePHPで高速Webアプリ開発|gihyo.jp … 技術評論社
参考
"Blog チュートリアルにつまずいたら" フォーラム - CakePHP Users in Japan
(つまずいたら、というよりも補足事項たくさん)
PapuhなWEBLOG - CakePHPとデータベース データベースの準備
(命名規約について)

初心者がCakePHPをインストールしてみる。

初心者がCakePHPを始めると宣言したのは1週間以上前。
進展が遅いですが、ようやくインストールです。
インストール手順を参考にしたのは下記の記事と書籍。
基本的にダウンロードして指定フォルダに保存するだけなので、特に難しいところはありません。
3章 CakePHP のインストール
“インストールの説明” フォーラム – CakePHP Users in Japan
CakePHPガイドブック
CakePHPガイドブック

1.XAMPPで基本環境の構築

まずはApache、MySQLの環境がローカルPCに無いと話しになりません。
小生はUSBメモリにXAMPP Liteを導入しており、この環境で引き続きCakePHPを使用します。
USBメモリにPHP環境構築 XAMPP Lite
(USBメモリにこだわる必要はありませんが・・・)
XAMPPのインストール以外に、CakePHPには推奨設定があります。
・mod_rewriteの設定
/xampplite/apache/conf/httpd.conf
・”LoadModule rewrite_module modules/mod_rewrite.so”のコメントアウトを外す。
・「”AllowOverride None”を”AllowOverride All”などに書き換え」とありましたが、xamppでは設定済みのようでした(?)

2.CakePHPのインストール

次にCakePHPのインストール。ダウンロード、解凍して、指定フォルダに保存するだけ。
ダウンロード
CakePHP: the rapid development php framework. Downloads
1.1系をダウンロードし、ZIPを解凍して/xampplite/htdocs/cakeとして保存しました。
これでhttp://localhost/cake/にアクセスするとCakePHPの初期画面が表示されます。
ただ、データベースの設定がないとアラートがでます。

3.データベースの設定

まずはphpMyAdminなどでDBを作成します。
(あとのチュートリアルで使用するなら”blog”などの名前で)
次にCakePHPのデータベース接続設定です。
/cake/app/config/database.php.defaultの.defaultをとってdatabase.phpとします。
そしてclass DATABASE_CONFIGのlogin、password、databaseを適宜設定します。
(xamppliteのままならloginはroot、passwordは無し)
以上でhttp://localhost/cake/にアクセスして下記ページが表示されれば成功です。
CakePHP(tm) - Home.gif
補足1.データベースを含め文字コードの設定が必要と手順にはありますが、UTF-8で進めるならば特に設定しないで良さそうです(?)
補足2.今回は開発環境が前提です。公開環境では注意が必要です。
(参考)3.4.CakePHP のセットアップ
これでCakePHPのインストールは完了です。次回はCakePHPを動かすチュートリアルに進みます。
(次回)付録 A. Cake ブログチュートリアル

初心者がCakePHPの勉強を始めるよ。

PHPフレームワークの本命と言われるCakePHPの勉強を始めました。
小生のPHPスキルは講習会に数回通った(PHPカテゴリ参照)のと、参考書を一読して動作確認した程度。
PHPによるWebアプリケーションスーパーサンプル 第2版
PHPによるWebアプリケーションスーパーサンプル 第2版

実践的なPHPの開発経験を積まずに、いきなりフレームワークに手を出すのは問題かもしれませんが、下記の記事を読みチャレンジすることにしました。
むしろ初心者ほどフレームワークを使うべき6個の理由。[HW]

実は私は、PHPのprintやechoを知ったのはつい最近です。

えー。

2. プログラミングの学習にはパラシュート法こそ最適。

ほー。
同時期に下記の記事も読みました。
勉強が苦手な人向けの「遅延評価勉強法」 : ロケスタ社長日記

たとえばプログラムを勉強するときに、「書籍を1ページ目からやる」のではなく「2ch型掲示板が作りたいから必要なところを勉強する」のが遅延評価勉強法になります。

時間の無い社会人は目的に向かっていきなり着手するのが良い。
そして、このジョルノ・ジョバーナには作りたいウェブアプリのアイデアがある!
唐突にCakePHPを始めることにしました。
時折、初心者なPHPネタがアップされた際には目をつむって頂けますと幸いです。
[補足]
#どうやらCakePHPを使えば高速にウェブ開発ができるらしい。
#仕事上の案件で、開発会社がCakePHPを採用した納品物があり、中を覗くこともままならないのが問題。
参考
フォーラム – CakePHP Users in Japan
CakePHP のおいしい食べ方: CakePHPの上手なはじめ方

redMineで仕事のディレクション・進行管理


小生はWebディレクションのようなことを仕事としており、大小様々な案件を複数並列で動かしています。
ただ進行管理の手法については試行錯誤しており、なかなかうまく案件を取り扱えていません。
(やべ!アレ忘れてた/え?そんなこと聞きましたっけ?・・・など)
そんな中、BTS(Bug Tracking System)の存在を知りました。
バグ管理システム – Wikipedia
主に開発の現場で使われ、バグ報告から修正、確認、完了までをウェブベースで共有するシステムです。
今回そのシステムの一つredMineを、小生の仕事管理に活用することにしました。
redMine
redmine0.gif
参考:Redmine.JP(Redmineのデモあり)
4月から利用し始めて1ヵ月。日々増えていく案件、タスクをガシガシ登録していくことにより、あれしなきゃ、これ覚えとかなきゃ、のストレスがかなり軽減されました。
やはり記憶は外部装置に任すべき。
以下、小生の活用方法を紹介します。
BTSは文字通りバグ管理システムなのでソースコードの差分やバグ追跡、複数人による共有機能などがありますが、小生は今のところ自分ひとりのタスク管理システムとして使用しています。

続きを読む

  • 他のブログ

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

  • 最近の投稿

  • 最近のコメント

  • はてなブックマーク

  • RSS購読

    RSS Feed RSS - 投稿

  • カテゴリー

  • 月別

  • カレンダー

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


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