タグ

cakephpに関するtofu-kunのブックマーク (273)

  • イベントシステム - 2.x

    メンテナンス性の高いアプリケーションの創造は、科学でもあり芸術でもあります。 良く知られていることですが、高い品質のコードを保持するための鍵は、 オブジェクトが疎結合すると同時に、高い凝集度も合わせ持つということです。 結合が疎であるということが、あるクラスがいかに少ししか外部のオブジェクトに "束縛されて" おらず どの程度そのクラスがそれらの外部オブジェクトに依存しているかの指標となる一方で、 高い凝集度は、クラスの全てのメソッドおよびプロパティがそのクラス自身と強く関連を持ちつつ 他のオブジェクトがやるべき仕事をしようとはしないということを意味します。 凝集度が失われ、クラスの結合度が増加してしまわないように、依存関係をガチガチにコードすることなく システム内の別の箇所とクリーンにやりとりすることが必要な場面も確かにあります。 Observer パターンを使用すると、オブジェクトがイ

  • CakePHPでセッションハンドラにMemcacheを使おうとしたらハマった - yuhei.kagaya

    CakePHP2.4、php5.5でセッションハンドラにMemcacheを使おうとしたら、落ちました。 原因はsession.auto_startの指定 セッションの設定を1つずつ見ていったところ、わかりました。 session.auto_startはphp5.5.2と5.4.20からPHP_INI_PERDIRに変わったため、 プログラム側でini_set()できなくなり、CakePHPからセットしてはダメだったのが理由でした。 PHP: PHP 5 ChangeLog CakePHP 2.4.0 is ready :: The Bakery: Everything CakePHP core.php <?php Configure::write('Session', array( 'defaults' => 'cache', 'cookie' => 'SESSION_NAME', 'ti

    CakePHPでセッションハンドラにMemcacheを使おうとしたらハマった - yuhei.kagaya
  • CakePHPでジョブキューするプラグイン | yujilog

    CakePHP Advent Calendar 2012の16日目の記事として書きます。前日の15日目は@longkey1さんの「俺流CakePHPセットアップ方法」でした。私は最近良くCakePHPでジョブキューする機会がありますので、そのプラグインについて書きます。 複雑なアプリケーションを構築していくと、なが~く時間のかかる処理をばんばん実行したいときがありますが、その際に以下が課題となってきます。 ユーザーを画面で待たせたくない→バックグラウンドで処理したい CPUを専有する処理を同時に行いたくない でも複数のサーバーで分散させて処理したい これらはすべてジョブキューの仕組みを使えば解決できます。 ワーカーというジョブを処理するプロセスが、キューに溜まったジョブを入った順から(FIFO: First in, First out)処理してくれます。ワーカーのプロセスは複数のサーバーを

  • [PhpStorm]CakePHPのコード補完

    PhpStormでCakePHPのコード補完を効かせる方法です。 CakePHP2系の方法です。CakePHP1系の場合はこの記事の元ネタのHwarf Nugen: Configure PhpStorm to Auto-complete CakePHP Models, Views, and Controllersをご覧ください。 CakePHPコード補完のための準備 CakePHPのコード補完を効かせるためにはまず準備が必要です。 まず以下の2つの作業を行なってください。 ConsoleとTestsディレクトリをプロジェクトの対象からはずす プロジェクトの対象から外すディレクトリは以下の2つです。 /lib/Cake/Console /lib/Cake/Test 【手順】 Ctrl+Alt+Sで設定ダイアログを開く。 Project SettingsセクションのDeployment->Di

    [PhpStorm]CakePHPのコード補完
  • 第3回 週末ランサーズにてCakePHP3についての講演をしました | Engine Yard Blog JP

    クラウドソーシングサービスのランサーズさん主催の勉強会、第4弾 週末ランサーズにて、CakePHP3についての講演を行いました。まだ開発中のCakePHP3を実際に動かしてみたのは初めてでしたが、自分自身でも興味深い変化を見ることができました。 CakePHP3.0はPHP5.4以降とComposerが必須 PHP4対応を捨てたCakePHP2に引き続き、CakePHP3ではPHP5.3以前を廃止し、PHPの最新の構文を取り入れた形に大きく変わります。PSR-0/PSR-1に対応しnamespaceを使った形に全てのクラスが整理されています。また共通のメソッドの実装も基底クラスに持たせるのではなくtraitに移行するなどの合理的な変更が加えられています。例えばControllerクラスの冒頭部分は下記のようになっています。 namespace Cake\Controller; use Ca

    tofu-kun
    tofu-kun 2013/11/12
    かなり変わっている
  • ElastiCacheでRedisをサポートしたのでCakePHPから使ってみた - Qiita

    AWSのElastiCacheでRedisがサポートされたのでCakePHPから利用した時のメモ。 ElastiCacheでRedisは今のところ2.6.3だけみたいです。 ■環境 PHP5.5.1 CakrPHP2.3.8 Redis2.6.3(redis-cli用) まずはインストールから。redis-cliという便利なものを使うためにRedisをインストール ### Redis # cd /usr/local/src/ # wget http://redis.googlecode.com/files/redis-2.6.3.tar.gz # tar zxf redis-2.6.3.tar.gz # chown -R root.root redis-2.6.3 # cd redis-2.6.3 # make

    ElastiCacheでRedisをサポートしたのでCakePHPから使ってみた - Qiita
  • CakePHP新春勉強会東京でLivlisの事例をプレゼンしました。 - @camelmasaの開発日記

    LivlisではFWにCakePHPを使用しています。 その事がきっかけで、id:cakephperさんからプレゼンのお誘い頂いたのがきっかけでした。 有り難うございます。 とても刺激になりました。 株式会社kamadoではOSSを使用してシステムを構築している部分を、OSSへ最大限還元出来るよう勤めています。 これからも何かしらの方法で還元していきますので宜しくお願い致します。 Livlisの事例 slideshareにアップしました。 英単語のFontがおかしくて読みにくくて申し訳ない。 Livlisのcakephp事例View more presentations from camelmasa. 補足 プレゼン後id:cakephperさんに聞かれたのが、『マスターとスレーブの読み込みの振り分けは何処でやっているのか?』ですが、model/app_model.php内でfind,sa

    CakePHP新春勉強会東京でLivlisの事例をプレゼンしました。 - @camelmasaの開発日記
  • CakePHPのfind()で取得したデータが全てstring型になるのを、DBのカラムの型に合わせてint型で値を取得する方法(mysql) - cakephperの日記(CakePHP, MongoDB)

    CakePHP2からはPDOを使ってDBアクセスするようになりました。PDO(mysql)では、デフォルト設定でデータをfetchするとint型のカラムでもstring型として結果が返ってきます。CakePHPもこの影響を受けており、jsonデータなどに変換する際や、型を厳密に扱いたい場合に影響がます。(CakePHP1では、PDOを使っていませんがintカラムはstringで返ってきます) この問題を解決するには、PHP5.3以上の環境でPDOのPDO::ATTR_EMULATE_PREPARESをオフにすれば良いです。PDOがmysqlndドライバを利用することが前提なのですが、PHP5.4からはデフォルトでmysqlndドライバが利用されるので大丈夫です。今回はPHP5.4の環境で検証しました。 PHP5.3ではPDOがmysqlndドライバを利用するためにコンパイルオプションを指定

    CakePHPのfind()で取得したデータが全てstring型になるのを、DBのカラムの型に合わせてint型で値を取得する方法(mysql) - cakephperの日記(CakePHP, MongoDB)
  • CakePHPのアプリのコーディング規約チェックを自動で行う方法

    みなさんこんにちは。@ryuzeeです。 PHPで書かれたソースコードがコーディング規約に準拠しているかどうか確認するには、PHP_CodeSnifferというツールを使うのはよくご存知だと思いますが、今回はCakePHPを使って書いたソースコードの規約をチェックする方法を紹介します。 なお、このような規約チェックはローカル環境で気が向いた時にやるだけではなく、継続的インテグレーションにも組み込んで実施することが望まれます。 PHP_CodeSnifferのインストール特にチャンネルの追加は必要ありません。 インストールが完了すると、phpcsコマンドがインストールされます。 また標準では、Squiz, PEAR, Zend, MySource, PSR1, PSR2 , PHPCS の7個の規約がインストールされます。このうちMySourceは自分でのカスタマイズ用です。 CakePHP

    CakePHPのアプリのコーディング規約チェックを自動で行う方法
  • 狠狠色噜噜狠狠狠狠97,你懂的在线视频,亚洲AV制服丝袜日韩高清

    狠狠色噜噜狠狠狠狠97,你懂的在线视频,亚洲AV制服丝袜日韩高清,日免费三级片,久久综合给合久久国产免费,轻轻的挺进少妇的体内,美女销魂,av日韩av,日大乳高潮视频在线观看,亚洲一区高清

  • CakePHP 2.x系の更新時のSQL発行回数を減らしたい - ダメプログラマの技術メモ

    今年7月に入ってから業務でCakePHPを使用しており、外国人プログラマ達によって書かれたソースの改修とパフォーマンス・チューニングを行っています。 その際、DB更新処理でSQLの発行回数を減らす必要が生じたので、その対応方法を述べたいと思います(需要はあまりないかもなぁ) saveメソッドのSQL発行回数は多い? DBの更新処理にはsaveメソッドを使用することが多いと思いますが、実はこいつ、かなりの曲者です。 百聞は一見に如かずです。 まず下のメソッドを見てください。 public function addPoint($user_id, $point) { $user = $this->findById($user_id); $user['User']['point'] += $point; $this->save($user); } 実際に今の案件で散見されるsaveメソッドの使い方

    CakePHP 2.x系の更新時のSQL発行回数を減らしたい - ダメプログラマの技術メモ
    tofu-kun
    tofu-kun 2013/07/25
    まさに
  • DEBUG=0なのにDESCRIBEが頻発する

    CakePHPは、PHP言語の高速開発用フレームワークです。日々、発展を遂げる各種フレームワークの動向を見極めつつ、日発のCakePHP応援ブログとして、最新情報をお届けします。 うひゃ~久しぶりの更新だ。 今回、依頼されて調査したのは、「DEBUG=0に設定しているのに毎回DESCRIBEが発行されており、パフォーマンスに影響している」というものでした。 そんなこと起こるのかなぁと思ったら当に発生していました。 まず最初に調べたのは、内部のコードで、DEBUGの値を変えていないか、というチェック。 Grepで一気に調べましたが、ありませんでした。 うーん、なんでだろう、と/app/tmp/cache/models を調べたところ、ファイルが生成されていないことが判明。 CakePHPは、テーブル構造の情報を DEBUG>0にしていると毎回チェックしますが、DEBUG=0にすると、「テ

    DEBUG=0なのにDESCRIBEが頻発する
  • CakePHP2でAWS S3を操作するプラグインを作りました | Basicinc Enjoy Hacking!

    AmazonWebServicesのS3、とても便利ですよね。便利だし、安いし。パフォーマンスは…まぁそこそこ。 最近、AWSのS3を画像ファイルのホスト先として使う機会が多くて、Amazonから提供されているAWS SDK fro PHPを使ってガリガリコードを書いていたんだけど、初期設定が面倒になったのでCakePHPのプラグインとしてまとめました。SDK使っているので、コード量自体は最初からスリムなんだけどね。 ダウンロードはこちらから。 CakePHP2 AWS S3 DataSource 使い方は非常に簡単で、プラグインファイルを設置して、database.phpAWSのキーなどを設定して、適当なモデルから呼び出すだけです。これを使えばコントローラからファイル操作はもちろん、モデルの中からでも簡単に操作出来ます。 機能はファイルアップロード/削除/移動/コピーだけのシンプル構成

    CakePHP2でAWS S3を操作するプラグインを作りました | Basicinc Enjoy Hacking!
  • blog.katsuma.tv

    Cakeでキャッシュ周りの調査をしていたら、モデルのメソッドの実行結果をキャッシュさせるbehaviorがあるのを見つけました。 CakePHP1.2 Behaviorでモデルのメソッドキャッシュを行う これが相当いい感じなので、その利点や導入方法についてまとめておきたいと思います。 コントローラのスリム化 MVCモデルでキャッシュを利用しようという話になると、大抵Controllerでキャッシュヒットの有無を確認して、ヒットしない場合キャッシュをリセットする、というロジックがまず頭に浮かぶと思います。 if (($posts = Cache::read('posts')) === false) { $posts = $this->Post->find('all'); Cache::write('posts', $posts); } ただ、コントローラで毎回このようなキャッシュヒットを確認

  • CakePHPのプロジェクトをcapistranoでデプロイ | 江島@システム開発

    capistranoはRuby On Rails用に作られたデプロイツールで、 設定をすればPHPプロジェクトにも利用できる。 デプロイを自動化できるため、最初の設定さえしておけば後が楽。 ツールのインストールはデプロイをする端末だけにすれば良く、 各サーバーには特に何もする必要はなし。 複数サーバーに対して一気にデプロイすることもできるので 同じソースを複数のサービスに使っている場合などには便利。 準備 Rubyで作られているツールなので gemでインストール。 $ gem install -y capistrano プロジェクトごとに適用 $ cd {project_path} $ capify . これで {project_path}/Capistrano {Project_path}/config/deploy.rb が作成される。deploy.rbが設定ファイルなので これを自

  • CakePHPをCapistranoを使って楽々デプロイしよう!

    TrinityTです。 前回エントリではCakePHPの環境別設定についてお話ししましたが、この恩恵を受けるためCapistranoで自動デプロイを確立しました。 今回はこの方法について説明します。

  • CakePHP2アプリケーションをCapistranoでデプロイする

    アプリケーションのデプロイを自動化すべきなのは言うまでもないことです。 一応手動でデプロイを行う場合の問題点について整理しておくと以下になります。 プロジェクトの期間中そして運用に入ってからも何度も手でデプロイするということはとてつもなく多くの時間を手作業に費やすことになるデプロイ先の環境の数が多くなればなるほど作業の時間も増える手作業で作業すると間違えやすい。特に手順が複雑だったり環境が多かったりすると確率は飛躍的にあがるもしデプロイしたアプリケーションに問題があってすぐに戻さなければならない場合に多くの時間がかかる。場合によってはビジネス上の機会損失に繋がる来は価値を生むフィーチャーを実装することに時間をかけたいはずが、こういうことをやっているとどんどん時間がなくなっていきます。また手作業のリスクや消費される時間を恐れてデプロイの回数を減らしてしまうのは、ビジネス側からみると納得いか

    CakePHP2アプリケーションをCapistranoでデプロイする
  • CakePHPで様々なオブジェクトへのアクセスの仕方 | X->A->O

    はじめに CakePHPで何らかのオブジェクトを操作する場合、対象となるオブジェクトの種類やどこからアクセスするかによって方法が異なる場合があり、それ以前にそもそもインスタンス化されていないことを知らずにアクセスしようと無謀な挑戦を試みたりすることがあります・・・よね?自分の経験上、始めたばかりの時はここで躓くことが結構多く、今でも分からずに調べることが多いですし、あまり使っていないと同じ事を何度も調べたりもしてしまいます。このエントリは、あるオブジェクト「に」あるオブジェクト「から」アクセスする方法について調べたものの備忘録です。 初心者のかたはどうぞ「 初心者の方へ 」にまず目を通してください。 内容は適宜追加・修正される可能性があります。 すべてCakePHP2系の情報です。1系の情報が今後追加されることはありません。 可能な限り公式ドキュメントへのリンクを張っています。日語訳のあ

  • ComposerでインストールしたPHPUnitをCakePHP2のコンソールから利用する方法 - cakephperの日記(CakePHP, Laravel, PHP)

    今回は、ComposerでインストールしたPHPUnitをCakePHP2から利用する方法です。 Composerのインストール方法は昨日書きました。 「Composerを使ってPHPUnitをインストール」 さて、方法はいろいろとあると思いますが、今回はCake2が元々持っているTestShellクラスを継承して対応します。 まずは、下記の場所にファイルを作成します。 app/Console/Command/MyTestShell.php <?php /** * ComposerインストールしたPHPUnitをロード **/ require_once APP . DS . 'Vendor' . DS . 'PHPUnit' . DS . 'autoload.php'; /** * オプション項目 * Apache側で設定していた環境変数をshellで利用できるようにセット **/ //

    ComposerでインストールしたPHPUnitをCakePHP2のコンソールから利用する方法 - cakephperの日記(CakePHP, Laravel, PHP)
  • Searchプラグインを使ってCakePHPに検索を実装する | mawatari.jp

    PHP Advent Calendar 2012の4日目を担当します@mawatarinです。前日は@wa_teradaさんでした。内容は、CakePHPbootstrap.phpとcore.phpの翻訳です。しかも全訳!大変、有り難いですねー。 bootstrap.php と core.php を詳しく見てみる。(bootstrap.php編)bootstrap.php と core.php を詳しく見てみる。(core.php 編)さて、今日もCakePHPネタです。過去のAdventCalendarでも、取り上げられたことのあるネタですが、その辺は気にせずに、CakeDCのSearchプラグインを使って、CakePHP製のWebアプリに簡単に検索機能を実装する方法をまとめました。目的毎に章立てしておりますので、チュートリアルとして、使っていただけると思います。 都合上、ソースコード

    Searchプラグインを使ってCakePHPに検索を実装する | mawatari.jp