【メモ】printf / sprintf のフォーマット文字列内で「%」を使う【PHP】
% – パーセント文字。引数は不要です。
PHP: sprintf – Manual
% – パーセント文字。引数は不要です。
PHP: sprintf – Manual
サイトを国際化するにあたってgettextを使って、mo/poファイルを作って翻訳を行うということはよくあり、今触っているシステムでもFuelの下で(Fuelのi18nは使わずに)gettextを使って日本語版と英語版の切り替えを実現しています。当然、このファイルは頻繁に更新されるわけですが、ローカルで確認していると更新後にロケールが正しく取得されずに日本語版で英語が表示されてしまうことがよくあります。何度かページ更新したり、時間をおいたりすると直るんですが、ローカルならまだしも本番環境で同じことが起こったら軽く事故ですね。ファイルサイズとかサーバスペックとかでキャッシュ更新タイミングが決まってるのか、運良く本番環境では発生していなかったようですが。
(今どきFTPですか?っていう議論はさておき)FTPサーバにアップロードするってこれまでも需要がありそうだったのになぜかやったことがなかったので、調べてやってみた。サンプルコードはこんな感じ。
1度使うと2度とそれ無しの生活に戻れない、それがフレームワーク。 PHPで代表的なフレームワークと言えば、「Zend Framework」とか「Symfony」とか「CakePHP」とか「FuelPHP」とか。最近だと「Laravel」というフレームワークが人気のようです。 2014年 Webアプリケーションフレームワークトレンド(PHP / Java / Ruby / Python / Perl) – Qiita これらはサービスを提供するのに必要な機能がすべて揃っている、いわゆる「フルスタック」というやつで、それさえ入れればすべて解決する(自分で何かを開発する必要は無い)一方で、インストールするにはある程度の知識と権限が必要。また少しツールを作りたいとか、小さいサービスを作りたいだけとか言った場合には、使わない機能が多すぎて逆にコストが高くなってしまいます。 で、最近流行ってるのは機能は最低限しかないけれども、インストールするコストが低く容量も小さいいわゆる「マイクロフレームワーク」というもの。代表例は「Slim」とか「Silex」とか「Limonade」とか。 今携わっているお仕事は基本「Webデザイナー」なので、がっつりプログラミングすることは少ないのですが、それでも「APIを叩いて業務を効率化したい」みたいな欲求はあるわけで、ローカルに仮想サーバ立ててコーディングしてみたいなこともやっています。でもWebサービスとして大々的に公開するものでは無いので、フレームワークとしては機能も拡張性も最低限でいい。なにより、会社が借りているロリポップ(しかも下から2番目のプランでSSHは使えないし、MySQLは1つしかデータベースを作成出来ない)では、フルスタックのフレームワークを入れるのはなかなかに困難。 というわけで、その場がしのげればいいやと思ってマイクロフレームワークである「Slim」を入れてみたらば、これがなかなか面白くて今やってる仕事の規模ならまあ許せる範囲の機能だったので、軽くだけ紹介しようかと。
macで開発するに当たり、半年くらい「NetBeans」を使っていたのですけど、どうもコード補完の動作が怪しいことがあって、CSSの補完をしなくなってしまうことがあるとか、他のPHPファイルのメソッドを補完してくれないとか(何か設定したら良いんでしょうけどわからなかった)、ちょっと不便に感じてきたのでWindowsで使い慣れた「Eclipse」に戻りました。出戻り。
仕事の関係で楽天市場関連の作業をしています。 楽天市場には、店舗が自分の出品している商品情報などを取得するAPI(RMS WEB SERVICE)があるのですが、ものがものだけに情報が少なく楽天のドキュメントも最低限しかない(その上、一般ユーザー向けの「楽天ウェブサービス API」と混同しやすい)んですよね。ちゃんと理解してるのは在庫連動ソフトを作ってる会社のエンジニアくらいなのかな。ま、仕方ない。
毎月投稿している記事に「Access Report」というものがあるんですが、この記事を生成するに当たっては、
ダンプの結果を綺麗に整形して表示してくれるモジュール「Xdebug」はPHP開発の定番ですが、今開発しているサービスであるタイミングから表示が崩れてしまいました。具体的には改行されなくて1行になってしまう(上画像参照)。 PEAR/PECLの変更も行っていたのでサーバの設定の問題だと考えてあれこれいじっても直らず、結果的にはGridSystem導入によるリセットCSSの影響であることが解りました。なんだそれ。
2014/03/13 追記「PEAR::Services_Hatena」は更新が止まってますし更新もしていないので、はてなの仕様変更だと思うのですが、上手く動かなくなってます。3/5から。 具体的には、
この問題ははてなのWSSE認証の仕様変更により生じたものでした。新しい仕様では「ユーザー名とパスワード」ではなく「ユーザー名とAPIキー」で認証することが求められます。「APIキー」とははてなで設定される「投稿用メールアドレス」の@の前の文字列です。これをパスワードの代わりにServices_Hatenaで使用してあげることで問題なく処理出来るようになりました。