タグ

cakephpに関するaki202のブックマーク (33)

  • CakePHPでMasterとSlaveにリクエストを振り分けるベストプラクティス的なものが知りたい - こんにちはこんにちはmonmonです!

    DBの負荷分散用に「更新はMaster」、「参照は複数のSlaveたちへ」的なことをCakePHP2.0でやろうと思ったのですが、 ハマってしまったのでメモを残します。 やりたいこと 更新はMasterへ、参照は複数のSlaveへ ただし、ざっくりでいい。参照のいくつかがSlaveへ行けばいい。 それを踏まえての実装(失敗) まず、 Slaveに向けておいて、saveのタイミングでMasterへ向ける というのは切り替わりに問題があった時にSlaveDBを更新してしまい不整合起きてしまって困る。 なので、 普段はMaster、findのタイミングでSlaveに向ける という方針を立てました。 そうすればもし問題があったとしてもMasterに参照しに行くだけなのでいいだろうと。 ということで考えた案はAppModelに public function beforeFind($queryDat

    CakePHPでMasterとSlaveにリクエストを振り分けるベストプラクティス的なものが知りたい - こんにちはこんにちはmonmonです!
  • コールバックはもう古い!CakePHPのEventを使おう : candycane development blog

    フレームワークの処理に介入するには以前はコールバック関数を使った方法が主流でした。クラスの継承とメソッドのオーバーライドを使った方法は比較的わかりやすいものでしたが、下記のような問題があります。コールバックを使うためだけにサブクラスを作るのは面倒独自のクラス階層を作っているとコールバックを差し込む場所をよく考える必要があるコールバックを差し込んだ箇所を後から探すのが難しいControllerからViewを表示する前になんらかの処理を行うという拡張をコールバックを使った方法で行った場合は下記のようになります。 AppController extends Controller { public function beforeRender() { //do something } } CakePHP2.1から採用されたEventManagerを使う事で上記の問題をシンプルに解決できます。Cont

  • 今時なCakePHPでの開発環境!? - kaz29

    前職を退職してもう半年以上経ってしまいました。おかげさまで、レガシーなコードとのバトル等色々お仕事しています。 さて、先日のPHP Matsuri2012での@ryuzeeさんの発表を聞いて、開発環境や手法を改善するべく、今月から始まったプロジェクト用の環境を構築しています。 CakePHPは最新で! CakePHPの最新stable版は 2.2.3 ですが、既に 2.3.0-beta が公開されています。幾つか2.3.0-betaの機能で使いたかったものがあったのと、今回のプロジェクトのリリース時期が来年の5月という事もあって、2.3.0-beta を使って開発をしています。来年の5月なら2.3.0Stable版がリリースされるんじゃないかとの読みです(^^;さて、どうなるでしょうかw? 出来る限り公開されているPluginを使う 前職の職場では、ある程度蓄積された自前のPluginがあ

    今時なCakePHPでの開発環境!? - kaz29
  • CakePHPでライブラリを共通利用する | インソースマーケティングデザイン | ホームページ制作・リニューアル・運用改善で課題を解決

    2012.4.9システム開発 インソースマーケティングデザイン 2021年8月1日「マリンロード」は「インソースマーケティングデザイン」へ社名を変更いたしました CakePHPでライブラリを共通利用する 前回は、CakePHPで複数アプリケーションを管理する方法を紹介しました。 今回は、複数アプリケーションで動いていることを前提に、 例えば文字をどうのこうのするライブラリ群だとか 日付をどうのこうのするライブラリ群だとかを準備した場合、 それを複数のアプリケーションから利用する方法を紹介します。 1.共通ライブラリを設置する場所を準備 設置場所:/CakePHP2.0/lib/Common (名前は何でもOK!) CakePHP2.0 ├─apps │ ├─admin (管理者者向けアプリ用アプリケーションフォルダ) │ └─public (一般利用者向けアプリ用アプリケーションフォルダ)

    CakePHPでライブラリを共通利用する | インソースマーケティングデザイン | ホームページ制作・リニューアル・運用改善で課題を解決
  • CakePHP routes.phpの確認はユニットテストで

    routes.phpを仕様に合わせて設定しておきます。 <?php // Router::connect('/:user_id/edit', array('controller' => 'user', 'action' => 'edit')); Router::connect('/', array('controller' => 'top', 'action' => 'index')); Router::connect('/:user_id/*', array('controller' => 'user', 'action' => 'index')); // Nothing Router::connect('*', array('controller' => 'nothing')); ?> 最後はシステムが取るべきURL以外ならNot Foundを出すように設定しています。これにより想定外

  • gitでpushしたりpullしたり | 半年前の私への教科書

    なんかおかしいと思いつつも、決定的な情報がなかったために間違ったやり方をしていたのですが、ひょんなことから正しい情報をゲットしたので、私はこうやって使っていますという話を。 (もしかしたらまだまだ非効率なやりかたをしていると思うので是非ご指摘ください) バージョン管理システム自体を知らなかった自分にも理解できるよう、かみ砕いた説明をしたいと思います。 基的にgitは、sshが使えれば、導入をためらうことはありません。 サーバー間のやりとりはsshを使って行えますので、gitを導入するにあたって余計なポートをあけたりする必要はないです。 gitでは、今いるレポジトリ(ソースを入れてるディレクトリ)を特に「ローカルレポジトリ」と呼び、やりとりする相手方を「リモートレポジトリ」と呼びます。 普段開発している社内のPCを開発サーバー(開発環境)と呼び、Webサイトを公開しているサーバーにはテ

  • Can I use one model inside of a different model in CakePHP?

    Can I use another Model inside one model? Eg. <?php class Form extends AppModel { var $name='Form'; var $helpers=array('Html','Ajax','Javascript','Form'); var $components = array( 'RequestHandler','Email'); function saveFormName($data) { $this->data['Form']['formname']=$data['Form']['formname']; $this->saveField('name',$this->data['Form']['formname']); } function saveFieldname($data) { $this->data

    Can I use one model inside of a different model in CakePHP?
  • CakePHPで普段使っているpluginをまとめてみた | Web活メモ帳

    2010年を振り返る意味で、自分がCakePHPで開発する際に良く使うプラグインをまとめてみました。 誰かのお役に立てれば幸いです。 1.cakeplus ■ よく使うバリデーションをまとめたBehaviorであるadd_validation_rule モデルでバリデーションする際に当に使います。 var $validate = array( 'hoge' => array( "rule1" => array('rule' => array('katakana_only'), 'message' => 'hogeにカタカナ以外が含まれています' ), ), ); ■ 自動でhiddenタグを生成するヘルパーformhidden 確認画面を挟む際にhiddenに入力情報をまとめて出力してくれます。 echo $formhidden->hiddenVars(); このプラグインを知ってから、

    CakePHPで普段使っているpluginをまとめてみた | Web活メモ帳
  • CakePHP開発者が知るべき10のこと

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

  • QdmailReceiver Multibyte mail decoder & POP Client

    hal456トップページ QdmailReceiverでできること メールデコード(日語OK) 受信サーバー(POP)操作 PHPで、日語での空メールや多機能転送メールを簡単に実現したり、POPメールボックス操作でWEBメールを実現できたりします。主にメールのMIMEデコード機能、POP操作機能から成り立っています。その他、様々な用途が考えられるでしょう。 Pear::Mail,Pear:MIMEなどで同様の機能は実現できますが、メールの仕組みを理解していないと難しいです。Qdmailシリーズは、「初心者には簡単に、上級者には詳細に」のポリシーのもと、簡単使用方法と、詳細使用方法の両方を使うことができます。 簡単にメールのデコードができるので、例えば、取得したメールをヘッダーと文まるごとデータベースに保存しても、すぐに内容を取り出すことができます。 gmailのようなWEBサービス

    QdmailReceiver Multibyte mail decoder & POP Client
  • Order by field - cakebaker

    Yesterday, Tarique Sani mentioned in a thread in the CakePHP Group “order by field”. I know “order by”, but I never heard about “order by field” (which seems to be MySQL-specific). Ok, let’s do some examples to learn more about it. We will use the following countries table: [1] => USA [2] => Germany [3] => Russia [4] => Austria [5] => China [6] => Switzerland Now, we don’t want to sort them by the

  • CakePHP's cache that wouldn't quit · all night diner

  • 3.4. CakePHP運用環境 のセットアップ

    New CakePHP 5.0 Chiffon. Faster. Simple. Delicious. What's new in version The migration guide has a complete list of what's new in. We recommend you give that page a read when upgrading. A few highlights from 5.0 are: PHP 8.1 required. Improved typehints across the framework. CakePHP now leverages union types to formalize the types of many parameters across the framework. Upgraded to PHPUnit 10.x

    3.4. CakePHP運用環境 のセットアップ
  • 3.4. CakePHP運用環境 のセットアップ

    New CakePHP 5.0 Chiffon. Faster. Simple. Delicious. What's new in version The migration guide has a complete list of what's new in. We recommend you give that page a read when upgrading. A few highlights from 5.0 are: PHP 8.1 required. Improved typehints across the framework. CakePHP now leverages union types to formalize the types of many parameters across the framework. Upgraded to PHPUnit 10.x

    3.4. CakePHP運用環境 のセットアップ
  • CakePHP多言語化対応

    CakePHP多言語化対応 CakePHP 多言語化対応 会社の ロゴ 発表 : kuma http://kuroutoshikou.blog16.jp/ 1. 手順 1. 多言語化を想定したビュー作成 2. 翻訳ファイルに集約 3. 翻訳ファイル配置 4. 翻訳メッセージ編集 2.View 作成 __() 関数 そのまま出力する場合 (echo の代わり ) <?php __(\"ErrorMessage\"); ?> 戻り値として渡す場合 <?php sprintf(__(\"Error %s\", true), 123); ?> 3. 翻訳ファイル作成 i18n シェル /cake/console/  → ./cake i18n 1. [E] (抽出)を押す 2. 対象ディレクトリのフルパスを入力 3. 出力先を入力(デフォルトで OK ) 4. 1 つのファイルにまとめるので [y

  • » [CakePHP] TinyMCE(WYSIWYGエディター)を実装する方法 PHP × Ajax = Cool CMS

    TinyMCEとは 「見たまま編集」ができるHTMLエディターの一つ。 CKEditorと並ぶ代表的なWYSIWYG(ウィジウィグ)エディター。 仕様 CakePHPで作成しメルマガ編集画面に、TinyMCEを実装する。 エディター内に携帯絵文字プラグインを実装する。 導入方法 TinyMCE をダウンロード。Download の Main Package にある tinymce_x_x_x_x.zip をクリック。 解凍後、tinymce/jscripts/ディレクトリ内にあるtiny_mceディレクトリのみを、 CakePHPの app/webroot/jsディレクトリ内に配置。 日語化パッケージをダウンロード。[Japanese] のチェックボックスを選択し、一覧の下にある[Download]ボタンをクリック。 解凍後、tinymce_lang_packディレクトリ内の3つの

  • CakeのURLパラメータに特殊文字を使ってはいけない | へびにっき

    環境: CakePHP 1.3 CakePHPはURLパラメータのエンコードを一切行わないため、特殊な文字がパラメータに入り込むと容易にルーティングが破綻する。ここで言う「URLパラメータ」とはRoute中に埋め込まれたパラメータ、namedパラメータ、passパラメータのことを指す。 例えば以下のようなRouteがあったとする。 /controller/action/:keyword ここでパラメータkeywordに特殊な文字を与えると… keyword => '%' URL: /controller/action/% 結果: URLとして不正な形式なので"400 Bad Request"になる keyword => '?foo' URL: /controller/action/?foo 結果: ?以降はQueryStringと見なされてルーティングから除外され、Routeにマッチしなく

  • Increment Behavior (Articles) | The Bakery, Everything CakePHP

    Increment Behavior is ideal for use when you want to increment a certain field by a delta increment such as adding votes, updating view counters, etc. First, the code for the Increment Behavior Class, save the following code to a file called increment.php to the app/model/behavior directory. Behavior Class:Download code <?php  /**  * Increment Behavior Class file  *   * @author Ketan Patel  * @li

  • HTMLをDBみたいに使えるスゴイライブラリ『htmlSql』を CakePHPで使う - h2ospace - builder by ZDNet Japan

    APIRSSなどを提供しているサイトは、情報を簡単に扱うことができますが、例えば Yahoo!の検索結果とか、mixiのニュースとか、あるサイトの一部を取り出したいことってよくあります。(とはいえ、著作権違反には注意 そんな時、PHPのライブラリである「htmlSql」を利用すると便利。このライブラリに、ファイルでもURLでも文字列でも、HTMLで作られたものなら何でも与えると、解析して取り出しやすくしてくれます。しかも、その取り出し方はSQL! 例えば、「id属性が’test’の p要素の内容を取り出したい」という場合には、次のようなSQLを使います。 SELECT text FROM p WHERE $id=="test" 超パワフル。ということで、これを CakePHPで利用するためのテクニック。 まずは、ダウンロードしたファイルの中から次のファイルを「app/vendors」フォ

  • 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にユーザー登録すれ