zz log

zaininnari Blog

php

CakePHP cookbook の日本語PDFを作成する

sphinx の日本語PDFの作成方法を調べたので作成しました。 環境 CentOS release 6.4 (Final) (cat /etc/centos-release) Python 2.6.6 (python --version) Sphinx 1.2 (python -c 'import sphinx; print sphinx.__version__') 日本語化パッチが取り込まれた …

CakePHP で実行箇所をSQLのコメントに埋め込む

概要 CakePHP + DebugKit で開発しているときに、 「このSQLどこで発行されているの?」となることがあるので、 ActiveRecordのSQLの実行箇所をSQLのコメントに入れる - I sort my thought... を参考にして簡単なプログラムを作成しました。 但し、DebugKit …

CakePHP + CacheHelper + html-minifier を CacheHelper と併用して使用する

概要 CakePHP + CacheHelper + html-minifier を併用できるようにしました。 エレメントとレイアウトのビューファイルの圧縮済みファイルを相対パスで保存し、かつ、読み込み時には、App::build で View パスの先頭にキャッシュパスを追加しています。 キャ…

CakePHP でビューキャッシュを使用時、独自Viewクラスを引き継ぐ(不完全)

概要 ビューキャッシュは、コアの CacheHelper によって作成され、CacheDispatcher で読み込みが行われます。 但し、現時点では、viewClass を引き継ぐ方法がないため、View クラスによるレンダリングが行われます。 通常は、View クラスのレンダリングで問…

素のPHPまたはCakePHPの テンプレートのHTML部分を圧縮(minify) して通信量を削減により、高速化を図る

概要 PHPのViewテンプレートをtoken_get_all(指定したソースを PHP トークンに分割する)と自前のhtml-minifier により、事前にHTML圧縮を行い、その結果をキャッシュすることで、5~10%程度のHTML容量の削減を行うことができました。 詳細 ※CakePHP の View …

CakePHP 2.3.10 変更点

公式アナウンス CakePHP 2.3.10 released 今回のリリースはバグフィックスリリースです。 パフォーマンスの改善、PHP5.5.2でのSessionの動作改善、Emailクラスの改善が主な変更点になります。 また、CakePHP2.3系のリリース方針についてアナウンスがあり、Ca…

CakePHP 2.3.9 変更点

公式アナウンス CakePHP 2.3.9 released 今回のリリースはメンテナンスリリースです。 20のバグフィックス及びパフォーマンスの改善が行われています。 主な変更点 ドキュメント・テストケース・小さな修正は除きます。 CakeResponse _fileRange Content-Ran…

CakePHP 2.3.8 変更点

公式アナウンス CakePHP 2.3.8 released セキュリティリリース AssetDispatcher を有効にしている(デフォルトでは有効)アプリケーションが対象 CakePHP 2.2.9 も同時にリリースされている このバグに対する詳細は、後日、公式から発表されるそうです。 この…

Blink HTMLTokenizer を PHP に移植して、HTML Minifyをできるようにした「html-minifier」

php

概要 Webkit からフォークされたレンダリングエンジン Blink で使用されている HTMLTokenizer をPHPに移植して、 HTML の Minify(圧縮) を行う「html-minifier」を作りました。 zaininnari/html-minifier ※アルファ版にも満たないため、名称の変更、APIの変…

CakePHP 2.3.7 変更点

公式アナウンス CakePHP 2.3.7 released バグフィックスリリース CacheHelper 使用時、content-type ヘッダーを含めるようになったのが個人的には一番よい修正。 CakePHP 2.4.0-betaのリリース Components の PasswordHasher や Logging の強化が目につくと…

CakePHP 2.3.6 変更点

公式アナウンス CakePHP 2.3.6 released メンテナンスリリース 2.2系で報告されたチケットが閉じられても2.2系のリリースがないということは、2.2系はセキュリティリリースだけのサポートになるのかな? 現時点では github に2.2系のブランチはない 主な変更…

PHP5.3.26 / PHP5.4.16 変更点

PHP

PHP公式アナウンス リリース http://php.net/archive/2013.php#id2013-06-06-2 ChangeLog 5.3.26 5.4.16 概要 CVE-2013-2110(quoted_printable_encodeによるバッファオーバーフロー脆弱性)の修正と、FPM の機能向上が目立つリリースです。 変更点 Core Fixed…

PHP5.3.25 / PHP5.4.15 変更点

PHP

PHP公式アナウンス リリース http://php.net/archive/2013.php#id2013-05-09-1 ChangeLog 5.3.25 5.4.15 変更点 Core Fixed bug set_error_handler内でdebug_backtraceを使用すると、Segmentation fault が発生するのを修正

CakePHP 2.3.5 変更点

公式アナウンス Security Fix: CakePHP 2.3.5 released :: The Bakery: Everything CakePHP セキュリティリリース XSS脆弱性の修正 詳細は、あとで公表されるようです。 主な変更点 ドキュメント・テストケースの修正は除きます。時系列順です。 機能向上 Va…

CakePHP まとめ

CakePHP2.3 version release date release note 2.3.7 2013/07/05 bakery 2.3.6 2013/06/10 bakery 2.3.5 2013/05/11 bakery 2.3.4 2013/04/28 bakery 2.3.3 2013/04/24 bakery 2.3.2 2013/04/07 bakery 2.3.1 2013/03/02 bakery 2.3.0 2013/01/28 bakery 2.…

