OSX(El Capitan)で、MAMPのPHPをコマンドラインで実行するのが面倒なので、シンボリックリンクで便利に繋げてみた。

絶賛MAMP PROユーザーです。(たった59USDで劇的に便利になるのに意外と周りの人が使ってない……)

で、最近のPHPでの開発となると、コマンドラインでPHPを叩いてテンプレートを作成する!みたいな便利機能が多いです。
で、絶賛MAMP PROユーザーなので(しつこいw)、OSXのコマンドラインから叩くPHPと、実際にブラウザ経由で走るPHPのバージョンが違ったり、DBに接続する方法が違ったりと面倒なことに直面します。

今までは、

みたいに長々とMAMPのPHPのフルパスを打ってた(なぜ!?)んだけど、いい加減ちゃんとやれよ!と怒られそう(誰に?)なので簡便化してみました、というご報告。

まず、Googleさんに聞いてみたら、それらしい記事をご紹介いただいたので、そのままやってみたら、Operation not permittedって怒られる。
なんで?とよくよく見てみたら、その記事の冒頭にちゃんと「怒られた方はこちら」ってちゃんと書いてた。

ようするにEl Capitanの場合、Rootlessというセキュリティ機能が追加されて、/usr/binへの変更ができないんだそうです。

先の記事だと「その機能を無効にしちゃおうぜ!」って方法なんだけど、さすがにそれはヤダ。

というわけで、自分のユーザーディレクトリに各MAMP PHPのバージョンのシンボリックを配置しちゃおうぜ!ってのが本題です。
(前振りが長くて申し訳ありませんでした)

続きを読む OSX(El Capitan)で、MAMPのPHPをコマンドラインで実行するのが面倒なので、シンボリックリンクで便利に繋げてみた。

WordPressの固定ページで、WP_Queryで記事を取得するもページネーション(the_posts_pagination)がうまく動作しない場合の解決方法。

ちょいと調べてみたけど、結構その対応手段がネットに公開されていなかったので、ソース調べてみた。

get_the_posts_pagination() 内で、$GLOBALS['wp_query']->max_num_pages が1以上じゃないと処理をしないのに、固定ページ内で WP_Query を回しても $GLOBALS['wp_query']->max_num_pages には値が入っていないのが原因。

なので、自分でぶっ込んでやれば良いみたい。

こんな感じ。(2016年1月28日現在。WordPressのバージョンは4.4.1)

画像をスクエアにトリミングしてサムネイル表示!的な超シンプルjQuery Pluginを書いてみた。

CMSから画像を登録して、表示するときには正方形にトリミングされたサムネイルを表示したい!というのがよくある相談です。
WordPressなんかだと、WordPress自体がPHPで物理的にサムネイル画像を作成するので問題ないんですが、オリジナルのCMSとか静的HTMLサイトとか、外部(FlickrとかTumblrなど)のサービスから画像だけを転載する場合なども、表示上だけ正方形で表示したい!なんて言われて面倒なんですよね。
既存のjQuery Pluginなども調べてみたけど、結構コッテリ(多機能)なPluginが無い。(検索能力が無いだけの可能性もある)

なので、アッサリ・サッパリ系のPluginを作ってみたわけです。

github: jquery.imgFitter.js
demo: jquery.imgFitter.js

動きとしては、
・IMGタグのSRCの画像を、CSSで背景画像に指定して、background-size: coverに設定。
みたいな感じ。ただそんだけ。

WordPressも超便利になってきた反面、システムとしてのボリュームがコッテリしてる。
PHPのフレームワークもそう。いろいろ肥大化してる。
だからマイクロフレームワークなんて言葉も出てくる。

マイクロ。この言葉、響き、結構好き。

ちょっと仕事が一段落したみたいなので、こういった単機能なマイクロツールを排出していきたいなぁと思う今日この頃。
みなさん今週も頑張りましょう。

Gitで差分ファイルのアーカイブ(ZIP)を取得する。特に“/usr/bin/git: Argument list too long”と怒られた人向け。

これに至った経緯。

・すでに稼働中のWebサイト(他社が構築したもの)の改修案件。
・既存のソースをすべてGitにぶち込んで、SourceTreeで管理。
・WordPressで構築されているのでファイル多杉。差分ファイルだけを納品したい。

みたいな感じ。

20150528_01
こんな感じで、Commandクリックで2つ選択して、その差分ファイルをZIPで書きだそうぜ!という試み。

手順としては、ターミナルから動作するシェルプログラムを作成して、それをSourceTreeのカスタムアクションに登録して起動させるというもの。

まずはシェルの作成。

diff_archive.sh

ネットでよく見かけるのは、

こんな感じのもの。この場合、差分ファイル数が多すぎる場合、/usr/bin/git: Argument list too longって怒られます。その対策として、多少環境に依存しちゃいますが、xargsでgit archiveに放り込んで行きます。

んで、このシェル(diff_archive.sh)に実行権限を付与。
右クリックの「情報を見る」で、ユーザ行の実行チェックボックスをチェック。

次に、そのシェルプログラムをSourceTreeのカスタムアクションに登録。

20150528_02
SourceTreeの環境設定から、カスタムアクションタブを開いて、アクションを追加。

これで準備完了。
このエントリーの最初の画像のように、2つのコミット行を選択して、右クリック。
カスタムアクションから「指定された差分をZIPで書きだす」(追加したアクションで登録した名称)をクリックで、gitのディレクトリに_diff_archive.zipが書きだされます。

参考サイト

Argument list too longって怒られない人向け
http://ics-web.jp/lab/archives/4475

怒られちゃった人への対処方法
http://blog.shnr.net/gitで差分のエクスポート/

で、このページがその両方をまとめたものになります。

Gitが、おもしろいほどわかる基本の使い方33〈バージョン管理、SourceTree、Bitbucket〉
大串 肇 久保靖資 豊沢泰尚
エムディエヌコーポレーション
売り上げランキング: 4,591