Home > Tags > CakePHP
CakePHP
cakephp1.2でPEAR::Services_Amazonを使う
- 【PHP TIPS】 60. PEAR::Services_AmazonでAmazonにアクセス:ITpro
- PEAR :: Package :: Services_Amazon
- PEAR HTML_QuickForm and cakephp - Cake PHP | Google グループ
上記3サイトを参考に実装する。
- vendors/pear.inc.phpを作成
- PEAR::Services_Amazonと依存関係にあるパッケージをvendorsディレクトリ以下に配置
- Services_Amazonの呼び出し
define('PEAR_PATH', dirname(__FILE__) . DS . 'PEAR');
set_include_path(PEAR_PATH . PATH_SEPARATOR . get_include_path());
?>
必要なパッケージを以下のように配置
vendors/PEAR/Cache
vendors/PEAR/Cache.php
vendors/PEAR/HTTP
vendors/PEAR/Net
vendors/PEAR/PEAR
vendors/PEAR/PEAR.php
vendors/PEAR/Services/Amazon.php
vendors/PEAR/Services/AmazonECS4.php
vendors/PEAR/XML
※もしかした不要なものも含まれてるかも。。
キーワード「Web」で1ページ目の情報を取得
vendor('pear.inc');
require_once('Services/AmazonECS4.php');
$option = array('subscription_id' => 'xxx',
'associate_id' => 'xxx',
'locale' => 'JP');
$amazon = new Services_AmazonECS4($option['subscription_id'], $option['associate_id']);
$amazon->setLocale($option['locale']);
$list = $amazon->ItemSearch('Books', array('Keywords' => 'Web',
'ResponseGroup' => 'ItemIds,ItemAttributes,Images',
'ItemPage' => '1'));
debug($list);
これで10商品分取得できる。
cakephp1.2でcacheを使う
cakephp1.1の時と同じように(ちょっと違うけど)キャッシュの設定をする。
- core.phpの設定
- controllerの設定
Cache.checkのコメントを削除
Configure::write('Cache.check', true);
プロパティに追加(※Cacheヘルパーを指定しないと動かない)
var $helpers = array('Html', 'Cache');
アクションに追加(※trueだと動かない)
$this->cacheAction = '+12 hours';
これでキャッシュが有効になる。
今からCakePHPを使ってWebアプリを作成する-2
mysqlの設定
mysql> grant all privileges on cake.* to cake@localhost identified by ‘PWD’;
mysql> create database cake;
mysql> exit;
あとはdatabase.phpを設定する。
その次にamazonのAPI関数を作成する。
Premature end of script headers: php5.cgi
CakePHPをセットアップしてindex.phpにアクセスすると500 Internal Server Error。
エラーログは以下。
Premature end of script headers: php5.cgi
今のところ手がかりなし
仕方がないので以下のようにphp4で動作するように.htaccessを無理矢理修正
- RewriteRule ^(.*)$ index.php4?url=$1 [QSA,L]
+ RewriteRule ^(.*)$ index.php?url=$1 [QSA,L]
今からCakePHPを使ってWebアプリを作成する-1
TODO
- 本番にCakePHP設定
- 雛形HTML作成
- 画像を取得するAPI利用モジュール作成
正直そんなにたいしたものは作らないけど、CakePHPを使ってWebアプリを作る。APIを使って画像を取得しそれを一覧で並べるだけというアプリを想定。入力窓があってそこに入力すると画面に変化があって、できればアフィリエイトもいれて。まずはそこまで、その次はjsを使ってみる。その次はPHP Extensionを使ってみる。
URLはここ。
CakePHP 1.2 系を試してみる
CakePHPからPre-Beta: 1.2.0.5875 pre-betaをダウンロードする。
クライアントのcoLinux上に展開。
CakePHPが動作するようApacheのhttpd-vhosts.confを以下のように修正する。
ServerAdmin webmaster@c.xxx.co.jp
DocumentRoot /mnt/svn/sylvan-l/c/app/webroot/
ServerName c.xxx.co.jp
ErrorLog logs/c.xxx.co.jp-error_log
CustomLog logs/c.xxx.co.jp-access_log common</virtualhost>
<directory>
Options Indexes FollowSymLinks
AllowOverride AuthConfig Limit FileInfo
Order allow,deny
Allow from all
</directory>
</virtualhost>
mod_rewriteがあった方がいいので、以下の記述をhttpd.confに追加しapacheを再起動する。
LoadModule rewrite_module modules/mod_rewrite.so
CakePHPの勉強会へのリンク
CakePHP勉強会を開催しました! & 発表資料です : akiyan.com
今後も利用していきたいと思っているフレームワークCakePHP。
一度業務で利用したけれどまだまだ理解できていない部分があり、発表資料を読んでもっと使い込まないとと感じました。
CakePHP勉強会を開催しました | Shin x blog
また普段からブログを読んでいる Shin x blogさんが大阪と聞いてびっくりしました。会社でどんな風に利用しているのか知りたいなぁとつい思いました。
オライリージャパン
売り上げランキング: 1780

要点がコンパクトにまとまっています。(中級者以上向け)
query 関数で同じ sql を実行するとキャッシュが効いてしまう
- 2007/06/04
- Web開発関連
例えば、
上記のような処理をすると、1 度目の query 文で取得したデータと 2 度目の query 文で取得したデータは異なるはずだが、CakePHP の仕様ではキャッシュがデフォルトでオンになっているためレコード追加後のデータは取得できない。
仕方がないので、cake/libs/model/datasources/dbo_source.php を修正する。
function query() {
$args = func_get_args();
$fields = null;
$order = null;
$limit = null;
$page = null;
$recursive = null;
if (count($args) == 1) {
return $this->fetchAll($args[0]);
修正後
function query() {
$args = func_get_args();
$fields = null;
$order = null;
$limit = null;
$page = null;
$recursive = null;
if (count($args) == 1) {
return $this->fetchAll($args[0], false);
追記
この前気づいたけどこの修正は間違い。query() 関数の何個目かの引数に false を渡せばキャッシュされないようになります。
- コメント: 0
- トラックバック(閉): 0
CakePHP で GROUP BY を使う
以下のようにするだけで GROUP BY が使えます。
$conditions = "GROUP BY ID";$this->modelName->findAll($conditions);
- コメント: 0
- トラックバック(閉): 0
対応が必要なモデルの validates
CakePHP モデルのvalidates()に注意 | Shin x blog には対応する必要がありそう。
このままだと空っぽのデータをバリデーションにかけると OK になる。
- コメント: 0
- トラックバック(閉): 0
ホーム > タグ > CakePHP

