現在のURLの取得方法
$url = Router::url(array( 'controller' => Inflector::underscore($this->name), 'action' => $this->action ),true);
$url = Router::url(array( 'controller' => Inflector::underscore($this->name), 'action' => $this->action ),true);
JOINできないのこんな感じで。
$params = array( 'method' => 'fql.multiquery', 'queries' => array( 'q1' => 'SELECT uid2 FROM friend WHERE uid1 = me() limit 10', 'q2' => 'SELECT url FROM profile_pic WHERE id IN (SELECT uid2 FROM #q1)' ) ); $facebook->api($params);
いつも忘れるのでメモ。
[QSA] QueryStringAppend
[NE] NotEscape
[R=301] Redirect?
[L] Last?
[C] Chain 次のルールと条件の結合 AND 結合する場合
[E] environment E=VAR:VAL環境変数のセット
[F] forbidden(403)マッチしたURLへのアクセスを禁止する
[G] Gone(410)マッチしたURLは行方不明であることを伝える
[L] Last 条件にマッチした場合そこで判定を終了する
[N]next 書き換えが住んだURLを新たなリクエストとして書き換え処理を再度最初のルールから繰り返す
PhotoShopショートカット:レイヤースタイルのコピペをようやくショートカットキーに登録した。
Mac環境ですが、 [Cmd]+[Ctrl]+C or [Cmd]+[Ctrl]+V
もっと早くやっとけばよかったなぁ〜
cakephpファーストセットアップメモ
個人的にいつも設定することを備忘がてらにまとめておく。
/Config/core.php
date_default_timezone_set('Asia/Tokyo');
/Config/bootstrap.php
最後の行に自分の設定ファイルの読込を追記
/** * original settings */ config('original_settings');
実際のファイル置く場所は/Config/original_setting.php
/Config/database.php
ローカル、サーバの切り替えをかいとく、最後の方のDATABASE_CONFIGクラスを書き換え本サーバ側の設定は分からないことが多い。
class DATABASE_CONFIG { public $default = array(); public $production = array(); public $development = array( 'datasource' => 'Database/Mysql', 'persistent' => false, 'host' => 'localhost', 'login' => '', 'password' => '', 'database' => '', 'prefix' => '', 'encoding' => 'utf8', ); public function __construct(){ if($this->isLocal()) { $this->default = $this->development; } else { $this->default = $this->production; } } private function isLocal(){ if( $_SERVER['SERVER_NAME'] == '127.0.0.1' || $_SERVER['SERVER_NAME'] == 'localhost' || preg_match('/192\.168\./',$_SERVER['SERVER_NAME']) ){ return true; }else{ return false; } } }
なんか普通の説明だとうまくいかず。以下のとおりするとうまく行った
※macOSとMAMP組み合わせ
//ソケットファイルのリンクつくる
sudo ln -s /Applications/MAMP/tmp/mysql/mysql.sock /tmp/mysql.sock
//phpコマンドに渡す(MAMPのPHPだけしか入ってないとフルパス必要かも)
php ./cake.php bake
jQueryのajax()関数で、successの関数に引数を渡したい。
以下の用に無名関数とか書いちゃえばいいんだけど、スコープが広くりすぎるとなにか気持ち悪い。
そんなときはクロージャがいいな。
var Hoge = { fuga : function(url,id){ $.ajax({ dataType : 'json', url : "hogehoge", context : this, success : function(json,status,xhr){ this.uga(id,json,status,xhr); } }); }, uga : function(id,json,status,xhr){ alert(id); } }
ちゃんと調べてないのですが、たぶんsuccessが実行されるまで変数urlなどへの参照を保持する必要があり微妙にメモリを食いそう。
それよりなによりクロージャーを使えば以下のとおりすっきりできました。
可読性がいい。
var Hoge = { fuga : function(url,id){ $.ajax({ dataType : 'json', url : "hogehoge", context : this, success : uga(id) }); }, uga : function(param_id){ var id = param_id; return function(json,status,xhr){ alert(id); }; } }
ALTER TABLE `resources` DROP FOREIGN KEY `fk_resources_resource_types1`; してから ALTER TABLE `resources` DROP INDEX `fk_resources_resource_types1`; すること
とりあえずメモ
公式ドキュメント
http://book.cakephp.org/2.0/en/development/exceptions.html#built-in-exceptions
ビルトインのExceptionは覚えておいてこれを使う。オリジナルは別途作成する必要あり。
公式ドキュメント:和訳
http://hiromi2424.lv9.org/translate/cakephp20/20-exceptions-errors
上と同等
CakePHP2.0 Exceptionを作成する。
http://code-life.net/?p=1168
オリジナルのExceptionの作り方など。
CakePHP 2.0以降で 404 Not Found を発生させる方法
http://www.msng.info/archives/2012/04/cakephp-2-404-not-found.php
サービス運用中のサーバーが急に重くなった。
通常サーバーのアクセスは、非常に少なくで完全にリソースが余っている状態でした。しかしYahooリスティング/GoogleAdwords広告を入稿したところ、大量なアクセスが!?
なんだなんだと思ったら、入稿した広告に対してクローラーが一気にサイトにアクセスしてきていました。キーワードが1グループとかだと問題ないのですが、
例えば、「検索キーワード」複数に対してそれぞれ適切な広告文を出したいがために、数百〜数千キーワードに対してそれぞれ広告文を変えたい場合別々で入稿すると、そのキーワード分のクローラーからのアクセスが一気に集中。
クローラーの為にサーバーをスケールアップするか、急なアクセス増加の予防線として、クローラー程度のアクセスをさばける様にしておくか悩ましいところ。
Powered by WordPress & Theme by Anders Norén