あ、そうそう。
使ってるけいくのVerですが、現在の最新安定Verである2.1.2です。
結構1.x系と違いがあるのでご注意を。(参考サイトが少なくて困るんですが(´・ω・`))
んで、Ajax使って動的なエレメントを作りたいのですが、
Modelから引っ張ったデータをJSON形式でJavascriptに返したいわけです。
しかし、基本的にはViewが紐付けられてるのでAction内で設定。
$this->audoRender = false;
これだけ。ほら簡単(。╹ω╹。)
あ、そうそう。
使ってるけいくのVerですが、現在の最新安定Verである2.1.2です。
結構1.x系と違いがあるのでご注意を。(参考サイトが少なくて困るんですが(´・ω・`))
んで、Ajax使って動的なエレメントを作りたいのですが、
Modelから引っ張ったデータをJSON形式でJavascriptに返したいわけです。
しかし、基本的にはViewが紐付けられてるのでAction内で設定。
$this->audoRender = false;
これだけ。ほら簡単(。╹ω╹。)
自分のサイトにlast.fmの今再生しているプレイリストを動的に表示したかったんだけど、
あそこのAPIが使えなさ過ぎるし、RSS配信はとてもぢゃないけどリアルタイムぢゃないし、
どうせ自分の分だけなのでページからパースしたのをDBに突っ込んでAjaxで動的に表示しちゃおう的な計画なの
参考:PHP Simple HTML DOM Parser
ここからDLしてください。
まずは読み込んで、パースしたい目的のサイトURLからごそっとHTMLを持ってきます。
include("../homuhomu/simple_html_dom.php); //落としてきたファイルの置き場所 $html = file_get_html("パースしたいサイトのURL");
この$htmlがURL先のHTMLをパースしたDOMのオブジェクトとなる。
これの使い方
$hoge = $html->find(div#hoge); //id="hoge"のdiv要素以下が全て取れる $hoge = $html->find(div.hoge); //class="hoge"のdiv要素以下が全て取れる $hoge = $html->find(div.hoge a); //class="hoge"のdiv要素以下のaタグ要素が全て取れる $hoge = $html->find(div.hoge a)->plaintext; //class="hoge"のdiv要素以下のaタグ要素内のテキスト部分が全て取れる
ほら簡単。3秒ですね3秒….はい(´・ω・`)
cssのセレクタと同様に使えるので、Jquery触ってる人とかは簡単に使えますね。
セレクタはその他の指定方法もあるっぽい。
本家のドキュメントみてください。
あ、あと、これ結構重いです。
取得するDOMを循環参照するので、パースし過ぎるとメモリリークします。
なので、
$html->clear();
これを実行してキャッシュを消しましょう。
とりあえず設置はしましたが、多少手を加えて開発出来る状態にします。
カラフルなページですね。信号と同様の意味合い。
赤のエラーは全て潰しましょう。黄色い部分はのちほど。
Warning (512): CakePHPのフォルダ/app/tmp/cache/ is not writable [CORE/Cake/Cache/Engine/FileEngine.php, line 320]
と出てる場合、apacheの権限不足のためキャッシュが書き込めないので
$ chmod -R o+w app/tmp/cache/
はい、消えましたね?
次に以下のエラー
Notice (1024): Please change the value of 'Security.salt' in app/Config/core.php to a salt value specific to your application [CORE/Cake/Utility/Debugger.php, line 806] Notice (1024): Please change the value of 'Security.cipherSeed' in app/Config/core.php to a numeric (digits only) seed value specific to your application [CORE/Cake/Utility/Debugger.php, line 810]
app/Config/core.phpの179行目あたりにある以下の部分を任意の文字列に変更
/** * A random string used in security hashing methods. */ //Configure::write('Security.salt', 'DYhG93b0qyJfIxfs2guVoUubWwvniR2G0FgaC9mi'); Configure::write('Security.salt', 'poyopoyopoyopoyopoyopoyopoyopoyo'); //任意の文字列(記号も可?らしい) /** * A random numeric string (digits only) used to encrypt/decrypt strings. */ //Configure::write('Security.cipherSeed', '76859309657453542496749683645'); Configure::write('Security.cipherSeed', '4649464946494649'); //任意の数字
これでおk。
はい次。
Your database configuration file is NOT present. Rename APP/Config/database.php.default to APP/Config/database.php
ということでデータベースの設定無いと。
なので、該当のファイルをコピー・リネームしてさーばーにうp。
さーばー直なら
cp app/Config/database.php.default app/Config/database.php
をする。んで、この中身を自分のDB用に設定するのね。
このあとは、一旦modelは使わずにCとVで操作に慣れてみた。
作りたいものがやっと浮かんだので、この後はDB作って色々弄ります。
今回「CakePHPを使いたい」が先行しちゃったので、何作るか決めてませんでした(´・ω・`)
けいくはまだ使ったことなかったので。(今ちょうどお仕事お暇なの(´・ω・`))
とりあえず今後再利用等は考えず、
単体のテストサイトを作ろうの流れ。
既存のぶろぐもこのドキュメントルートに入れ込むので
ちょっと一手間あり。
参考:CakePHPによる開発::マニュアル::1.3コレクション
まずはCakePHP本体のソースをお好きなディレクトリに。
sudo git clone https://github.com/cakephp/cakephp.git cakephp
んで、httpd.confを弄ってDocumentRootを
cakephp/app/webrootに変更。
ついでに別件↓
wordpressのディレクトリを丸々ドキュメントルートに移動。
で、
RewriteEngine On RewriteCond $1 !^/blog/ //←この行を追加(blogはwordpressのディレクトリ名) RewriteCond %{REQUEST_FILENAME} !-d RewriteCond %{REQUEST_FILENAME} !-f RewriteRule ^(.*)$ index.php?url=$1 [QSA,L]
CakePHPは、設定したルーティングによってmod_rewriteで飛ばされるので、
デフォルトだとこのディレクトリは全てコントローラとアクションの配下にある。
ということで、この例外処理を追加します。
とりあえずこれで、トップページもwpも普通に見れる様になりましたね?
なんかwarning出てますけど…
続きはまた。
たいとる通りですね。
1.apache2/sites-available/defaultファイルをいぢる
... <Directory /var/www/> ... # AllowOverride None ↓↓変更↓↓ AllowOverride All ... </Directory> ...
2.コマンドを叩く
sudo a2enmod rewrite
3.apache再起動
sudo /etc/init.d/apache2 restart