CakePHP 2.3.4 変更点

概要 公式アナウンス Security Release - CakePHP 1.2.12, 1.3.16, 2.2.8 and 2.3.4 :: The Bakery: Everything CakePHP セキュリティリリース CakePHP 1.2, 1.3, 2.2, 2.3 全てのバージョンに影響 pagination に関してSQLインジェクションの修正 詳細は、あ…

CakePHP 2.3.3 変更点

概要 公式アナウンス http://bakery.cakephp.org/articles/lorenzo/2013/04/24/security_fix_cakephp_2_3_3_available セキュリティリリース 2.3以降を使用し、SecurityComponent なしで、AuthComponent を使用している場合、認証を回避できてしまうのを修正…

PHP5.3.24

PHP

PHP公式アナウンス リリース http://php.net/archive/2013.php#id2013-04-11-2 ChangeLog http://www.php.net/ChangeLog-5.php#5.3.24 PHP5.3のサポートは PHP 5.5.0-stable リリースの1年後に決定(security fixesのみ) 2013年3月でサポートが終了するかと思…

PHP: Hypertext Preprocessor

PHP

PHP5.4 version release memo 5.4.0 2012/03/01 5.4.1 2012/04/26 5.4.2 2012/05/03 5.4.3 2012/05/08 5.4.4 2012/06/06 5.4.5 2012/07/19 5.4.6 2012/08/16 5.4.7 2012/09/13 5.4.8 2012/10/18 5.4.9 2012/11/22 5.4.10 2012/12/20 5.4.11 2013/01/17 5.4.1…

PHP5.4.14

PHP

PHP公式アナウンス リリース http://php.net/archive/2013.php#id2013-04-11-2 ChangeLog http://www.php.net/ChangeLog-5.php#5.4.14 興味を引いたもの Fixed bug #64515 (Memoryleak when using the same variablename two times in function declaration)…

CakePHP 2.3.2 変更点

概要 公式アナウンス http://bakery.cakephp.org/articles/markstory/2013/04/07/cakephp_2_3_2_released バグフィックスリリース 定数 JS,CSS,IMAGES が定義済みかどうかをチェックするように変更になったのが Good 主な変更点 フィクスチャーがプライマリ…

CakePHP 2.0.3 の変更点メモ

今回のCakePHP 2.0.3 リリースは、CakePHP 2系の安定性の向上、PHPUnit 3.6・PHP5.4 に対応への対応がメインです。66のコミットと32の問題解決と中規模の改善がありました。大きくは、 PEAR でインストールされるデフォルトのバージョンが PHPUnit 3.6 にな…

CakePHP 2.0.2 の変更点メモ

今回のCakePHP 2.0.2 リリースは、CakePHP2.0.1 の緊急のバグフィックスリリースです。CakeResponse::send の Content-Length ヘッダーの生成に問題があります。 詳細は、以下を参照。 CakePHP2.0.1がリリースされましたが、ちょっと待ったほうがいい CakePH…

CakePHP 2.0.1 の変更点メモ

今回のCakePHP 2.0.1 リリースは、CakePHP2系初のバグフィックス及びメンテナンスリリースです。 修正は100個近いですが、ドキュメントの修正や coreとtestのコードが別コミットものも多数あり、 実態の数としては、少なく感じました。特に大きい修正として…

CakePHP 1.3.13 の変更点メモ

今回のCakePHP 1.3.13 リリースも、バグフィックス及びメンテナンスです。但し、CakePHP1.3.12 で行われた修正が再度、修正されているものがあります。 個人的には、 Cake2で修正された theme 内の element のキャッシュが正しく読み込まれないバグのバック…

CakePHP 1.3.12 の変更点メモ

今回のCakePHP 1.3.12 リリースも、バグフィックス及びメンテナンスです。結構はボリュームがありますが、重大なバグは見当たりません。 また、 Cake2 からのバックポートがいくつか見られ、Cake2 の開発の活発さを伺わせます。 CakePHP 1.3.12 released htt…

CakePHP 1.3.11 の変更点メモ

今回のCakePHP 1.3.11 リリースは、バグフィックス及びメンテナンスです。 約30のコミットがありましたが、大きな変更がなく、1.3系の安定感を感じます。 逆に、 2.0.0-alpha から 2.0.0-beta は、400を超えるコミットがあり、 1.3.10 から 1.3.11 とほぼ同…

CakePHP 1.3.10 の変更点メモ

CakePHP 1.3.9 と同じ、バグフィックス及びメンテナンスリリース。 CakePHP 1.3.10 released http://bakery.cakephp.org/articles/predominant/2011/05/30/cakephp_1_3_10_released 変更差分(1.3.9 -> 1.3.10) https://github.com/cakephp/cakephp/compare…

CakePHP 1.3.9 の変更点メモ

1.3系におけるバグフィックス及びメンテナンスリリースだそうです。 CakePHP 1.3.9 and 2.0.0-alpha released http://bakery.cakephp.org/articles/markstory/2011/05/21/cakephp_1_3_9_and_2_0_0-alpha_released 変更差分(1.3.8 -> 1.3.9) https://github…

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パーサコンビネータ ソース…