2012-01-01から1年間の記事一覧
Advent Calendar 用のサンプルコードを書くに当たって、Silexアプリケーションをサブディレクトリで運用したメモです。 なお、例のごとくサンプルコードではテンプレートエンジンにSmartyを使っています。 Apache + mod_rewrite で解決 Apache + mod_rewrite…
Symfony Advent Calendar JP 2012 22日目の記事です。 まずはじめにお断りしておきますが、この記事はSymfony未経験者向けです。 (飛び入り参加なのに低レベルな内容ですみません…) HTTP/1.1 には If-Modified-Since, If-Unmodified-Since, If-Match, If-N…
PHP Advent Calendar 2012 11日目の記事です。昨日は Shusuke Otomo さんの 初めて Pull Request した話。 #phpadvent2012 | slumbers でした。 皆さん、テンプレートエンジンは何を使ってますか? おおっぴらに使ってますと発言するのもちょっと勇気がいる…
CSVファイルの入出力用ライブラリ Volcanus_Csv を使ったシリーズ記事 CSVファイルの入出力処理用ライブラリ Volcanus_Csv を公開しました SilexでVolcanus_CsvとStreamedResponseを使ってCSV出力・Content-Dispositionヘッダの設定方法いろいろ Silex + PDO…
先日、CSVファイルの入出力用ライブラリ Volcanus_Csv を公開しました。CSV処理クラスを作成した者の宿命として、まずは全国の郵便番号データ…悪名高き「ken_all.csv」と戦ってみるつもりでいたのですが…。どうやら全国多数のプログラマ達の怨嗟の声を受け z…
先日公開したCSV入出力用ライブラリ Volcanus_Csv ですが、実際に使わないと改善点も見えてこないので、あれこれやってみます。今回は Silex で Volcanus_Csv のレスポンス出力を利用せず、通常のコントローラと同様に Response オブジェクトを利用してみま…
CSV形式ファイルの入出力処理を簡潔に行うためのPHPクラスライブラリ Volcanus_Csv を公開しました。データベースから取得したデータのCSV形式でのエクスポートや、CSV形式ファイルからのデータベースへのインポートにおいて、簡潔かつ柔軟に対応できること…
Gehirn (ゲヒルン) RS2を使ってみたけどPharファイルが使えないと思ったら使えるようになった件 の続き。 今回はSilexからMySQLを使ってみます。事前準備として、Gehirn WebServices ControlPanel にてデータベースを作成する必要があります。 コントロール…
こちらの記事 22歳のセキュリティーコンサルタントが立ち上げたのはたった315円で利用できるインフラサービス で知った Gehirn RS2 というサーバレンタルサービス。 クラウド環境のレンタルサーバで、いわゆるPaaSになるんでしょうか? 独自ドメイン対応、複…
Silex + OptionsResolver で FizzBuzz の続きです。前回のサンプルだとSilex使っている意味がないので、パスで指定された値を使ってFizzBuzzを実行するよう、エントリスクリプトを書き換えました。"/{var}/{type}" という2つのパラメータを含んだパスへのGET…
Symfony2.1からOptionsResolverというコンポーネントが追加されましたが、連想配列によるオプション引数を扱うのに便利そうなので、こちらの記事を参考に試してみました。OptionsResolver を使って FizzBuzz 問題に取り組む - Sarabande.jpついでに、長い間…
諸々の事情でまだ業務においてはCIはおろか自動テスト環境も整っていないんですが、クラスライブラリの開発ではいつも Stagehand_TestRunner を使った自動テストを行っています。V3になってから全面的にSymfonyコンポーネントを採用され、コマンドやオプショ…
イテレータよりも配列大好きなPHPerは array_filter() を愛用していることと思いますが(?)、PHPには配列のキーでフィルタかける関数がないのが残念なところです。何か代替案はないかと思って調べたところ、array_intersect_ukey() を使って実現できました…
PHPマニュアルの説明を読んでも違いがよく分からない SplFileInfo のファイル名やパスを取得する類のメソッドを、ファイルシステム関数と比較調査したメモです。SplFileInfo::__construct() の説明には "file_name で指定したファイル用の新しい SplFileInfo…
auto_prepend_fileで既存コードに手を加えずエラー発生時の処理を変更する方法の続きです。参考リンク紹介するだけというのもなんなので、シャットダウン関数を併用したエラー処理について試してみました。 試行錯誤する中で、どうにも無名関数だけでやるの…
PHPではエラー発生時も普通にレスポンスヘッダでステータス200を返しますが、それだと困るという場合もあるかと思います。 PHPの設定ディレクティブに auto_prepend_file という、全てのスクリプトが読み込まれる前に別のスクリプトを自動で差し込める機能が…
今まで、ディレクトリ内ファイルの再帰処理にはSPLの RecursiveDirectoryIterator + RecursiveIteratorIterator 、フィルタ処理が必要な場合は RecursiveFilterIterator 、独自ソートが必要な場合は SplHeap を継承という感じで組み合わせて使っていたんです…
※この記事は2012年7月19日時点のsandboxアプリケーションを元に書いたものなので、あまり参考にはなりません。BEAR.Sundayを触ってみたメモ (1)インストール BEAR.Sundayを触ってみたメモ (2)はじめてのアプリケーションリソース の続きです。今回は はじめ…
BEAR.Sundayを触ってみたメモ (1)インストール の続きです。2つ用意されているチュートリアルのどちらにしようか考えましたが、DBありきではなく簡単なアプリケーションリソースの作成からやった方が、リソース指向を謳うBEARらしいかなと思い、"はじめての"…
BEAR.Sundayを試してみる人が増えてきたので、自分も試してみました。 以前(dev2)はWindowsではうまく動かせずインストール途中で挫折してしまったのですが、今回はどうでしょうか。手順は公式Wikiを参考に http://code.google.com/p/bearsunday/wiki/Instal…
名前空間を使わないPSR-0のライブラリをComposerのオートローダで利用する方法について調べたメモです。英語が不得手な自分は、マニュアルのサンプルを眺めながら試行錯誤を繰り返すしかないわけで、トンチンカンなことをやってる/書いてるかもしれないと、…
Composerの使い方を調べたメモ(1)の続きです。 ライブラリ側のcomposer.jsonの書き方を調査する成り行きで、Githubに登録しているバリデーションライブラリをPackagistに登録し、composerでインストールしてみました。composer.json require にPHP 5.3.3以上…
Composer の使い方を調べたメモ。 Ryuzee.comの記事で分からなかった部分を実際に使って試してみました。 以下、内容はほぼ推測なので、間違いがあれば指摘していただけると嬉しいです。composer.json 上記の定義で "php composer.phar install" した結果、s…
Fileinfo関数は以前はPECL拡張モジュールでしたが、PHP5.3.0以降は特にCライブラリの追加も必要なく、デフォルトで有効になってます。 今回、初めてこの関数をWindows版で使ってみたメモです。サンプルコード ソートとか余計な処理も入ってますが、Recursive…
filesize()関数におけるというか、要は32bit整数の話なのですが。 マニュアルにもある通り、filesize()関数は2GBを越えるファイルについては期待通りの値を返さない場合があります。 PHP filesize - Manual今まで2GB超のファイルに対してファイルシステム関…
Smarty(3.1.8)を使っていますが、いつからかこんなエラーが発生するようになりました。 'filemtime(): stat failed for /path/to/compiled_template.html.php' in /path/to/vendor/Smarty/sysplugins/smarty_resource.php on line 693エラーメッセージから、…
今更ながら Composer というものを使ってみようと思い立ち、Windows7でwgetコマンドとcomposer.pharを使ってみたメモです。検索してみたら、GNU toolsのWindows版プロジェクト「GnuWin32」にwgetコマンドが移植されていることが分かったので、まずはそちらを…
なんかMacユーザの皆さんがGrowl Growlって言ってるけど…どーせWindowsじゃ使えないんでしょ、って勝手にやさぐれてたら、実はWindows用のクローンがあったんです。(今更気付きました…)そろそろ、エディタの裏で動いてるStagehand_TestRunnerのAutotestを…
Apache 2.4のWindows版バイナリがApache Loungeに公開されてると知って、Windows7でApache 2.4 + PHP5.4環境に挑戦したものの、どうにも安定動作させられませんでした。 時間的な余裕もないので、とりあえずXAMPPのバージョンを1.7.4(PHP 5.3.5)から1.7.7(PH…
フレームワークのコードをななめ読みしていると、getterとsetterを兼ねた短い名前のメソッドが使われている例を、ちょくちょく見かけます。 たとえばJava風なら getName(), setName('foo') とするところを、name(), name('foo') とするようなメソッドです。…