CakePHPはじめました。

カテゴリ: CakePHP,php / author: uechoco / 2007年04月24日 22:38:34
この記事を読む時間:651くらい

CakePHPを勉強するために、何か簡単なものを作ろうと思い立ったので、CakeUploaderなるものを作ろうと思います。ようはアップローダーです。

Ver 1.0では単純なアップローダーの機能のみの実装に徹して、CakePHPに慣れようかと思います。開発にはDreamweaver 8とXAMPP、ER図のモデリングにはDBDesigner 4を使用しています。

作業手順を記述していきます。Dreamweaver固有の作業も含まれているのであしからず。


1.CakePHPの本体(stable版)を本家からダウンロード。


2.解凍し、適当な開発ディレクトリに配置。


3.Dreamweaverに".thtml"拡張子をPHP ファイルだと認識させるために設定ファイルを変更。
3.1 C:\Documents and Settings\ユーザー名\Application Data\Macromedia\Dreamweaver 8\Configuration\Extensions.txt の"すべてのドキュメント"と"PHP ファイル"の行にTHTMLを追加。詳細は「Dreamweaver 拡張子 追加」などでググってほしい。
3.1.1 もし、上記のパスにファイルが無ければ、C:\Program Files\Macromedia\Dreamweaver 8\Configuration\Extensions.txt のファイルに上記の処理を行う。
3.2 C:\Program Files\Macromedia\Dreamweaver 8\Configuration\DocumentTypes\MMDocumentTypes.xml のファイル内のphpの定義部分に、thtmlを2箇所挿入。詳細は「Dreamweaver 拡張子 追加」などでググってほしい。


4.Dreamweaverを開き、でサイト管理を新規作成して先の開発ディレクトリを登録。
4.1 アップロード先はXAMPPのドキュメント公開ディレクトリ(標準ではC:\Program Files\xampp\htdocs)の直下のディレクトリを指定。例えば、C:\Program Files\xampp\htdocs\uploader1.0\


5.DBDesigner 4を利用してER図を作成し、SQL文を吐き出す。とりあえず、暫定的に以下のようになった。

MySQL:
  1. CREATE TABLE upfiles (
  2. original_name VARCHAR(255) NOT NULL,
  3. save_name VARCHAR(255) NOT NULL,
  4. extension VARCHAR(64) NULL,
  5. created DATETIME NULL,
  6. modified DATETIME NULL,
  7. description TEXT NULL,
  8. );

5.1 ちなみに、テーブル名がfilesではなくupfilesなのは、cakeのappディレクトリ内のwebrootディレクトリの下に、filesというディレクトリがあり、files/というアドレスがコントローラ名ではなくURL的にそのfilesディレクトリにアクセスしてしまうため。
5.2 ちなみに、descriptionフィールドは、できれはcommentという名前にしたかったが、DBDesigner 4によると、どこかのSQLの予約語であるため、その名前は使用できなかった。


6.XAMPPのphpMyAdmin(標準ではhttp://localhost/phpmuadmin/)にユーザーやDBの設定を行った後、上記のSQLでテーブルを作成する。ここでは暫定的に以下のようにする。

hostname : localhost
username : test
password : pass
database : cake


7.[root]\app\config\database.php.default[root]\app\config\database.phpとして同じフォルダ内にコピーした後、コピーしたdatabase.phpを手順6の通りに設定する。

PHP:
  1. class DATABASE_CONFIG
  2. {
  3. var $default = array('driver' => 'mysql', 'connect' => 'mysql_connect',
  4. 'host' => 'localhost',
  5. 'login' => 'test'
  6. 'password' => 'pass',
  7. 'database' => 'cake',
  8. 'prefix' => '');
  9. }


8.[root]\cake\app_controller.php[root]\cake\app_model.php[root]\app\直下にコピーする。
8.1 "SET NAMES UTF-8"などのクエリをDBコネクションの最初に行う必要があれば、さきほどコピーした、[root]\app\app_model.phpに以下のように記述する。今回は記述した。

PHP:
  1. class AppModel extends Model{
  2. function __construct()
  3. {
  4. parent::__construct();
  5. if (!defined('GLOBAL_SET_NAMES')) {
  6. $this->query('SET NAMES UTF8');
  7. define('GLOBAL_SET_NAMES', true);
  8. }
  9. }
  10. }


9.[root]\cake\libs\view\layouts\default.hthtml[root]\app\views\layouts\default.hthtmlにコピーし、<title>タグの1行前に以下の行を追加する。

PHP:
  1. echo $html->charset('utf-8');


とりあえず、今回はここまで。まとまった時間が取れたときに続きを書きます。


コメントはまだありません »

コメントはまだありません。

この投稿へのコメントの RSS フィード。 TrackBack URI

コメントする

Copyright © 2012 うえちょこ@ぼろぐ. WP Theme created by Web Top.