zz log

zaininnari Blog

2010-01-01から1年間の記事一覧

レイヤー内のプロパティを設定

レイヤー内のプロパティを一挙に設定をします。 locked と hidden が設定されていない場合は設定できますが、 逆はできません。 illustrator CS4 for windows で動作を確認しています。 ナビ子記法を使用しています。 2分でわかる uupaa.js の Debug Navigat…

再帰的なファイル一覧の取得

↓作った理由 バッチ処理から、「サブディレクトリも処理」にチェックを入れて、個別に JavaScript を呼ぶアクションを呼んでもいいけれど、それだと、JavaScript のコードの場所が決め打ちになってしまうので、場所をフリーにするには、自前でファイル一覧を…

CakePHP Ajax のテスト(CakeTestCase)

CakePHP で Ajax のテスト(CakeTestCase)を作ります。 前提 PHP : 5.3.2 CakePHP : 5.3.2 CakeTestCase を拡張したクラスをテストの親クラスとして使用しています。 「CakePHP1.3 CakeTestCase の拡張を読み込む bootstrap 的なものをつくる」 http://d.hate…

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…

PC直った。そして、休日が終わった...

PC故障(´・ω・`)

全面見直ししました。

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 無名関数(クロージャー)でファイル一覧取得