タグ

cakephpに関するji_kuのブックマーク (48)

  • CakePHP の書き方 | php-tips.com

    この記事は、CakePHP3 Advent Calendar 2016 25日目の記事ではありません。 まとめ Controller/Componentにビジネスロジックを書かない カスタムfindを活用しよう 1テーブル1モデルではなく、場面によってモデルクラスを増やそう Modelless Form / Tableless Modelを活用しよう beforeSave/afterSaveは諸刃の刃 Behaviorにビジネスロジック書くのもあり View層ではView Cell/View Blockを活用しよう CRUDプラグインお勧め この記事を書いた動機 CakePHPにおいてビジネスロジックに該当するものをComponentに書くという記事を見かけるたびに、それはアンチパターンじゃないのと感じている日々。 ビジネスロジックをどこに書くべきか、共通処理をどこに書くべきかというのを、

    CakePHP の書き方 | php-tips.com
  • ScaleOut | Supership

    2024年4月1日より、Supership株式会社は親会社であるSupershipホールディングス株式会社に吸収合併されました。 合併に伴い、存続会社であるSupershipホールディングスは社名をSupershipに変更し、新たな経営体制を発足しました。件に関する詳細は、プレスリリースをご確認ください。 2024年4月1日より、Supership株式会社は親会社であるSupershipホールディングス株式会社に吸収合併されました。 合併に伴い、存続会社であるSupershipホールディングスは社名をSupershipに変更し、新たな経営体制を発足しました。 件に関する詳細は、プレスリリースをご確認ください。

    ScaleOut | Supership
  • CakePHP1.2 Authコンポーネントを使った認証機能 | バシャログ。

    春はまだこないのでしょうか?ichikawaです。 日はCakePHPで簡単に認証機能を実現する、「Authコンポーネント」について軽くご紹介いたします。 Authコンポーネントを使用するための準備 とりあえずAuthコンポーネントを使う準備をしましょう。 class HogeController extends AppController { var $components = array('Auth'); 全てのコントローラで認証コンポーネントを利用するのなら、 AppController に追加でもいいですね。 そして、認証に使うテーブルを用意します。 デフォルトの認証に使われるテーブルとカラム、そしてその変更方法 デフォルトでは、認証のために「username」と「password」というフィールドを持つ「users」テーブルを使おうとします。 それを変更したい時は以下のようにし

    CakePHP1.2 Authコンポーネントを使った認証機能 | バシャログ。
  • set::combineはなかなか便利だ - UNIX的なアレ

    CakePHPで、findした結果をidをキーにして配列にしなおすという作業は割とやる作業かと思います。普通にループさせて組むと以下のような感じでしょうか。テーブルは下記のような感じで。 +-------+--------------+------+-----+---------+----------------+ | Field | Type | Null | Key | Default | Extra | +-------+--------------+------+-----+---------+----------------+ | id | int(11) | NO | PRI | NULL | auto_increment | | data | varchar(255) | NO | | NULL | | +-------+--------------+------+-----

    set::combineはなかなか便利だ - UNIX的なアレ
  • CakePHP開発者が知るべき10のこと

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

  • CakePHP - CSVダウンロード(エクスポート)機能を実装する『CSV Helper』 まとめ - たきゃはしです

    CakePHP2対応したのCSVヘルパーはこちらです。 FastCSV ヘッダだとか文字化けで取っつき難いCSV関連 最初に言っておきます、CSV Helperはとても易しく使いやすいです。 →CSV Helper (PHP 5) ザッとマニュアルを見てから思い通りの実装・出力まで30分程度でした。 それでは、さっそく使い方を説明します。 1.まず、「app/views/helpers/」に「csv.php」を作成して 以下のソースをそのままコピペしてください。 <?php class CsvHelper extends AppHelper { var $delimiter = ','; var $enclosure = '"'; var $filename = 'Export.csv'; var $line = array(); var $buffer; function CsvHelp

    CakePHP - CSVダウンロード(エクスポート)機能を実装する『CSV Helper』 まとめ - たきゃはしです
  • CakePHP の findAll で効率良く recursive - d.hetima

    CakePHP 1.1.13.4450 + PHP 5系 + MySQL 4.1系にてテスト Job モデルは com_id フィールドがあって Com モデルに belongsTo Job を一覧表示するときに Com の name フィールドも表示したい Job.idJob.nameJob.com_id 1仕事A1 2きつい仕事2 3楽な仕事1 Com.idCom.name 1会社A 2会社B というデータから、 Job.idJob.nameCom.name 1仕事A会社A 2きつい仕事会社B 3楽な仕事会社A こんな感じの一覧を表示したいわけです。どうするのが効率が良いか。まず、Job モデルのアソシエーションを以下のように設定。 <?php class Job extends AppModel { var $name = 'Job'; var $belongsTo = array(

  • むしの手記。 » Cakephpで普通にINNER JOINする

    タイトルが微妙すぎて困る! CakePHPのアソシエーションを使うと、基LEFTでテーブルをJOINしてfindなどされると思います。 これをINNER JOINにしたい!といっても、hasOneとbelongsToでtype=>”INNER”を指定すればINNER JOINできるのは周知の事実でございますが、hasManyでできねーのかよ!って思って触ってたら案の定できたのでメモ。 まぁSum limitedさんところで書いてある方法にほとんど近いのですが、beforeFindに書くと別のfindでも使ってしまうし、うーんと思ってたんだけど、findAllじゃなくてfindを使えば大丈夫そうなんですよ。 テーブル mysql> desc users; +----------+------------------+------+-----+---------+-------------

  • [ステップアップ! CakePHP] Shell を使ってコマンドラインで CakePHP | バシャログ。

    こんにちは、inoueです。いよいよサッカーW杯!それ以上に水曜夜の「イナズマイレブン」と日曜朝の「GIANT KILLING」に私は夢中です。 さて、CakePHP 連載の8回目はコマンドラインでCakePHPを活用する方法の紹介です。 以前のエントリー「【CakePHP】ShellとTaskで作る簡単コンソールアプリ」では、 対話式アプリケーションの作り方についてお話しました。 今回はcronを使った定時実行で役立つ CakePHP Shellの使い方をお話したいと思います。 Shell の一番のポイントは、webアクセスと同じ設定を利用できる点です。 通常のPHPのコマンドラインスクリプトですと、includeするファイルなどを別途指定したりなどに手間がかかります。 CakePHPならば、appディレクトリのパスを指定するので、そのappの設定をコマンドライン上でも利用できます。 実

    [ステップアップ! CakePHP] Shell を使ってコマンドラインで CakePHP | バシャログ。
  • [ステップアップ! CakePHP] キャッシュに memcached を使う | バシャログ。

    早くも蚊に刺されました nakamura です。きっとおいしそうなんでしょうねぇ。分かる分かる。 今日は CakePHP 連載の 7 回目!CakePHP のキャッシュをファイルではなく memcached に保存する方法を紹介します。 memcached って? データやオブジェクトをメモリ上に保持する為のキャッシュサーバです。ファイルにキャッシュするよりも高速に動作し、PHP, Java, Perl 等を始めとするプログラミング言語や MySQL, PostgreSQL といった RDBMS など memcached を利用可能なクライアントアプリケーションはとても多岐に渡ります。 この辺りが詳しく解説してくれています。 memcached - Wikipedia 特集:memcachedを知り尽くす|gihyo.jp … 技術評論社 memcached をインストールする 今回は C

    [ステップアップ! CakePHP] キャッシュに memcached を使う | バシャログ。
  • 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からGoogle Analytics APIを使う方法 - UNIX的なアレ

    nanapiのシステムで一部使う必要があったので、ちょっとチャレンジしてみました。 Google Analytics APIってちょっと面倒そうなイメージがあったので今まで敬遠していたのですが、まぁそうも言っていられなかったわけです。日語ドキュメントがあると嬉しかったのですが、あんまり良質なのがないので家を頑張って読み解きました。 ライブラリを利用する まぁいくつかライブラリはあるわけですが、PHPは公式のライブラリが用意されていません。 ただ、公式のヘルプに紹介してあるものがあったのでこちらを利用しました。画面下部にある、PHP5 OOP Interfaceというやつです。 http://code.google.com/intl/ja/apis/analytics/docs/gdata/gdataLibraries.html 使う前に取得しておくべきもの Google Analyti

    CakePHPからGoogle Analytics APIを使う方法 - UNIX的なアレ
  • CakePHPからJSONをつかうモデルをつくった - UNIX的なアレ

    JSONでシリアライズされているAPIをたたくようなモデルを作ってみました。ローカルに配置しているJSONのファイルにも対応しています。 キャッシュをさせるような仕組みになっているので、多数叩くような場合にも効果的です。 modelの下に、json.phpというファイル名で保存してください。 app/models/json.php <?php class Json extends AppModel { var $name = 'Json'; var $useTable = false ; /* * jsonデータの取得 * @param string JSONファイルへのパス * @param boolean キャシュさせるか * @return mixed */ function find( $path , $cache = false ){ if ( !substr_count( $p

    CakePHPからJSONをつかうモデルをつくった - UNIX的なアレ
  • cakephp1.2 or 1.3でmodel/componentなどを共有する方法 - UNIX的なアレ

    cakephpで複数のプロジェクトを作成したとき、お互いにmodelやcomponentを共有したいときは稀にありますよね。たとえば、nanapiの場合ですとPC版モバイル版もあったりします。 そんな時、プロジェクトは別にするけど一部共有したいmodelがでてきます。最初はmodelをコピーしてつかっていたのですが、複数管理が非常に面倒だったため共有する方法を調べてみました。 cakephp1.2の場合 共有の方法は、1.2と1.3で変更されています。まずは1.2の方法を紹介します。 app/config/bootstrap.php <?php $modelPaths = array( '/path/to/project_1/app/models/', '/path/to/project_2/app/models/', ); $componentPaths = array( '/path/

    cakephp1.2 or 1.3でmodel/componentなどを共有する方法 - UNIX的なアレ
  • 初心者のためのCakePHP 1.3 プログラミング入門 - libro

    ※ページが正常に表示されない場合 AddBlockなどの広告ブロックツールがONになっていると、ページの一部が表示されないことがあります。これらのツールをOFFにしてみてください。 PHPビギナーのための、CakePHP 1.3 フレームワークの入門ドキュメントです。「PHPの基は一通りわかる」というレベルの人を対象に、短時間で、すぐにWebアプリケーションが作れるようになることを考え、ポイントを絞って説明をしていきます。 ※CakePHP 2.0の入門は、こちらへどうぞ。 ※PHPがよくわからない、という方は、こちらのPHP入門をどうぞ。

  • deleteAllはデフォルトでafterDeleteが実行されないよ - UNIX的なアレ

    http://www.exgear.jp/blog/2008/11/cakephp12-behavior%E3%81%A7%E3%83%A2%E3%83%87%E3%83%AB%E3%81%AE%E3%83%A1%E3%82%BD%E3%83%83%E3%83%89%E3%82%AD%E3%83%A3%E3%83%83%E3%82%B7%E3%83%A5%E3%82%92%E8%A1%8C%E3%81%86/ こちらで紹介されている、behaviorでのモデルキャッシュがなかなか便利なのでよく使っております。ソースを読むとわかりますが、afterSave,afterDeleteでちゃんとキャッシュを削除してくれているのも便利なポイントです。 しかし、deleteAllではcallback関数のafterDeleteが実行されないという現象に遭遇しました。というわけでコードリーディング。 さ

    deleteAllはデフォルトでafterDeleteが実行されないよ - UNIX的なアレ
  • 続:CakePHP1.2 Authコンポーネントを使った認証機能 | バシャログ。

    こんにちは、最近引越しを考えている ichikawaです。 今回は、前回の「CakePHP1.2 Authコンポーネントを使った認証機能」の続きを書きたいと思います。 未ログイン状態で見られるページを設定する 新規登録ページや、パスワード再設定のページなど、ログインしていない状態でも表示したい場合には設定が必要です。 例えば、新規登録がregisterアクション、パスワード再設定がforgot_passwordアクションの場合は、コントローラーに以下のように設定します。 $this->Auth->allow('register', 'forgot_password'); 以上で、設定したページはログインしていない状態でも見られるようになります。 Authコンポーネントのハッシュ化の方法を独自に設定する Authコンポーネントは、デフォルトではコアユーティリティクラス Security

    続:CakePHP1.2 Authコンポーネントを使った認証機能 | バシャログ。
  • $this->set(compact('foo')); するときの注意 - UNIX的なアレ

    過去にハマってことを思い出したので、メモ。 CakePHPで、ControllerからViewへ値を渡すときはsetメソッドを使います。 複数の値を渡すときは、なんどもsetするのはコードの見通しも悪くなるのでcompactを使って一気にセットしたりします。サンプルは以下のような感じで。 <?php class AppController extends Controller { 〜 省略 〜 $this->set(compact('foo','bar')); 上記の例ならとくに問題無いのですが、値に_(アンダースコア)が入った場合が要注意です。Viewで受け取るときはそのまま受け取れません。 app_controller.php <?php class AppController extends Controller { 〜 省略 〜 $this->set(compact('foo_ba

    $this->set(compact('foo')); するときの注意 - UNIX的なアレ
  • CakePHP1.2のErrorHandlerでハマった - UNIX的なアレ

    いままでは404のエラーくらいでしか使っていなかったのですが、ErrorHandlerに独自メソッドを追加してみたんです。でも、debugレベルが0になるとなんだか動かないんですよね。 んでもって、コードを読んでみましたよ。するとまぁコンストラクタの中に以下のような記述を見つけました。 cake/libs/error.php <?php function __construct($method, $messages) { 〜 中略 〜 if ($method !== 'error') { if (Configure::read() == 0) { $method = 'error404'; if (isset($code) && $code == 500) $method = 'error500'; } } } } なるほどー、これですねぇ。というわけで、オーバーライドしてapp_erro

    CakePHP1.2のErrorHandlerでハマった - UNIX的なアレ
  • [CakePHP] ファイルアップロード時のバリデーション | バシャログ。

    こんにちは、ichikawaです。 日は、ファイルのアップロードする時のバリデーションについてご紹介いたします。 CakePHPの組み込みバリデーションには、拡張子をチェックしてくれるものがあります。 組み込みのバリデーションルール(Validation Rules) : extension 他にも、PHPの関数 is_uploaded_file などを使って実際にアップロードされたものかのチェックするべリデーションも紹介されています。 7.3.4.1 アップロードをバリデートする CakePHP - Uploaded File Validation in Models 何かのお役に立てれば幸いです。

    [CakePHP] ファイルアップロード時のバリデーション | バシャログ。