PHP
前回の記事 画像アップロード(3)ドラッグ&ドロップ対応(IE除く) の続きです。 画像アップロード(1)Canvasでプレビューして普通に画像をアップロード 画像アップロード(2)クライアント側で簡易バリデーション、複数ファイル対応 画像アップロード(3)ドラッ…
前回の記事 画像アップロード(2)クライアント側で簡易バリデーション、複数ファイル対応 の続きです。 画像アップロード(1)Canvasでプレビューして普通に画像をアップロード 画像アップロード(2)クライアント側で簡易バリデーション、複数ファイル対応 画像…
前回の記事 画像アップロード(1)Canvasでプレビューして普通に画像をアップロード の続きです。 画像アップロード(1)Canvasでプレビューして普通に画像をアップロード 画像アップロード(2)クライアント側で簡易バリデーション、複数ファイル対応 画像アップ…
AJAXとかドラッグ&ドロップといったややこしい処理はおいといて、HTML5のCanvasを使ってクライアント側でプレビューしてみるテストです。 画像アップロード(1)Canvasでプレビューして普通に画像をアップロード 画像アップロード(2)クライアント側で簡易バリ…
PHPUnit 4.1系で \Symfony\Component\HttpFoundation\File\UploadedFile のモックオブジェクトを作成しようとすると "Erroneous data format for unserializing" のエラーが発生します。 PHP 5.6.1 + PHPUnit 4.1.6 で確認しました。 エラーメッセージで検索…
JavaScriptのグラフ描画ライブラリ Chart.js サンプルが綺麗でシンプルなためかデザイナーの方に人気のようで、いろんなブログで紹介されてます。 しかしサンプルではラベルを設定しているにも関わらず凡例が表示されておらず、「凡例を表示する機能がない」…
まず手元の Windows7 + PHP 5.6.0 で検証した上での結論を書くと 「Windows で日本語ファイルパスを扱う場合 SplFileInfo は使うな」 です。 ロケール設定を適切に行うことで basename() や pathinfo() に関しては、Shift_JISのコード表に起因するいわゆる「…
ローカル開発環境(32bit Windows7)でのPHP 5.6への更新作業メモです。 アーカイブを展開してシンボリックリンクを切り替える 最新リリース版をダウンロード PHP 5.6.0 VC11 x86 Thread Safe (2014-Aug-27 21:52:22) 過去バージョンの動作環境もそのまま残…
コマンドは許可されてるけど訳ありでFTP/SCPアップロードから逃れられない、でもComposerだって普通に使いたい、vendorディレクトリ以下を一括アップロードなんてしたくない…。 そこで、手動シンボリックリンク切り替えデプロイを断行してみました。 以下の…
PHPUnit 4 に対応、PEARおよびPHPUnit3.6のサポートを終えた Stagehand_TestRunner V4 をローカル開発環境 (Windows7) に入れたメモです。特に新しいことはしていません。 内容的には Composerでプロジェクトグローバルに Stagehand_TestRunner + PHPUnit を…
PHPTALにおけるテンプレート変数のパス記述に関するメモです。多分他の人にはあまり役に立たないと思います。 PHPTAL_Context::path() におけるパス参照時の PHPTAL_VariableNotFoundException発生条件 ソースはここ PHPTAL/classes/PHPTAL/Context.php パス…
現在、データベースのレコード単位で一意に識別されるデータを不変オブジェクトをベースにしたEntity Objectと、その属性となるValue Objectの設計を実践中ですが、やったこと&やっていることのメモです。 内容的には Traitで不変オブジェクトにしてキャッ…
mysqli::__construct() で以下のエラーが発生。 mysqli::mysqli(): (HY000/2002): No such file or directory 調べてみると、MySQLのソケットファイル(mysql.sock)が見当たらない場合にこのエラーが発生することがあるようです。 パッケージでインストールし…
今度はローカル開発環境の Windows7 + NYAOS で composer global install してみました。 以下、シェルは NYAOS を使っています。 Composerをインストール 当然すでにcomposerは導入済みなのですが、Linuxの場合と同じ手順を踏んでやってみます。 PHPのイン…
久々にお仕事でroot権限のあるLinuxサーバ (CentOS 6.5)を使えることになったのでComposerで Stagehand_TestRunner(3.6.2) + PHPUnit(3.7.37) をインストールしたメモ。 Composerをインストール 作業用ユーザー(application)のホームディレクトリ以下にプロ…
今時Basic認証かよ、などと思われそうですが、むしろ今時HTTPSでない認証はあり得ないので、明示的なログアウト/再ログインが必要のないケースであればBasic認証で問題ないんじゃないかというわけで。 非ブラウザのHTTPクライアントアプリケーションと連携し…
Qiitaに投稿した PHP Advent Calendar 2013 20日目の記事 PDOでオブジェクトをフェッチ&JSONとCSVファイル出力 の補足…というか、むしろ当初はこちらが本題の予定だったものです。 名著と評判の『Effective Java 第2版』を何年か前に読んで、不変オブジェク…
"The fastest PHP Framework" を標榜する Phalcon フレームワーク、実はWindows版もあるんです。 Phalcon for Windows を入れる extension として実装されてるわけですが、Windowsの場合は DLL ファイルを置くだけなのである意味Linux版よりもインストールは…
自分のライブラリを Travis CI でのユニットテストに対応しましたが、このたびカバレッジレポートを公開できるサービス Coveralls にも対応したメモです。 恥ずかしながらこれまでカバレッジレポートの意義が理解できてなかったんですが、 php-coveralls を…
Pimpleを拡張して自分好みに使うために作成した小さなアプリケーションクラスを使って、マイクロフレームワークっぽいものを作る試みです。 記事にはしていないものの、コードの方は頻繁に更新しています。 フレームワーク全体に影響する部分としては以下の…
昨日の昼ごろから突然、下のような状態になって php.net が見られなくなってしまったわけですが…。 どうしよう $haystack と $needle の順番が分からない! そんな時も安心、実はCLIのphpコマンドで関数のリフレクションが見られるのでした…! http://jp.php…
自分のライブラリをTravis CIでテストしてみたメモです。 ほぼ自分専用だし、別に困ってないし…と思って今まで手を付けてなかったんですが、個人ライブラリではユニットテストもそこそこ書くようになってて、 業務でも PHP 5.3系 / 5.4系 プロジェクトが併存…
テンプレートをValidに書けることが売りの(?)テンプレートエンジン PHPTAL で、 マジックメソッド、ArrayAccessインタフェースを実装した配列風オブジェクトを使った時に引っかかった罠についてメモです。 内容的には ArrayAccess + マジックメソッドで公…
タイトルは「いとしさとせつなさと…」みたいな感じで読んでください。 マジックメソッド、ArrayAccessインタフェース、Traversableインタフェースを実装した配列風のクラスを作成する際に引っかかりがちな(?)、__isset() と offsetExists() の仕様上の罠…
とてもターゲットの狭い記事ですが、ほぼ自分用メモです。 たとえば、外部からセットされたDateTimeオブジェクトを内部的にUnixTimestampに変換して保持し、外部に返す際は再びDateTimeオブジェクトに変換して返すようなオブジェクト。 そのために、マジック…
Smarty3, PHPTAL, Twigを共通のインタフェースで利用するためのライブラリ Volcanus_TemplateRenderer を公開しました。 k-holy/volcanus-template-renderer 既存のフレームワークを使ってる大多数の人には何の役にも立たない、誰得なライブラリですが…。 Pa…
相変わらずSilexとPimpleを拡張した自作フレームワークを行ったり来たりしています。 SilexアプリケーションでUrlGeneratorを使ったサブディレクトリ運用への対応(たとえば http://example.com/foo/ 以下をアプリケーションのルートとする)で、コントロー…
クラウドホスティングサービス Sqale では国内ホスティングサービスとしては珍しく(?)、動作環境にPHP5.4を選択できます。 せっかくなので、以前に書いたSilexアプリケーションのコードをSilex付属のサービスプロバイダ用Traitを利用したものに書き換える…
クラウドホスティングサービス Sqale がPHP対応された際にキャンペーンで無料アプリケーションを1個いただいて、色々試してみましたが、その後しばらく触ってませんでした。 久しぶりに公式の Sqale - PHPアプリケーションのマニュアル を見てみると、PHPア…
Pimpleを拡張して自分好みに使うために作成した小さなアプリケーションクラスを使って、マイクロフレームワークっぽいものを作る試みです。 マイクロフレームワークをつくろう - Pimpleの上に(Pimple拡張編) マイクロフレームワークをつくろう - Pimpleの…