k-holyのPHPとか諸々メモ

Webで働くk-holyがPHP(スクリプト言語)とか諸々のことをメモしていきます。ソースコードはだいたいWindowsで動かしてます。

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

Traitで不変オブジェクトにしてキャッシュ可能なクラスを作る

PHP

Qiitaに投稿した PHP Advent Calendar 2013 20日目の記事 PDOでオブジェクトをフェッチ&JSONとCSVファイル出力 の補足…というか、むしろ当初はこちらが本題の予定だったものです。 名著と評判の『Effective Java 第2版』を何年か前に読んで、不変オブジェク…

噂のPhalcon FrameworkをWindowsで動かしてみた

"The fastest PHP Framework" を標榜する Phalcon フレームワーク、実はWindows版もあるんです。 Phalcon for Windows を入れる extension として実装されてるわけですが、Windowsの場合は DLL ファイルを置くだけなのである意味Linux版よりもインストールは…

GitHubに置いてるライブラリをCoverallsに対応した

自分のライブラリを Travis CI でのユニットテストに対応しましたが、このたびカバレッジレポートを公開できるサービス Coveralls にも対応したメモです。 恥ずかしながらこれまでカバレッジレポートの意義が理解できてなかったんですが、 php-coveralls を…

マイクロフレームワークをつくろう - Pimpleの上に (フォームオブジェクトとドメインデータで投稿フォーム)

Pimpleを拡張して自分好みに使うために作成した小さなアプリケーションクラスを使って、マイクロフレームワークっぽいものを作る試みです。 記事にはしていないものの、コードの方は頻繁に更新しています。 フレームワーク全体に影響する部分としては以下の…

php --rf 関数名

PHP

昨日の昼ごろから突然、下のような状態になって php.net が見られなくなってしまったわけですが…。 どうしよう $haystack と $needle の順番が分からない! そんな時も安心、実はCLIのphpコマンドで関数のリフレクションが見られるのでした…! http://jp.php…

GitHubに置いてるライブラリをTravis CIに対応した

PHP

自分のライブラリをTravis CIでテストしてみたメモです。 ほぼ自分専用だし、別に困ってないし…と思って今まで手を付けてなかったんですが、個人ライブラリではユニットテストもそこそこ書くようになってて、 業務でも PHP 5.3系 / 5.4系 プロジェクトが併存…

offsetExistとPHPTALの罠

テンプレートをValidに書けることが売りの(?)テンプレートエンジン PHPTAL で、 マジックメソッド、ArrayAccessインタフェースを実装した配列風オブジェクトを使った時に引っかかった罠についてメモです。 内容的には ArrayAccess + マジックメソッドで公…

issetとemptyとoffsetExist

タイトルは「いとしさとせつなさと…」みたいな感じで読んでください。 マジックメソッド、ArrayAccessインタフェース、Traversableインタフェースを実装した配列風のクラスを作成する際に引っかかりがちな(?)、__isset() と offsetExists() の仕様上の罠…

ArrayAccess + マジックメソッドで公開する値と内部の値を変換するクラスにTraversableを実装する際の注意点

とてもターゲットの狭い記事ですが、ほぼ自分用メモです。 たとえば、外部からセットされたDateTimeオブジェクトを内部的にUnixTimestampに変換して保持し、外部に返す際は再びDateTimeオブジェクトに変換して返すようなオブジェクト。 そのために、マジック…

Vagrant + シェルスクリプトでPHP開発環境をプロビジョニングしてみたメモ

私はシェルスクリプト力が皆無なので、タイトルはほぼ釣りです。(でも他に表現のしようがないし…) AnsibleやFabricといった自動化ツールとの連携を検討していたんですが、ひとまずVagrant単体でできるプロビジョニングを試してみたメモです。 新原さんのス…

Windows7にVirtualBoxとVagrantをインストールしたメモ

開発環境に便利と話題のVirtualBoxとVagrantを、ようやくインストールしてみたメモです。 こちらの記事を参考にしました。 WindowsでVagrantする - みんなのちからになりたい Window 7 でVagrantでCent OS 6.3入れてみた - 僕の車輪の再発明 VirtualBoxを入…

k-holy.netドメインを取得してGehirn DNSとRS2に登録したメモ

いつかやると思いつつ、プライベートでアプリケーションを公開したいという意志が薄弱なため、なかなか実行に移れなかったのですが、ようやく k-holy.net ドメインを取得しました。 これを機に現在利用しているホスティングサービス、 Gehirn RS2 にDNSの設…

3つのテンプレートエンジンを共通のインタフェースで利用するためのライブラリ Volcanus_TemplateRenderer

Smarty3, PHPTAL, Twigを共通のインタフェースで利用するためのライブラリ Volcanus_TemplateRenderer を公開しました。 k-holy/volcanus-template-renderer 既存のフレームワークを使ってる大多数の人には何の役にも立たない、誰得なライブラリですが…。 Pa…

SilexでUrlGeneratorを使ったサブディレクトリ運用でサブリクエスト

