edo1z blog

プログラミングなどに関するブログです

cakePHP

cakephp1.3 - SSL接続

1.3の場合セキュリティコンポーネントが微妙な挙動をするらしく、使わずにSSL接続や、CSRF対策などをやることが多いらしい。 SSL接続は、SSLコンポーネントというものが便利らしい。 SSL Component 簡単に設定できた。常時SSL接続の場合の設定方法はよくわか…

cakePHP - メール送れない(additionalParameters)

参考: [CakePHP開発]メールが受信できない時はReturn-Pathを設定してみよう CakePHPのemailでReturn-Pathを設定する email.phpの設定で、下記を追加する。 public $default = array( 〜〜〜 'additionalParameters' => '-f hoge.com' //追加 );

cakePHP2 404エラーが発生したらリダイレクトさせる

参考:CakePHP2.Xで404 Not Foundエラーをリダイレクトする方法 上記のとおりやってるんだけどエラーになる。 Fatal Error (1): Call to undefined method AppExceptionRenderer::redirect() $this->controller->redirect('/');にしたらできた。

cakephp webroot以外を非公開ディレクトリに移動

参考:CakePHP webroot以外を非公開ディレクトリに移動する webrootの中身をパブリックなディレクトリに入れます。 それ以外を非公開ディレクトリに入れます。 今回さくらだったので、wwwをパブリックにして、その上にhogeとつくってこれを非公開としました…

cakephp - ログインが必要なajaxでログインが切れちゃった場合の挙動

authコンポーネントつかってるので、authコンポーネントでログイン状態を確認したときに、ajaxだった場合は、ログイン画面にリダイレクトする変わりに、ログインしてねというメッセージをviewにセットして、終了したい。 cakephpのcookbookみたら、ちゃんと…

capistrano3でcakephpのmigrations pluginを実行させる

cookpadの人がridgepoleというのを作られまして、これはべきとうせいが保証されているらしい。ちなみにべきとうせいという読み方は間違っているかもしれない。漢字が変換で出てこない。どうもテーブル一覧つくってそれを更新するだけでいいっぽくて、その一…

cakePHP SessionをDB+memcachedにしてみる

セッションをmemcached+DBというコンボセッションにしたいと思います。コンボセッションというのはここに書いてあるからそういう風にいうのかなと思いました。 http://book.cakephp.org/2.0/ja/development/sessions.html 上記ではAPCが使われていますが、AP…

EC2 cakePHPでMemcachedつかう

AmazonLinuxにMemcachedを設定します。 インストールと設定 インストールします。 参考:さくらの VPS 設定覚書(4)PHP yum --enablerepo=remi,epel,rpmforge install libevent libevent-devel memcached php-pecl-memcache php-pecl-memcached 設定します…

cakephp mpdf A4横でブラウザ表示

前の記事:cakePHP2.3 mPDFを使ってPDFを出力する(レイアウト・ビューを使ってPDFを作成しサーバに保存する) 上記で大体できますが、A4横にしたりするのがわからなかったから調べた。ブラウザ表示自体は、$mpdf->Output();で普通にブラウザに表示されます…

twitterプロフィール画像をFilebinderに関連づけつつ保存する

全然汎用的じゃないけどtwitter画像を保存してみた。 /** * Twitter画像の取得関数 */ public function save_twitter_profile_img($model, $twitter_img_url, $user_id){ $args = array(array(18, 18), array(48, 48)); //サムネイルのサイズ $save_dir_path…

cakePHP findのorderで配列の順番にソートするように設定する

$array = array(5, 4, 31, 29); $options = array( 'order' => "FIELD(id, " . implode(',', $array) . ")", ); return $this->find( 'all', $options );

jquery ui sortable で並び順を取得する(serialize)

参考:http://api.jqueryui.com/sortable/#method-serialize ここで、item_1、item_2といった感じで連番ふるよといいましたが、どちらかというと並び替えの場合、並び替え対象でDBのIDで管理しないといけないと思いますので、item_idという感じにした方がよ…

cakePHP SecurityコンポーネントのBlackhole

セキュリティ的にかなり便利なようで、javascriptでフォーム書き換えしたりbackボタン使ったりできなくなるのはいいですが、そのかわりかなりBlackholeにはまります。 参考サイト: Cakephp2.xでのBlackHoleまとめ [CakePHP2] Security Component を使って S…

PHPから自動でサブドメインつくる (cakePHP)

よくあるアカウント登録してサブドメイン名登録すると、ユーザ専用のサイトを作成できるようにしたいがやったことがない。 サーバはEC2のAmazonLinuxを使っています。ドメインはRoute53で管理してます。 Route 53のRecord Setsで、*.hoge.comとやれば、どん…

FileBinderの設定

引用:CakePHPの超便利なファイルアップロードプラグイン、FileBinderプラグインの使い方をまとめてみた。 public $actsAs = array( 'Filebinder.Bindable' => array( 'model' => 'Attachment', // ファイル情報を保存するモデル名 'filePath' => WWW_ROOT .…

cakePHPをcomposerでインストールする

参考: http://book.cakephp.org/2.0/ja/installation/advanced-installation.html https://getcomposer.org/download/ mkdir compo1 cd compo1 touch composer.json vim composer.json { "name": "compo1", "repositories": [ { "type": "pear", "url": "ht…

PHP 全角半角どちらでもOKで、空白区切りで絞り込む検索

$keyword = mb_convert_kana($keyword, "s"); $keyword = trim(preg_replace('/\s+/', ' ', $keyword)); $words = explode(' ', $keyword); foreach($words as $idx => $word){ $word_h = mb_convert_kana($word, 'ak'); $word_z = mb_convert_kana($word, '…

cakePHP CSVヘルパー

列の追加 $this->Csv->addField('hoge'); 改行 $this->Csv->endRow(); レンダリング(ファイル名指定、文字コードをUTF-8からSJISに変換) Csv->render('hoge.csv', 'SJIS', 'UTF-8')?> 試してないけど、$this->Csv->setFilename('支払.csv'); とかでファイ…

cakePHP コントローラーで手動でバリデーションエラー登録

こんな感じで登録できる。hogeはフィールドです。 $this->Blog->invalidate('hoge', '変な値です'); モデルの場合はこうです。 $this->invalidate('hoge', '変な値です'); ブログ投稿後にトラックバック送信して、送信エラーがあったらブログを登録しないよ…

cakePHP Migrationsプラグインのエラー

なんかすごい手軽に利用できるもののいつもエラーになってまいっております。 そのテーブルは既に存在しますというエラーが発生します。 There was an error during a migration. The error was: 'Table "hoges" already exists in database.' You must reso…

cakePHP $this->Text->truncate 表示文字数制限

http://book.cakephp.org/2.0/ja/core-utility-libraries/string.html echo $this->Text->truncate( 'The killer crept forward and tripped on the rug.', 22, array( 'ending' => '...', 'exact' => false, 'html' => false ) ); htmlオプションがtrueだと…

cakePHP Tagプラグイン

Tagプラグイン すごくシンプルに使うとすると確かに便利だなあ。 cake schema create --plugin Tags --name tags これでtagsテーブルと、taggedテーブルを作ってくれる。 tagsテーブルはまさしくtagのテーブルで、taggedテーブルは中間テーブル。 モデルにベ…

capistrano3でさくらレンタルサーバにGItHubのリポジトリをデプロイする

さくらレンタルサーバは環境変数設定ができず、capistrano3のデフォルトでgitリポジトリをデプロイしようとすると、GIT_ASKPASSという環境変数を設定しようとしてエラーになります。なのでデフォルトの機能を使わずにやってみます。 やることは、デプロイす…

cakePHP CakeDC/migrationsプラグイン

Migrationsの管理用テーブルの作成 ./cake Migrations.migration run all -p マイグレーションファイルの作成 ./cake Migrations.migration generate -f データベースの更新 ./cake Migrations.migration run all データベースの適用状態の確認 ./cake Migra…

cakePHP - httpsとhttpの接続強制処理

参考:CakePHP2.xでSSL接続(https://)を強制させる 参考:CakePHP 2.xのSecurityコンポーネントを使う際の注意点 Secutiryコンポーネントを使用すると、POST時に下記のような挙動をするため、Ajaxとか使ってるとエラーになるので注意が必要。 ・Formヘルパー…

厳選! cakePHP優良プラグイン53選!!

つかれた!大体上から人気ある順で並んでおります。 人気がちょっとあってもちょっと古いのは割と下にいます。 Croogo cakePHPで作られた高機能なCMSらしい。これを全部組み込んだり一部組み込んだりするとブログとかすぐにつくれるかも http://croogo.org/ …

cakePHPのソースをローカル上で納品ファイルにする為のシェルスクリプト

GitHubとCapistranoつかって普段はデプロイしているのですが、ローカル上で納品ファイルをつくってscpで本番サーバにアップするような場合は、ローカル上に最新のファイルをPULLしてからcakePHPのデータベース設定の内容とか、デザイナさんがベタ打ちしてい…

cakePHP2.3 GMOペイメントのモジュールをつかう

app/Vendorにモジュールのディレクトリを配置して、require_onceする。

管理画面のメニューを自動で作成する

管理者の権限は色々ありますし、最終的にはメソッド単位で細かく管理できないといけないと思います。 あと、単にそのメソッドを実行できるか否かだけではなく、どのデータを扱うことができるかまで管理できる必要があります。 こういうのはどうもACLというら…

cakePHP モデルからランダムに取得する

orderに、'rand()'とやる public function get_banners($num = 3){ $options = array( 'limit' => $num, 'order' => 'rand()' ); return $this->find('all', $options); }