zz log

zaininnari Blog

php

view キャッシュはファイルのみ

CakePHP 1.3.2 以下を読んで。(twitter記法も試してみる) @hiromi2424: @ecworks_masap ビューキャッシュに関しては、確かに頭の痛い問題なんだよねー。いつか手をつけるつもりー:) とキャプテンマークが言ってました。(IRCでビューキャッシュをファイル以…

cakephp model::saveAll を使って、新規作成時に別モデルに初期値を作る

Project hasMany State なモデルにて、 新規に ProjectsController::add をした時、State の初期値を持たせたい。 model::saveAll を使う バリデーションとトランザクションを同時に行うことが出来ます。 State を保存する際、「project_id」が必要になりま…

CakePHP2 での testAction

CakePHP1.3 コントローラーのテスト(testAction なし バージョン) http://d.hatena.ne.jp/zainin/20100615/1276696300 の続きを書こうとして、ふと「2.0-phpunit」ブランチが気になって、コミットを追った。 その結果、testAction ありバージョンの意味が分…

CakePHP1.3 コントローラーのテスト(testAction なし バージョン)

コントローラーのテストを testAction メソッドを使わず書いた場合の例です。 前提 & 環境 テストを実行するのは、コンソール「cake testsuite app all」です。 作業環境 PHP : 5.3.2 CakePHP : 1.3.2 意識する対象 PHP5.2 以上の動作を意識します。 PHP5.2 …

CakePHP1.3 CakeTestCase の拡張を読み込む bootstrap 的なものをつくる

テストケースを作成する際に、拡張元となる CakeTestCase を拡張します。 CakeTestCase を拡張した独自のクラスを作成することで、 共通の処理を追加することができます。 しかし、残念ながら、 CakeTestCase クラスの読み込みには、 app_controller.php の…

(cakephp)コンポーネントの有効無効を行う enabled プロパティ

コントローラーの components プロパティに沿って、コンポーネントが読み込まれますが、コンポーネントの 「startup」「beforeRender」「beforeRedirect」「shutdown」メソッドを実行する際、各コンポーネントの enabled プロパティがチェック($component->e…

Auth コンポーネントのパスワードハッシュ化回避

Auth コンポーネントの使用時に、 [/users/add] や [/users/edit/] で、パスワードを入力させて、バリデーションをしたいとき、 アクションの段階では、既にパスワードがハッシュ化されているため、 バリデーションがやりづらい問題を回避します。 結論は、 …

google code の様な「/p/プロジェクト名」なルーティングを作る

http://code.google.com/hosting/ 風の「/p/プロジェクト名」でアクセスできるルーティングを作ります。 「p」は固定の接頭語です。なくともいいけど、その場合は、予め使用する単語を予約する必要があります。 「プロジェクト名」:プロジェクトを識別する文…

テスト時のredirect()やcakeError() の結果を拾う。+ DebugKit使用時も。

前提 CakePHP 1.2.7 を使用。 cake testsuite app all のテストを対象 Core や App に手を加えたくない。 Core に手を入れると、アップデート時にマージを忘れる。 app_controller.php にテストの為のコードを書くと、毎回のオーバーヘッドが気になる。(テス…

CakePHP 1.2.7 のリリースとその変更点

公式アナウンス CakePHP 1.2.7 released http://bakery.cakephp.org/articles/view/cakephp-1-2-7-released Since the release of CakePHP 1.2.6 in late January 2010, the development team have closed 36 tickets in 64 commits. This includes a recent…

kmyacc(多言語対応LALRパーサー生成系)のPHPテンプレートからグローバル変数を削除した&lexerの移植

php

kmyaccでWebkitのCSSパーサをPHPから使いたい、と思って色々作業。 github http://github.com/zaininnari/KMyacc_lex_PHP 先駆者 Stagehand_PHP_Parser - /src/Stagehand/PHP - リポジトリ - Piece Framework http://redmine.piece-framework.com/projects/s…

openpear/PEG パーサコンビネータを使ったCSSパーサ&バリデータ

PEGパーサコンビネータ ソースコード http://openpear.org/package/PEG ドキュメント http://nimpad.jp/phppeg/ 参考 CSS風の文法のパーサを作るチュートリアル 前回までは、「uupaa-js」( http://code.google.com/p/uupaa-js/ )の正規表現を使ったパーサで…

ubuntu dotdebでPHP 5.3.2インストール可能に

php

PHP 5.3.2では、 ReflectionMethod::setAccessible が実装され、 プライベートメソッドのテストが簡単になりました。これを使いたいために、アップデートしました。 dotdeb.org PHP 5.3.2 is available too! http://www.dotdeb.org/2010/03/08/php-5-3-2-is-…

cssパーサ(メモ)

php

参考:各ブラウザのCSSパーサの実装方法 - katata_hの日記 PHPで扱えるkmyacc(yacc) 本家:kmyacc - 多言語対応LALRパーサー生成系 yaccと互換性のあるパーサージェネレータ 処理と出力が分離されていて、他の言語への対応が可能 kmyacc に各種パッチを当てま…

cssparser : @規則(@import)

前回作成したものだと、適当でない文字列のエラーを出す(●●行目のココが怪しいよ風にしたい)のが難しいため、やっぱりPEGに逆戻りしました。 PHP PEGパーサコンビネータ セレクタとブロック部分(div {color:red})は、「{」「:」「;」「}」などで緩くに分割し…

libxml2の確認

mobilelintを別のレンタルサーバで動かそうとしてハマったメモ。参考 [FreeBSD-users-jp 92072] Re: PHP と libxml2 の関係 」「&」が削除される if(version_compare(LIBXML_DOTTED_VERSION, '2.7.4', '<')) { echo "versi…

htmlspecialchars()/htmlentities()の使用にはPHP 5.2.12以降/PHP 5.3.2以降を使う

携帯の絵文字について調べている際に、見つけたエントリーのまとめです。htmlspecialchars()/htmlentities()を使用する際には、 PHP 5.2.12以降、PHP 5.3.2以降を使うこと。 以前のバージョンでは、 htmlspecialchars(ENT_QUOTES)を使用しても、XSSの可能性…

SoftBankCssParserをgithubにアップ

構成の見直しと見つかったバグ等を修正して、githubに上げました。 http://github.com/zaininnari/CssParser BTSはこちらに http://zaininnari.lighthouseapp.com/projects/44626-mobilelint 直した所 返り値の簡略化 margin*,border*などのチェック抜けを修…

ソフトバンクcssパーサ&バリデータっぽいもの

正規表現で書き直しました。 追記 list*、background*、border* に値が任意に順序を指定できますが、実装が抜けています。 参考 uupaa-js - Project Hosting on Google Code 高速でコンパクト, 未来指向の JavaScript ライブラリ こちらのcssパーサを移植し…

openpear/PEGパーサコンビネータを使った簡易CSSパーサ(2)

前回、openpear/PEGパーサコンビネータを使った簡易CSSパーサの続きです。前回作成したのものを改良して、実践的に使えるものを目指します。当面の目標は、 Softbank携帯のCSSをパースできるところまで、進めたいと思います。 PEGパーサコンビネータ ソース…

openpear/PEGパーサコンビネータを使った簡易CSSパーサ

PEGパーサコンビネータ ソースコード http://openpear.org/package/PEG ドキュメント http://nimpad.jp/phppeg/ 参考 CSS風の文法のパーサを作るチュートリアル を元になんちゃてCSSパーサを作ってみました。 参考元と変わらないところが多いですが、 正規表…

softbankのXHTML制限事項追加

サンプルコード class Mobilelint { //略 static function isSoftbankTableTagNestOverflow(SimpleXMLElement $xml, $content) { $result = $xml->xpath('//table/descendant::table/descendant::table/descendant::table/descendant::table/descendant::tab…

softbankのチェック追加

元ファイル XHTMLMobile Profile1.2(V2.3 2008-03-31) XHTMLModularization 1.1(W3C Recommendation 8 October 2008) SoftBank Mobile Creation XHTML編 v.2.0.2 2009/11/26 注意点 SoftBank Mobile Creation XHTML編 v.2.0.2 2009/11/26 には確認した限りDT…

全面見直ししました。

http://mobile.zay.jp/ 方式変更 Document Type Definition(文書型定義、DTD)による文書構造も解析したくなり、全面見直ししました。 構成は、 DTDパーサー&バリデート PHP PEAR XML_DTD XHTML Basic 1.1(W3C Recommendation 29 July 2008)の定義を組み込…

無名関数(クロージャー)でファイル一覧取得

php

環境 PHP Version 5.3.0 ■参考 [PHP] 無名関数への変数の引継ぎ http://idocsq.net/page/95 無名関数(クロージャー)でファイル一覧取得

windowsでcakephpのbakeするためのコマンドライン

cd D:\cake\cake\console SET PATH=%PATH%;%CD% CD ../../ cd app

cakephpでHTMLの静的生成

fc2ブログ風に、公開ROOT直下にentry-<id>.htmlを生成 上書き判定機能・削除機能なし Postモデルについては、cakephpのチュートリアルに準じる

phpの折れ線グラフを作る

目標:office 2007 excelのグラフやGoogle Chartのような綺麗なものを作りたい まずは、 単純なグラフを作成

アマゾンをヤフーで検索して、レビュー順にしてみた。(PHP)

php

アマゾンをヤフーで検索してカスタムレビュー順 例)介護 http://kaigo.zay.jp/amazon/?q=%89%EE%8C%EC以下を参考に。[を] Yahoo! Search BOSS が出たので試してみました http://chalow.net/2008-07-11-3.htmlアマゾンで話題になっている商品を検索!「Wadaz…

cakephp 1.2 でsmartyを使う

今までは、cakephp1.1に CakePHPでSmartyのススメ - ホームページ制作日誌 を参考にsmartyを導入していたが、 cakephp 1.2で、 smartyをインストールさせるのが、面倒だったので、 探してみたら、↓を発見! ECWorks Blog(仮): CakePHP RC2公開とSmartyViewの…