読者です 読者をやめる 読者になる 読者になる

FizzBuzz問題のテストをPHP-Unitで書いてみる

今まであまりテストを書いたことがなかったので簡単な問題のテストを書いてみた。内容は、以前話題になったFizzBuzz問題。フレームワークはCakePHP2系。 ref. どうしてプログラマに・・・プログラムが書けないのか? やってみてわかったけど、この問題だと骨…

CakePHPでSSLの要不要によってページを切り替える

SSLを状況によって切り替えるコンポーネントを探した 欲しい機能 SSLの切り替えは以下の2パターンがあるので、対応できるもの ・SSLが必要なページにSSL無しでアクセスした場合は転送 ・SSLが不要なページにSSL有りでアクセスした場合は転送 SSLの有無により…

CakePHPでURLの最後がスラッシュで終わらなかった時のエラーを対応する

普通に作成した場合、URLがコントローラ名で終わるときに「"~Controller could not be found"」というエラーがでたので、以下のページの記述に従って対応する CakePHP / mod_rewriteでスラッシュ補完|とんでもブログ ~ プログラマのWeb開発メモ (PHP, CS…

CakePHPでCSSを呼び出すときに印刷用などのMediaタイプを指定する方法

オプションは第3引数 $html->css( array('/css/filename'), 'stylesheet', array('media' => 'print') ); Set media=print Using The CakePHP CSS HtmlHelper | michaelkrol.com

RSSヘルパーでRSSを生成する際にNameSpaceを追加する

通常通りRSSヘルパーでRSSを生成する際に名前空間を指定する RSS用のLayoutを修正する $ cat /app/views/layout/rss/default.ctp header(); if (!isset($channel)) { $channel = array(); } if (!isset($channel['title'])) { $channel['title'] = $title_fo…

CakePHPでSqlite3を使う

標準のPHP5で対応しているSqliteのバージョンは2のため、単純にdatabases.incにsqliteと書くとバージョン2で使われる。 バージョン3は、PDOを使ってアクセスするのだけど、標準のCakePHPでは読み込めないので、調べてみた。 以下を参考に ・CakePHP1.3.2でSQ…

コントローラー内でXMLを整形して表示する

Xml::Serializerがヘルパーなので、App::importで呼び出した後に使用する |php| // コントローラーの中だと思いねぇ function hoge() { $data = $this->Sample->find("all"); $this->_toXml($data, "samples"); } function _toXml($data, $root_element="roo…

未定義かもしれない変数を空文字列にエスケープする

環境によって、未定義の変数を使用した際にnoticeが発生するのが面倒くさい。 一々ifで判定するのも面倒くさい。未定義だったら空文字列扱いして欲しい時にhtmlspecialcharsを使用する htmlspecialchars http://php.net/manual/ja/function.htmlspecialchar…

RSSを生成する

CakePHPでお手軽にやりたいなら1が良いのではないかと PEAR、XML::SerializerはRSSをベースに色々追加する必要がある時などに CakePHPで実装する 普通にActionを経由して取得した情報をRSSに変換できる ※ 要は自動的にヘルパーを読んでテンプレートを切り替…

Model

|php| 'LEFT', "alias" => 'ModelName', "table" => 'TableName', "conditions" => "Bash.id = ModelNamh.base_id", ); $this->Model->find("all", $args); ||

plugins/vendor以下のライブラリを呼ぶためにパスを通す

pluginsのControllerに以下を追加する ini_set('include_path', dirname(dirname(__FILE__)) . "/vendors" . PATH_SEPARATOR . ini_get('include_path'));

多次元配列をソートする

|php| ||< http://book.cakephp.org/ja/view/1490/sort

モデルのインスタンスを動的に作成する

普通に使う $model = "ModelName"; $instanceOfModel = ClassRegistry::init($model); 細かい指定を追加する $instanceOfModel = ClassRegistry::init(array('class'=>'ClassName', "alias" => "AliasName", 'table'=>'TableName')); メソッドチェーンを使っ…

データベースに接続する際の文字コードの指定

databases.phpの設定に "encoding" を追加する

CakePHPで特定のIPからのアクセス時のみデバッグ出力をオンにする

if( $_SERVER["REMOTE_ADDR"] == "<IPアドレス>" ) { Configure::write('debug', 2); }</ipアドレス>