タグ

CakePHPに関するasa_ca3のブックマーク (44)

  • [PHP]環境変数を設定して開発環境と本番環境を分岐する。|WEBプログラム覚書

    HOME>WEBプログラム覚書>[PHP]環境変数を設定して開発環境と番環境を分岐する。 [PHP]環境変数を設定して開発環境と番環境を分岐する。 ローカルのテスト環境と番環境で定数とか変えたい場合、よく$_SERVER['HTTP_HOST']の値で条件分岐を書くんですが コマンドラインで利用すると$_SERVERの値はほとんど設定されてないのでNoticeエラーを吐き出します。 CakePHPでConsole使う場合など困るので環境変数を設定します。 SetEnv httpd.confのVirtualHostディレクティブとかに SetEnv key value って形式で設定します。

  • 極める!Security Component (CakePHP Advent Calendar 2010 24日目) : akiyan.com

    極める!Security Component (CakePHP Advent Calendar 2010 24日目) 2010-12-24 目次 この記事はCakePHP Advent Calendar 2010 24日目に向けて書きました CakePHP Advent Calendar 2010に参加したい!と思ったときには既に遅し、トリの24日しか空いておらず、トリっぽい記事なんて書けないわーと思っていました。が、主催のcakephperさんより「べつにトリっぽくなくていいですよ」との温かい言葉を頂いたので、前々から書きたかったSecurityコンポーネントの話を書いてみます。対象バージョンは1.3.6 Stableです。 ちなみにAdvent Calendarとはなんぞや?といいますと、cakephperさんの書き込みより以下引用。 技術系の方がやっているAdvent Calenda

  • CakePHPでデータベースセッションを使った時の怪現象

    CakePHP1.3.5でのお話。 CakePHPを配置するWebサーバーを複数台でロードバランスしている環境でセッションを使おうと思ったら、ファイル以外にセッションを保存しないといけません。そういった理由で、セッションをデータベースに保存しているシステムがあります。このシステムでデータベースに保存されているセッションが突然全消しされる怪現象が何度か起こってて、なんじゃこりゃ(´・ω・`)ショボーンな感じで、原因究明に3日ぐらいかかった。忘れないうちにその全貌を書き残しておこう。 1. 問題部分 CakePHPでデータベースにセッションを保存している場合、有効期限が切れた時、PHPsession_destroy関数が呼ばれて、それをトリガーにcake/libs/cake_session.phpの__destroyメソッドが呼ばれます。 function __destroy($id) {

  • 【cakePHP】セッションをデータベースで管理 | カニとモモンガと愉快なユウ

    カニモモンガの技術めも 横浜市在住の薬剤師Developer. 第100回薬剤師国家試験合格。 毎日エンジョイしてる。 最近はもっぱらサーバー周りのこととかPHPとか。 仕事の依頼はOZNET合同会社からお願いします。

  • CakePHPを使ったMVC設計のベストプラクティス - Sooey

    CakePHPを使ったMVC設計のベストプラクティス 個人的にはCakePHPはあまり好きではないのですが、CakePHP開発メンバーによるMVCデザインの記事 (CakePHP のおいしいべ方)で紹介されていたBest Practices in MVC Design with CakePHP (php|architect’s C7Y)はMVCフレームワーク利用者にとってとても有用な情報だったので、訳してみました(php|architectの方には翻訳許可を頂いています)。 この記事を読んでドメインモデルに興味を持った方は、エンタープライズ アプリケーションアーキテクチャパターン(PoEAA)やDomain-Driven Design: Tackling Complexity in the Heart of Softwareに手を出してみるのもいいかも。他に、InfoQにユーザー登録すれ

  • CakePHP開発者が知るべき10のこと

    先日、こんな記事が上がっていました。 Android開発者が知るべき10のこと この記事でまとまっているのは、Android開発において必要な10の項目です。 インターフェースの設計から、データの取り扱いまで。 AndroidはモバイルデバイスのOSで、CakePHPは単なるWebフレームワーク。 しかし、予め用意されたルールやAPIを活用する点は同じです。 つまり、フレームワーク全般において、開発者が知るべきことをまとめることが出来るはずです。 ここでは、私が良く利用するCakePHPフレームワークについて、開発者が知るべき10のことをまとめます。 1. CakePHPで良いのか CakePHPを使う際に、知るべきことその1。 それは、あなたは当にCakePHPを使うべきなのかということです。 現在、あらゆるフレームワークが溢れ返っています。 Ruby Ruby On Rail

  • CkaePHPプラグインのまとめ – 総括編

    CakePHPはやはり便利ですね。 記事を翻訳したことで、まだまだ知らない世界があったことを知りました。 そしてまた新しい知識欲が湧いてきました。 皆さんはどうですか? 何か使ってみたいプラグインはあったでしょうか。 これまで載せたCakePHPプラグインの記事を一覧にしておきます。 認証編 AuthComponentの代替えになるプラグインやfacebookと連携するプラグインが紹介されています。それに加え、使いにくいACLを使いやすくするツールも。個人的には一番、興味のある記事でした。 検索とページネーション/ファイルアップロード編 CakePHPの使いにくいページネーションを使いやすくするプラグイン、Yahoo! BOSSのプラグインが紹介されています。ファイルアップロードはTransloaditというサービスに対応させるプラグインから、メジャーなメディアプラグインまで。 最適

  • CakePHPのcore.phpの設定を勉強!! - 子だぬきの技術習得ノート

    今回、自分なりにcore.phpの各設定値を調査してみたのでブログに載せておきます。 あまり情報が載っていなかった項目や、説明の意味が分かりにくかった項目があって 自分なりの解釈で行っている所もありますが、とりあえず全部の項目をまとめました。 今回、自分なりにcore.phpの各設定値を調査してみたのでブログに載せておきます。 あまり情報が載っていなかった項目や、説明の意味が分かりにくかった項目があって 自分なりの解釈で行っている所もありますが、とりあえず全部の項目をまとめました。 Configure::write(‘debug’, 0); 0 = 運用モード 1 = エラーと警告を表示 2 = エラーと警告、SQLを表示 3 = エラーと警告、SQL、コントローラのdumpを表示 Configure::write(‘App.encoding’, ‘UTF-8’); システム内部での文字コ

  • CakePHP1.3でテストコード(2) -フィクスチャをいじってみる- | PPl@ce

    今の日時(03/23)で見れば、id2のデータは未発売になり、id1のデータは発売済みになります。 しかし、テストを実施した日によっては両方共、発売済みになります。 上記のように、テストケースを常に実行し続けて、ある日テストが失敗になってしまうような初期データでは困ります。 こういうケースのために、(特に)日時のデータを動的に変更したいのです。 やったことフィクスチャで投入するデータを動的に変更できないかやってみました。 変更したのは、フィクスチャとテストケースの2つです。 フィクスチャsetInitDataメソッドで追加登録するデータを選べるようにしています。<注意点> setInitDataメソッドは__construct後に呼ばれます。 そのため、$normalDataがすでに登録されているので、主キーは別の値にする必要があります。 <?php class SampleFixture

  • 権限問題と UA 二分病と CakePHP でのロール分岐試案 - 昨日知ったこと

    権限問題 WEB アプリケーションを作っていて、ほぼ同じ機能なのだがユーザに与えられた権限によって微妙に動きが違ったり、情報のアクセス権(閲覧、編集)が違ったりするのを、どのように実現するのか、というのはよく遭遇する問題だ。私の持論は、役割が違うなら役割をはっきり、できるだけ区別すべき、というもの。例として、大学の演習授業用のシステムを考えてみる。「受講している学生(Student)」や「担当教官(Teacher)」がログインして使うほか、「ティーチングアシスタント(Assistant)」もログインして使う。担当する授業はないけど、教官を管理する立場の教授が「監督者(Manager)」としてログインして使ったりする。他にこれらの人をシステムに追加したりする「管理者(Operator)」もいる。さらに、「受講していない学生もログインなし(Guest)」で演習内容などが見られるようになっている

    権限問題と UA 二分病と CakePHP でのロール分岐試案 - 昨日知ったこと
  • CakePHP勉強会@東京 2012春「プラグインバトルロワイヤル」で発表してきた - Copy/Cut/Paste/Hatena

    完全に遅レスですが。 というわけで、いくつか自作のCakePHP Pluginを紹介してきた。 自分では常時使っているものだけれども、やっぱりPluginの紹介エントリとか適当に書くもんだから知られていなかった。 プラグインバトルロワイヤル k1LoW side | ZENPRE 意外に人気だったのが、Escape Plugin。「怠惰の極み」で作ったものだけれども意外に実用に足るので検討の価値はあると思う。 ちなみに社内にはもう一人「怠惰」な奴がいて、そいつが作ったのが「スキーマを見て最低限必要なバリデーションを勝手につける」というPlugin。 どっちも対テスター用という。別にテスターが怖いわけじゃないよ。

    CakePHP勉強会@東京 2012春「プラグインバトルロワイヤル」で発表してきた - Copy/Cut/Paste/Hatena
  • root権限なしでCakePHP2 + PHPUnitを最速でインストールする方法 - Copy/Cut/Paste/Hatena

    CakePHPはバージョン2系からテストスイートがSimpleTestからPHPUnitに変更になった。 PHPUnitは通常PEARコマンドを利用してインストールするので、root権限がないと若干面倒だったりする。 ただ、テストスイートはプロジェクトの最初のほうで設定しておきたいところ。 あと個人的には、CakePHPの「そのディレクトリだけでプロジェクトオールインワンパッケージ」的なメリットははずせない。 というわけでbakeの前にプロジェクトディレクトリ内にPHPUnitをインストールしてみる。 PHPUnitをCakePHPプロジェクト内にローカルインストールする4つのステップ 1.CakePHP2の設置 いつものように任意のディレクトリにCakePHPのディレクトリを設置。バージョン2になってプロジェクトルートにcake/がなくて、lib/があったりして若干戸惑うけどそのまま設置

    root権限なしでCakePHP2 + PHPUnitを最速でインストールする方法 - Copy/Cut/Paste/Hatena
  • 地中へのはしご

    とある受託案件があった。Railsで提案すると、「PHPで」とのことだった。 殺された知的好奇心 実はLaravelに興味があった。PHPフレームワークをGoogle trendsで見ると、世界ではCodeIgniterをとっくに交わしてダントツのNo.1。 ガラパゴスCakePHP王国日でもNo.2に躍り出てCakeを激しく追い上げている。チュートリアルをざっと見ても、「イケてるな」と感じていた。 CakePHP3にも興味がないではなかった。DBからEntityを取得すると、配列が返ってくるというCakeの象徴のような仕様。Modelまわりが直感的じゃなくならざるを得ないあの仕様が、ついに変わったという。 しかし僕は100万弱の案件を10日で終わらせるため、過去のコード資産を活用でき、手足のように使えるCakePHP2系を結局選んだ。 経営者として生きるため、技術的好奇心などとっくの昔

    地中へのはしご
  • 自動テストのfixtureを効率的に管理する方法

    みなさんこんにちは。@ryuzeeです。 僕がやっている案件(PHP)はもともとテストコードのないレガシーなプロジェクトで、それを改善するためにずっと動作を確認するための結合レベルの自動テストを増やしてきました。 そんな中で、僕のところではどうやってテスト用のfixtureを管理しているか事例として紹介したいと思います。 最初にコアとなるfixtureを用意するみんながたくさんテストを作る前にコアとなるテスト用のfixtureは用意しておきます。 さもないと、みんなが好き勝手にfixtureを作ってしまい、あっという間に混乱に陥ります。 プログラム体と同様に、DRYの原則で、同じようなテストデータを繰り返し作ってしまうようなことは避けるべきです。 最悪なパターンは、開発機や番機のデータを引っこ抜いてきて、それをそのままテストデータとしてごっそり使う方法です。 流石に居ないと思いたいです

    自動テストのfixtureを効率的に管理する方法
  • Prefix routing毎にセッションCookieのセッション名を切り替える。CakePHP1.3 - kanonji’s diary

    CakePHP 1.3.0から少し変わった Prefix Routing で、管理画面や携帯サイトなど、ディレクトリで分けた別サイトっぽく出来ます。 ただ、同じController/Modelクラスを使うし、config系も共有しています。 実態としては同じサイトの一部という感じです。 そこで気になるのは、セッションCookieがどうなるかと言う事です。 何かの間違いで*1PCサイトにログインしたセッションで、管理画面にログイン済み扱いになるみたいな事は避けたい。 なので、セッション名を違うものにして、混ざらないようにしたいです。 Prefix routing設定例 <?php Configure::write('Routing.prefixes', array('admin', 'mobile', 'dev')); APP/config/core.php http://www.examp

    Prefix routing毎にセッションCookieのセッション名を切り替える。CakePHP1.3 - kanonji’s diary
  • CakePHP Note (v1.3) > インストール | GARACTER

    開発 (丸ごとインストールするだけの方法) ローカルのマシンでの開発など簡単に利用出来る方法です。レンタルサーバー等でWebサーバーのドキュメント・ルートが固定されていて変更出来ない場合などもこちらの方法でインストールします。 Webサーバーの公開ディレクトリの任意の場所にCakePHPを丸ごとコピーします。以下の例は、Webサーバーのドキュメント・ルートが'/var/www/html'、ダウンロードしたCakePHPのファイルを解凍して、'cake_1_3'のような名前にした場合の例です。 /var/www/html cake_1_3 .htaccess app cake index.php plugins vendors 次のようなURLでアクセスできます。 http://www.mydomain.com/cake_1_3/ 運用 (ドキュメント・ルートの設定を行う例) CakePHP

  • CakePHPとMySQLのON UPDATE CURRENT_TIMESTAMPを使う | @blog.justoneplanet.info

  • CakePHP | PHP Labo

    概要 CakePHP1.3の導入&アプリケーション作成メモ。 改ページの導入 ログイン機能の導入 ログイン状態保持機能の導入 ワンタイムトークン(CSRF対策)の導入 で躓いたので、それらの導入までをメモしておきます。基的に自分用のメモなので、詳細はその都度解説サイトや書籍などを参照することをお勧めします。 自分で色々調べつつ書いているメモなので、見当違いな事を書いてある可能性があります。 導入 設置 公式サイトからCakePHP1.3をダウンロードします。 http://cakephp.jp/ 入手したファイルを適当なディレクトリにコピーします。今回は、公開フォルダ直下に cakephp フォルダを作成し、その中に各フォルダとファイルを格納するものとします。URLは http://localhost/cakephp/ でアクセスできるものとします。 実際に運営するときは、/cakeph

  • CakePHP Security コンポーネントのまとめ | Sun Limited Mt.

    トークンが一致しないと SecurityComponent の blackHole メソッドが実行されます。このメソッドでは header('HTTP/1.0 404 Not Found'); を出力して exit します。(画面は空白) 任意の処理を実行したい場合は blackHoleCallback でコールバック関数を指定します。 設定できるのは同じコントローラ内のアクションのみになります。 function beforeFilter() { $this->Security->blackHoleCallback = "securityError"; $this->Security->requireAuth('login'); } function securityError() { die("security error!"); } トークンチェックをするアクションを複数指定するとき

  • CakePHPで動的にBehaviorを切り替えてModelの振舞いを変えるときはunload、loadを使う - こんにちはこんにちはmonmonです!

    CakePHP DocumentのBehaviorsの項にも書いてありますが、「ある時はこういう処理をして欲しいけど、違う時は別の処理をして欲しい」みたいな話。 やりたいこと あるModelがあって、今はAという処理だけあれば良いのだけど、今後BやCという処理も増やしたい 例えば「自動販売機」というModelがあって、今は「缶を売る」という処理だけだけど、今後「ビンを売る」「ペットボトルを売る」という処理も増やしたい こんな時はデザインパターンのStrategy パターンが使えそうなのだけど、CakePHPでやる時にはBehaviorを使えば似たようなことできるのかな?と思って調べて試してみた。 CakePHPのドキュメントを確認 Behaviorsのドキュメントを読むと、 However, we may need to “detach” behaviors from our models