gettextのmo/poファイルを更新したらApacheを再起動する

PHP logo

サイトを国際化するにあたってgettextを使って、mo/poファイルを作って翻訳を行うということはよくあり、今触っているシステムでもFuelの下で(Fuelのi18nは使わずに)gettextを使って日本語版と英語版の切り替えを実現しています。当然、このファイルは頻繁に更新されるわけですが、ローカルで確認していると更新後にロケールが正しく取得されずに日本語版で英語が表示されてしまうことがよくあります。何度かページ更新したり、時間をおいたりすると直るんですが、ローカルならまだしも本番環境で同じことが起こったら軽く事故ですね。ファイルサイズとかサーバスペックとかでキャッシュ更新タイミングが決まってるのか、運良く本番環境では発生していなかったようですが。

続きを読む

【メモ】楽天GOLDのFTPにPHPでファイルをアップロードする

(今どきFTPですか?っていう議論はさておき)FTPサーバにアップロードするってこれまでも需要がありそうだったのになぜかやったことがなかったので、調べてやってみた。サンプルコードはこんな感じ。

ポイント

  • ポート番号を「16910」で設定する
  • パッシブモードをオンにする
割と何も難しいこと考えずに実行出来ました。

続きを読む

PHPマイクロフレームワーク「Slim」を使ってみた

slim.gif 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」を入れてみたらば、これがなかなか面白くて今やってる仕事の規模ならまあ許せる範囲の機能だったので、軽くだけ紹介しようかと。

続きを読む

Eclipseでgetter/setterの自動生成

gettersetter.jpg macで開発するに当たり、半年くらい「NetBeans」を使っていたのですけど、どうもコード補完の動作が怪しいことがあって、CSSの補完をしなくなってしまうことがあるとか、他のPHPファイルのメソッドを補完してくれないとか(何か設定したら良いんでしょうけどわからなかった)、ちょっと不便に感じてきたのでWindowsで使い慣れた「Eclipse」に戻りました。出戻り。

続きを読む

【メモ】 楽天RMS APIを使ってみるテスト

rms.jpg 仕事の関係で楽天市場関連の作業をしています。 楽天市場には、店舗が自分の出品している商品情報などを取得するAPI(RMS WEB SERVICE)があるのですが、ものがものだけに情報が少なく楽天のドキュメントも最低限しかない(その上、一般ユーザー向けの「楽天ウェブサービス API」と混同しやすい)んですよね。ちゃんと理解してるのは在庫連動ソフトを作ってる会社のエンジニアくらいなのかな。ま、仕方ない。

続きを読む

Google Analytics API v3.0でデータを取得するようにプログラムを改修

毎月投稿している記事に「Access Report」というものがあるんですが、この記事を生成するに当たっては、

  • 前月の「ページビュー」「訪問者」を集計して取得しDBに保存
  • 前月の「アクセスTOP10」などのデータを集計して記事にしてMovableTypeに下書き記事として投稿
という2つのプログラムが動いています。今まで特に問題なく動いていたのですが、今月から突然動かなくなってしまいました。調べてみると、今までの僕のプログラムはGoogle APIの古いバージョンで動いていたようで、廃止予告が出てからいつ止まってもおかしくない状況で、それが5月下旬だったということのようです。全然しらなんだ。 というわけでこれを現行の仕様に合わせて改修する必要があります。

続きを読む

【メモ】 GridSystemなどのリセットCSSを導入してXdebugが改行されなくなってしまった場合

12_02.jpg ダンプの結果を綺麗に整形して表示してくれるモジュール「Xdebug」はPHP開発の定番ですが、今開発しているサービスであるタイミングから表示が崩れてしまいました。具体的には改行されなくて1行になってしまう(上画像参照)。 PEAR/PECLの変更も行っていたのでサーバの設定の問題だと考えてあれこれいじっても直らず、結果的にはGridSystem導入によるリセットCSSの影響であることが解りました。なんだそれ。

続きを読む

(訂正あり)PEAR::Services_Hatenaが上手く動いていない影響でいくつか止まってます

2014/03/13 追記
この問題ははてなのWSSE認証の仕様変更により生じたものでした。新しい仕様では「ユーザー名とパスワード」ではなく「ユーザー名とAPIキー」で認証することが求められます。「APIキー」とははてなで設定される「投稿用メールアドレス」の@の前の文字列です。これをパスワードの代わりにServices_Hatenaで使用してあげることで問題なく処理出来るようになりました。
「PEAR::Services_Hatena」は更新が止まってますし更新もしていないので、はてなの仕様変更だと思うのですが、上手く動かなくなってます。3/5から。 具体的には、
  • 複数のブックマークを取得する
  • ブックマークをポストする
あたりの機能が上手く動いていません。複数ブックマークは取得出来ないし、ポストは400で怒られます。その影響で、
  • ブログの記事をはてなブックマークでブックマークする
  • 前日のはてなブックマークのまとめエントリをブログに投稿する
あたりが上手く出来ていませんでした。 というわけで、順次「PEAR::Services_Hatena」を使わずにOAuthを使って取得またはポストするように変更しています。面倒だなあ……とは思いますが、よくよく考えてみればめんどくさがらずにトレンド通りさっさとOAuthに切り替えておけば良かったわけで、まあ良い機会なのかなと思ったりします。自分用のはてな用クラス、更新しないと。

続きを読む