相変わらずSilexとPimpleを拡張した自作フレームワークを行ったり来たりしています。 SilexアプリケーションでUrlGeneratorを使ったサブディレクトリ運用への対応(たとえば http://example.com/foo/ 以下をアプリケーションのルートとする)で、コントロー…

SqaleのPHPアプリケーションでSilexのサービスプロバイダ用Traitを使ってみたメモ

クラウドホスティングサービス Sqale では国内ホスティングサービスとしては珍しく(?)、動作環境にPHP5.4を選択できます。 せっかくなので、以前に書いたSilexアプリケーションのコードをSilex付属のサービスプロバイダ用Traitを利用したものに書き換える…

SqaleのPHPアプリケーションで.user.iniを使ってみたメモ

クラウドホスティングサービス Sqale がPHP対応された際にキャンペーンで無料アプリケーションを1個いただいて、色々試してみましたが、その後しばらく触ってませんでした。 久しぶりに公式の Sqale - PHPアプリケーションのマニュアル を見てみると、PHPア…

マイクロフレームワークをつくろう - Pimpleの上に(システム日付編)

Pimpleを拡張して自分好みに使うために作成した小さなアプリケーションクラスを使って、マイクロフレームワークっぽいものを作る試みです。 マイクロフレームワークをつくろう - Pimpleの上に(Pimple拡張編) マイクロフレームワークをつくろう - Pimpleの…

マイクロフレームワークをつくろう - Pimpleの上に(Monolog導入・エラーログとスタックトレース出力編)

Pimpleを拡張して自分好みに使うために作成した小さなアプリケーションクラスを使って、マイクロフレームワークっぽいものを作る試みです。 マイクロフレームワークをつくろう - Pimpleの上に(Pimple拡張編) マイクロフレームワークをつくろう - Pimpleの…

マイクロフレームワークをつくろう - Pimpleの上に(ルーティング編)

Pimpleを拡張して自分好みに使うために作成した小さなアプリケーションクラスを使って、マイクロフレームワークっぽいものを作る試みです。 マイクロフレームワークをつくろう - Pimpleの上に(Pimple拡張編) マイクロフレームワークをつくろう - Pimpleの…

マイクロフレームワークをつくろう - Pimpleの上に(Symfony HttpFoundationでフラッシュメッセージとCSRF対策編)

Pimpleを拡張して自分好みに使うために作成した小さなアプリケーションクラスを使って、マイクロフレームワークっぽいものを作る試みです。 マイクロフレームワークをつくろう - Pimpleの上に(Pimple拡張編) マイクロフレームワークをつくろう - Pimpleの…

マイクロフレームワークをつくろう - Pimpleの上に(例外処理とエラー画面・Twitter Bootstrap導入編)

Pimpleを拡張して自分好みに使うために作成した小さなアプリケーションクラスを使って、マイクロフレームワークっぽいものを作る試みです。 マイクロフレームワークをつくろう - Pimpleの上に(Pimple拡張編) マイクロフレームワークをつくろう - Pimpleの…

マイクロフレームワークをつくろう - Pimpleの上に(PHPTAL導入編)

Pimpleを拡張して自分好みに使うために作成した小さなアプリケーションクラスを使って、マイクロフレームワークっぽいものを作る試みです。 マイクロフレームワークをつくろう - Pimpleの上に(Pimple拡張編) マイクロフレームワークをつくろう - Pimpleの…

マイクロフレームワークをつくろう - Pimpleの上に(RESTインタフェース編)

Pimpleを拡張して自分好みに使うために作成した小さなアプリケーションクラスを使って、マイクロフレームワークっぽいものを作る試みです。 マイクロフレームワークをつくろう - Pimpleの上に(Pimple拡張編) マイクロフレームワークをつくろう - Pimpleの…

マイクロフレームワークをつくろう - Pimpleの上に(Rendererクラス作成編)

Pimpleを拡張して自分好みに使うために作成した小さなアプリケーションクラスを使って、マイクロフレームワークっぽいものを作る試みです。 マイクロフレームワークをつくろう - Pimpleの上に マイクロフレームワークをつくろう - Pimpleの上に(とりあえず…

マイクロフレームワークをつくろう - Pimpleの上に(Symfony HttpFoundation導入編)

Pimpleを拡張して自分好みに使うために作成した小さなアプリケーションクラスを使って、マイクロフレームワークっぽいものを作る試みです。 マイクロフレームワークをつくろう - Pimpleの上に マイクロフレームワークをつくろう - Pimpleの上に(とりあえず…

マイクロフレームワークをつくろう - Pimpleの上に(とりあえずフォーム編)

Pimpleを拡張して自分好みに使うために作成した小さなアプリケーションクラスを使って、マイクロフレームワークっぽいものを作る試みです。 マイクロフレームワークをつくろう - Pimpleの上に コードはWindows版 PHP5.4 ビルトインWebサーバにて動作確認して…

マイクロフレームワークをつくろう - Pimpleの上に(Pimple拡張編)

DIコンテナの効能が謳われだして久しい昨今、業務でもSilexでいくつか小さなアプリケーションを作ったりする中で、ようやくその利点を実感するようになりました。 そのうち、実は自分が惚れたのはSilexではなくて、その母体たるPimpleだったんじゃないかと考…

Fabricタスクをモジュール分割して楽々composer更新

Windows7 (MinGW / MSYS) で Fabric シリーズ記事です。 Windows7 (MinGW / MSYS) に Python 2.7 + virtualenv + Fabric を入れたメモ Windows7 (MinGW / MSYS) に virtualenvwrapper を入れたメモ Fabricで接続情報を指定する方法いろいろ&FabricからPHPス…

真性PHPerでも分かった?FabricでWindowsからファイルアップロード

Windows7 (MinGW / MSYS) で Fabric の続きです。 Windows7 (MinGW / MSYS) に Python 2.7 + virtualenv + Fabric を入れたメモ Windows7 (MinGW / MSYS) に virtualenvwrapper を入れたメモ Fabricで接続情報を指定する方法いろいろ&FabricからPHPスクリプ…

Fabricで接続情報を指定する方法いろいろ&FabricからPHPスクリプトを実行してみたメモ

Windows7 (MinGW / MSYS) で Fabric の続きです。 Windows7 (MinGW / MSYS) に Python 2.7 + virtualenv + Fabric を入れたメモ Windows7 (MinGW / MSYS) に virtualenvwrapper を入れたメモ ですが、多分今回の内容は実行環境に関係なく共通だと思います。 …