CakePHPのコンソールで初期データのインポート/エクスポート
開発用のデータをチームで共有する仕組みがデフォルトでは無いっぽかったので、CakePHPのコンソールを使って、初期データのインポート/エクスポートを行うShellクラスを書いてみました。
仕組みは単純で、テーブルに入っているデータをCakePHPで扱えるデータ(Array)にして保存し、保存したデータをsaveメソッドを使って保存すると言った感じです。
開発用のデータをチームで共有する仕組みがデフォルトでは無いっぽかったので、CakePHPのコンソールを使って、初期データのインポート/エクスポートを行うShellクラスを書いてみました。
仕組みは単純で、テーブルに入っているデータをCakePHPで扱えるデータ(Array)にして保存し、保存したデータをsaveメソッドを使って保存すると言った感じです。
CSSを小分けにして@importで読み込んで管理している方も多いかと思いますが、これではHTTPリクエストがファイルの数だけ発生して、パフォーマンス的に良くありません。
Googleがページの表示速度を検索結果に反映するとか言い出したりもしているので、これはもうリクエスト数を減らすしか無いですね!
でも手動でファイルを一つ一つ連結するのはとても面倒です!と言うわけで、そんな面倒な作業を自動でやってくれるPHPのクラスを書いてみました。
CakePHP v1.3.0-betaが出ていたので、久しぶりにWindows上でCakePHPを使ってみました。
普段からWindowsのMS-DOSコマンドプロンプトを使うことがほとんど無い僕は、CakePHPのコンソール(bake)を使うために、いちいちコマンドプロンプトを立ち上げてcdで移動して・・・と言う作業が凄く面倒に感じた訳です。
なので、そんな僕の悩みを解決するため、簡単なバッチファイルを書いてみました。
レンタルサーバーではmod_expiresが使えない場合が多いので、PHPとmod_rewriteで頑張って追加してみよう的な感じです。
ただ、以下で示す方法は、画像などの静的ファイルにExpiresヘッダを追加するため、ファイル数分のPHPが動くのでサーバーに大きな負荷をかけてしまいます。
上記理由により、アクセスが多いサイトでは、使用しない方が無難かも知れません。
CakePHPを使用してWebアプリを開発する際、簡単に認証機能を実装出来るAuthコンポーネントは、割と使用頻度の高いコンポーネントだと思います。
このAuthコンポーネント、デフォルトではpasswordフィールドに関連するPOSTデータが自動的に暗号化されますが、大人の事情やらなんやらで暗号化したくないってこともありますよね。
と言う訳で、Authコンポーネントのパスワード暗号化を無効にする方法を紹介します。
『VMware Player上のCentOSに開発環境を構築 #1』の続き。
『PHP開発環境をXAMPPからVMware Playerに移行する』から順に書いてきたものの、肝心の"XAMPPから移行"の部分については、「コアなXAMPPユーザーで無ければデータベースのデータを移すくらいでこと足りる」と書いてる途中で思い始めたので、今回は書いてないです。
この記事では、必要パッケージのインストールから設定までを書いていきます。
『PHP開発環境をXAMPPからVMware Playerに移行する』の続き。
VMware Player上のCentOS5.2に開発環境を構築し、XAMPP環境から移行する具体的な内容を書いていきたいと思います。
今回の記事で構築する環境は、あくまでも開発環境であり、セキュリティ面は一切考慮していませんので、公開環境を構築する場合はまた違ってきます。
※意外に長くなったので記事を2回に分けます。
Windows環境PHPでは使えない関数があったり、最近CentOSを触る機会が多かったり、理由は色々ありますが、PHPの開発環境をXAMPPからVMware Player(でCentOSを動かす)に移行しました。
移行はわりと簡単なので、Windows上での開発に不満を感じている方は試してみると幸せガッチリつかめちゃうかも。
ちなみに今回の開発環境は全て無料で構築できます。
何気なくPHP: header - Manualを見ていたら、凄くPHPらしいコード例を発見したのでメモ。
例えば、ステータスコード 301(恒久的移動)を送出してリダイレクトしたい場合、
header('HTTP/1.1 301 Moved Permanently');
header('Location: http://example.com/');
などと書くところを、
header('Location: URL', true, 301);
と書いても同様の結果が得られる。良くも悪くもPHPらしい書き方。
以下に他のコード例も書いてみる。