TECHSCORE BLOG に記事を掲載していただきました。 PostgreSQLのUUID型とpgcryptoモジュールを使って会員パスワード認証を実装してみる 普段の業務では主にLAMPおじさんとしてPHP + MySQLで動く小規模なWebアプリケーションばかり開発している私ですが、TECH…
Vagrantは2013年の記事 Windows7にVirtualBoxとVagrantをインストールしたメモ でインストールはしてみたものの、日々の開発作業に追われるまま長らく使っていませんでした。 実はこのブログでは一番人気の記事で、言及リンクしていただいた数も最も多いので…
前回の記事 画像アップロード(3)ドラッグ&ドロップ対応(IE除く) の続きです。 画像アップロード(1)Canvasでプレビューして普通に画像をアップロード 画像アップロード(2)クライアント側で簡易バリデーション、複数ファイル対応 画像アップロード(3)ドラッ…
前回の記事 画像アップロード(2)クライアント側で簡易バリデーション、複数ファイル対応 の続きです。 画像アップロード(1)Canvasでプレビューして普通に画像をアップロード 画像アップロード(2)クライアント側で簡易バリデーション、複数ファイル対応 画像…
前回の記事 画像アップロード(1)Canvasでプレビューして普通に画像をアップロード の続きです。 画像アップロード(1)Canvasでプレビューして普通に画像をアップロード 画像アップロード(2)クライアント側で簡易バリデーション、複数ファイル対応 画像アップ…
AJAXとかドラッグ&ドロップといったややこしい処理はおいといて、HTML5のCanvasを使ってクライアント側でプレビューしてみるテストです。 画像アップロード(1)Canvasでプレビューして普通に画像をアップロード 画像アップロード(2)クライアント側で簡易バリ…
git diff コマンドと git archive コマンドを利用した差分抽出については知ってはいたんですが、しばらくFTPでのアップロードが必要なプロジェクトから逃れていたこともあり、あまり追求していませんでした。 今回再びそのような環境に携わることになりまし…
PHPUnit 4.1系で \Symfony\Component\HttpFoundation\File\UploadedFile のモックオブジェクトを作成しようとすると "Erroneous data format for unserializing" のエラーが発生します。 PHP 5.6.1 + PHPUnit 4.1.6 で確認しました。 エラーメッセージで検索…
JavaScriptのグラフ描画ライブラリ Chart.js サンプルが綺麗でシンプルなためかデザイナーの方に人気のようで、いろんなブログで紹介されてます。 しかしサンプルではラベルを設定しているにも関わらず凡例が表示されておらず、「凡例を表示する機能がない」…
まず node.js が必要らしい。 node.js 最新バージョンのインストーラ http://nodejs.org/dist/v0.10.33/node-v0.10.33-x86.msi を取得して、全部デフォルトのままインストール。パス環境変数への追加なども勝手にやってくれるみたい。 以下、シェルは NYAOS …
まず手元の 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で不変オブジェクトにしてキャッ…
SparkleShare をWindows7に入れて使ってみたメモです。 SparkleShareが何なのかは、ちょっと古いですがこちらの記事が分かりやすかったです。 SparkleShareメモ - nofuture.tv SparkleShareは、バージョン管理システムGitを利用したリアルタイムファイル共有…
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オブジェクトに変換して返すようなオブジェクト。 そのために、マジック…