タグ

Developmentとcakephpに関するkathewのブックマーク (395)

  • CakePHP2系でエラーページ用の処理をやってみる | 株式会社LIG(リグ)|DX支援・システム開発・Web制作

    こんにちは、づやです。 実家のありとあらゆるところから野生のハチが出撃しています。まさにハチ要塞。 さて、前回の記事(CakePHP2系で404エラー画面を作る)で例外を投げたのですが、エラーページ表示の時に色々処理したいことがあったので、対応してみました。 もっといい方法があるかもしれませんが、とりあえず忘備録として。 1.エラーの時に独自のクラスを呼ぶようにする まず、/app/Lib/配下に独自のハンドルクラスを作成します。 とりあえずCustomExceptionRendererクラスで行くことにしまして、まずはConfig/core.phpの73行目付近を、CustomExceptionRendererを使用するように書き換えます。 Configure::write('Exception', array( 'handler' => 'ErrorHandler::handleExc

    CakePHP2系でエラーページ用の処理をやってみる | 株式会社LIG(リグ)|DX支援・システム開発・Web制作
    kathew
    kathew 2017/06/09
    extends句が抜けてる?
  • CakePHPのテストで各種assertを試してみる - yk5656 diary (旧)

    CakePHPでテストを試してみる の続き CakePHPのテストで各種assertを試してみる。 CakePHPのテストはPHPUnitを使ってるので、PHPUnitのメソッドがそのまま使えるみたい。 PHPUnit Manual http://phpunit.de/manual/3.7/ja/index.html よく使いそうなassertを試してみる。 app/Test/Case/SampleTest.php を下記のように編集する。 <?php class SampleTest extends CakeTestCase { /* * 基的なassert */ public function testAssertNormal() { // 値が等しいか $this->assertEquals(100, 100); // 値が異なるか $this->assertNotEquals(1

    CakePHPのテストで各種assertを試してみる - yk5656 diary (旧)
  • CakePHPのモデルのuseTableにMySQLの一時テーブルをあてがった場… | カラスさんのなう

    kathew
    kathew 2017/06/06
    同じ問題に当たって、どこの処理を騙せば弊害少なく解決できるのか苦しんでた。なるほど。setSource()を騙しちゃえば良いのね
  • cakephpでテンポラリテーブルの作成と使用方法 - OKWAVE

    お世話になります。ご助力頂ければ幸いで御座います。 ---------------------------- PHP Version 5.6.14 cakephp 2.5系 mariadb-10.0.21-with-mroonga-5.08-winx64 ---------------------------- cakephpで以下の事がやりたいです。 (1)select文を使用してデータの抽出 (2)(1)を利用してテンポラリテーブルを作成。 (3)web上で検索結果を表示。 ※ページングを行いたのでcakePHPでページネーションを使用したいです。 (4)次ページやソート変更の際にはテンポラリテーブルからselect。 cakephpでテンポラリテーブルを作成、使用する場合のやり方がわからず、 頓挫しております。 お手数をお掛け致しますが、 何かご指摘点でも構いませんので、ご回答頂けれ

    cakephpでテンポラリテーブルの作成と使用方法 - OKWAVE
    kathew
    kathew 2017/06/06
    モデルのコンストラクタでCREATE TEMPORARY TABLE すればいけるんでないかしら(未確認) / new でモデルを生成すると二回目でコケるはずだから、ClassRegistry::init()なりでインスタンスを使いまわす必要あり?
  • CakePHP2でラジオボタン縦並び - Qiita

    Deleted articles cannot be recovered. Draft of this article would be also deleted. Are you sure you want to delete this article?

    CakePHP2でラジオボタン縦並び - Qiita
  • Js/Cssファイルの読み込みや出力する方法

    CakePHPHTMLヘルパーにはjsファイルやcssファイルを読み込むためのメソッドが用意されています。ファイルを読み込むのに加えて、出力先を複数指定できるようになっています。 また、インラインに出力する関数も用意されており、動的に出力する際にも便利なようにつくられているようです。 javascriptファイルの読み込み javascriptファイルの読み込みを行うには以下のようにHtmlヘルパーのscriptにパスを指定します。 echo $this->Html->script( 'jsファイル(パス)'); // パスに//が含まれている場合は、CDNから取得される。 echo $this->Html->script( '//ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js'); // App.jsBaseUrl(J

    Js/Cssファイルの読み込みや出力する方法
  • CakePHPでもテスト ~手を抜くためにする遠回り~

    CakePHPでもテスト!テスト!テスト! テストドリブンと行きたいところですが、既にコード書いちゃった~。なんて興が乗っちゃって気づいたらかなり書き進んでしまったという事はプログラマあるあるだと思いますが、今から一からテストケース書くのって途方に暮れる事になりますよね。 CakePHP2系はPHPUnitを利用しているようなので、phpunit-skelgenが使えそうですが、extends周りのしがらみで、思ったように動いてくれません。一からコードを書くことなんてありえないCakePHPでは、AppControllerクラスを継承していて当たり前、AppModelクラスを継承していて当たり前。 そもそも、CakePHPのフレームワークにはPHPunitが組み込まれていて、ちゃんと上の問題を解消した独自のテストケースクラスが用意されていますので、それを使います。 じゃあphpunit-s

  • [CakePHP2]いろいろな場所でviewのレンダリング結果を取得したい | CodeLab技術ブログ

    Shellでのメール送信やajax通信などでHTMLを渡す場合などでレンダリング結果を使いたい場合、viewを使うと便利です。 こんな感じでレンダリング結果が取得できます。 $_view = new View(); $_view->viewPath = 'Emails'; //コントローラー部の名前に相当 $_view->viewVars = array('hoge'=>$hoge); //$this->set()に相当 $mailbody = $_view->render('text/hoge',"",null); //今回はメールの例なので Emails/text/hoge.ctp がレイアウト ですが、なぜかループでrender()メソッドを複数回呼ぶと2回目以降レンダリング結果がNULLになってしまいました。 深く追跡していないですが、通常はレンダリングは1回しか呼ばれないので複数

    [CakePHP2]いろいろな場所でviewのレンダリング結果を取得したい | CodeLab技術ブログ
  • CakePHP 2.x – ComposerでDebugKitをインストール – SOAR CODE

    前回はファイルをダウンロードしてDebugKitをインストールする方法を紹介しましたが、今回はComposerを使用してDebugKitをインストール方法をご紹介したいと思います。 前回の記事はこちら。 CakePHP 2.x – DebugKitの導入方法 前提条件Composerがインストールされていることが前提条件です。 Composerのインストール方法、基的な使い方は下記の記事をご覧ください。 今更なComposerの基的な使い方 そのままインストールすると…CakePHPのサイトからzipファイルをダウンロードして展開すると、composer.jsonが含まれています。 composer.jsonにはDebugKitが既に含まれているので、composer installをするとDebugKitがインストールされますが、現在のフォルダ構成上、vendorディレクトリを、pl

    CakePHP 2.x – ComposerでDebugKitをインストール – SOAR CODE
  • CakePHP2.1 認証(Auth)コンポーネントのdenyが効かないんでない? | 14時の間食

    全てのアクションを許可するよ。ただしmypage、テメーはダメだ。 という設定をしようとして意外にもハマったのでメモ。 //全てのアクションを許可 $this->Auth->allow('*'); //mypageだけはログインしないとだめ $this->Auth->deny('mypage'); 1.3系ならこう書きたくなるところですが、2.X系では、全てのアクションを指定する時、カッコの中のアスタリスクが要らないようです。 '*'←このちっこいアスホールみたいなアスタリスク不要。犯人はアス こっちが正解 //全てのアクションを許可 $this->Auth->allow();//+ //mypageだけはログインしないとだめ $this->Auth->deny('mypage'); ちなみに先のコードでもallow()は正常に動作はします。deny()だけ機能しません。 なので、てっきり

    kathew
    kathew 2017/04/18
    上の記述で全アクション許可ができなかった。仕様変わったかな?
  • CakePHP 2.x で webroot の URL を取得する方法 | アプリ徹底紹介

    この記事を読むのに必要な時間は約 5 分です。 CakePHP で、URL を扱う際に、CakePHP の Webroot の URL を取得したい場合があります。 例えば、アップロードされた画像を表示するために、img タグを出力する場合などがあります。 いくつか方法がありますので、ご紹介したいと思います。 [pn-box color=”lgray”] CakePHP 関連記事は、以下よりご覧下さい。 → tag : CakePHP [pn-box-close] 以下のいずれの方法でも可能です。 <?php echo $this->webroot ; // Controller でも View でも利用可能 echo $this->request->webroot ; // Controller でも View でも利用可能 echo $this->Html->url( "/" ); e

    CakePHP 2.x で webroot の URL を取得する方法 | アプリ徹底紹介
  • [CakePHP2]ラジオボタンの選択肢を個別に出力する。|CakePHP|mani-lab|mani-lab

    CakePHP2.4(というかbaserCMS3)を触っていて、JQueryMobile(1.4.0)に用意されているフォームのUIを使おうと思った時に、ちょっと戸惑ったのでメモを残しておきます。 通常、フォームヘルパーを使ってradioボタンを出力する場合、ヘルパーの引数に選択肢をオプション(配列)として渡し、生成させていましたが、これだとJQueryMobileの仕様上の問題か、選択肢が上手くグループ化されませんでした。(横一列に並ばない) そこで、参考記事(少し古くてCakePHP1.3の情報)を参考に、CakePHP2.4でもラジオボタンを選択肢毎に個別出力する方法を利用しました。(参考記事では第2引数にnullを与え、第3引数に配列を与えていますが、このままだとCakePHP2.4でエラーが出ます。とりあえず現行バージョンでは、参考記事中に書かれている第2引数が無くなり、第3引数

    [CakePHP2]ラジオボタンの選択肢を個別に出力する。|CakePHP|mani-lab|mani-lab
  • CakePHP2 の FormHelper::label 関数の使い方を学びます!

    CakePHP の View 内のフォルダ名が規約違反でも通ってしまう問題を解決しました! | oki2a24 の次の投稿になります。 CakePHP Form ヘルパーによるフォーム生成を勉強します♪ | oki2a24 での課題、「$this->Form->label(name 属性で指定される名前) で「name 属性で指定される名前」を設定すると、画面に表示される文言も「name 属性で指定される名前」となってしまい、全角でラベルが表現できません。困りました!」を解決しました!やったね!です♪ ポイント ラベルタグ生成 $this->Form->label(name 属性で指定される名前, ラベル名) 前提 CakePHP 2.1.3 導入済み。 ドキュメントルート/cake/sample/(ここにCakePHP が入ってます。app ディレクトリとか、.travis.yml ファ

    CakePHP2 の FormHelper::label 関数の使い方を学びます!
  • euonymus.info

    This domain may be for sale!

    euonymus.info
    kathew
    kathew 2017/03/27
    コントローラからならClassRegistry::init()よりもこっちの方が好き。ユニットテストで呼び出しをモック化しやすいから
  • PaginatorHelper - 2.x

    PaginatorHelper¶ class PaginatorHelper(View $view, array $settings = array())¶ ページ制御ヘルパーは、ページ番号や次ページへ/前ページへのリンクといった、 ページ制御関連の出力を行なうもので、PaginatorComponent と組合せて使います。 ページ制御を組み込んだデータセットの作成や、ページ制御関連のクエリーについての詳細は ページ制御 を参照してください。 ソートリンクの作成¶ PaginatorHelper::sort($key, $title = null, $options = array())¶ パラメータ: $key (string) -- ソートしたいレコードセットのキーの名前。 $title (string) -- リンクのタイトル。$title が null の場合は $key の語尾

  • CakePHP 動的なバリデーションの変更 | hijiriworld Web

    バリデーションの必須項目の動的変更 バリデーションルールの動的な変更 バリデーションの必須項目の動的変更 モデルで定義したバリデーションルールを、コントローラから動的に、必須項目の設定(‘required’=>true)を追加、削除できるコードが紹介されています。フィールド単位で、必須項目を削除(remove)、または、残す(keep)ことができるようです。 Simple Way to Unbind Validation & Set Remaining Rules to Required 「英語を読むのがつらい…」という方の為に、簡単に使い方を説明します。 1-1. app_model.php を作成 app/modeles フォルダ内に、app_model.php ファイルを作成して、以下のコードをコピペします。 <?php class AppModel extends Model {

    kathew
    kathew 2017/02/09
    標準でそういった関数が用意されてはいないみたい。publicメンバだから自由に書き換えて、という事か
  • Hash - 2.x

    配列マネジメントはとても強力かつ便利なツールであり、適切に使いさえすれば、 よりスマートでより最適化されたコードを書くことができるようになるものです。 CakePHP ではとても便利なユーティリティ群を Hash クラスの中に static で用意しており、まさにこれをするのに使えます。 CakePHP の Hash クラスは Inflector クラスと同様で、どのモデルや コントローラからでも呼ぶことができます。 例: Hash::combine()。 Hash パス構文¶ 下記のパス構文は Hash が持つすべてのメソッドで使われるものです。 ただし、すべてのパス構文が、すべてのメソッドで使用可能であるとは限りません。 パスの式はいくつものトークンで構成されます。トークンは、配列データの移動に使う『式』と、 要素を絞り込む『マッチャー』の2つのグループに大きく分けられます。 マッチャ

    kathew
    kathew 2017/02/06
    よく使う get や extract、combine、insert や remove の他にも便利そうな関数が沢山ある / 大きなデータを渡すと処理にものすごく時間がかかったりするので、小さなデータを扱う時向け
  • [CakePHP] コントローラのテストの書き方の基礎 – 端くれプログラマの備忘録

    モデルやコンポーネントに対して、コントローラのテストを書くのは大変だ。 モデルやコンポーネントはインプットとアウトプットがはっきりしている。故に直感的にテストケースを思い浮かべることができる。これに対して、コントローラは「何を以ってアクションが成功したと見なすか?」が多岐に渡るため、ぶっちゃけ、テストケースの立案が面倒臭いのである。 クックブックやブログなどを参考に、テスト初心者の自分が理解しておくべき点を整理しておきたい。 まずはクックブックに目を通す テスト — CakePHP Cookbook 2.x ドキュメント http://book.cakephp.org/2.0/ja/development/testing.html#id23 ヘルパーやモデル、コンポーネントも同様に、CakePHPは ControllerTestCase という コントローラーのテストに特化したクラスを提供

    kathew
    kathew 2017/01/23
    適切にテストケースが書けるようなコントローラを作るように心がけたい
  • CakePHP2でView/Elements以下にディレクトリを追加し、共通ページを管理する方法 - Wataame Frog

    CakePHP2ではヘッダやフッタなどサイト共通のパーツは View の Elements(app/View/Elements/)以下で管理できますが、実は Elements 以下にディレクトリを作成し共通ファイルを管理することも可能です。 Elementsの使い方 ヘッダやフッタなどの例 ヘッダー(header.ctp)を共通化する場合、app/View/Elements/ 以下に header.ctp を作成し、以下のように Viewファイルに記述します。

    CakePHP2でView/Elements以下にディレクトリを追加し、共通ページを管理する方法 - Wataame Frog
  • CakePHPでURLを自由に設定する方法(routes.php) | バシャログ。

    暑いですね、ichikawaです。 今回は、PHPのフレームワークCakePHPを使った際に自由にURLを設定する方法をご紹介いたします。 CakePHPにおける基的なURL CakePHPの基的なURLの構造は、以下のような形です。 http://○○/実行するコントローラー名/実行するアクション名/ でも、これを変更したい時もありますよね。そんな時に活躍するのはこちら! デフォルトだとapp/config/以下にあります。 この「routes.php」を変更することによって、CakePHPで自由にURLを設定することができます。 では実際にやってみましょう! 「http://○○/bashloger」でblogコントローラーのmemberメソッドにアクセスしたい そのような時は以下の様に書きます。 Router::connect('/bashloger', array('contr

    CakePHPでURLを自由に設定する方法(routes.php) | バシャログ。