PHP(xdebug)+IntelliJでブレークポイント置いてるのに、そこで止まってくれないとき
xdebugの設定もちゃんとして、動いているっぽいのに、止まらずスルーされてしまう場合。
phpは5.6.21、xdebugは2.4.0、IntelliJは以下。
IntelliJ IDEA 2016.1.3 Build #IU-145.1617, built on June 3, 2016 JRE: 1.8.0_76-release-b198 x86_64 JVM: OpenJDK 64-Bit Server VM by JetBrains s.r.o
まず、ブレークポイントを置いている該当のコードを実行する。
そうすると、デバッグの設定が正しければ、IntelliJのログ窓で、
Waiting for incoming connection with ide key 'FOOBAR'
という表示が、 connected
に変わる。
ここが変わらない場合は、 http://www.1x1.jp/blog/2014/08/how-to-setup-php-remote-debug-with-vagrant-vm.html などを見ながら設定をしなおさないといけない。
次に、php.iniファイルで、以下の設定を入れる。
xdebug.profiler_enable=1 xdebug.remote_log=/var/log/xdebug_remote.log
そして、以下を実行する。
$ sudo touch /var/log/xdebug_remote.log $ sudo chomod 666 /var/log/xdebug_remote.log
そして、再度スクリプトを実行する。 ログに何か吐かれたら成功。
もし、ブレークポイントを置いているなら、以下のようにブレークポイント置いた行で、 breakpoint_set
というログが見られるはず。
<- breakpoint_set -i 6 -t line -f file:///vagrant/workspace/some_command.php -n 37 -> <response xmlns="urn:debugger_protocol_v1" xmlns:xdebug="http://xdebug.org/dbgp/xdebug" command="breakpoint_set" transaction_id="6" id="187390001"></response >
どこかに繋げないとか違うエラーが出ていたら、そこも直さないといけない。
ここまで確認できたら、ブレークポイントを置いた付近に以下のコードを埋め込む。
xdebug_break();
そうして、再度スクリプトを実行する。
ここで、僕の場合は以下のエラーがIntelliJのログに見られた。
Remote file path '/foo/bar/some_command.php' is not mapped to any file path in project
ということで、マッピングが設定されていないのが原因。
このエラーログの下にある Click to set up path mappings
をクリックして、マッピング情報を設定する。
あとは、再度実行したら、ブレークポイントで止まってくれるはずです。
実行時にエラー出して欲しかったわー。
【永久保存版】六本木でランチするときに使う店をまとめてみた
職場が六本木に移り、ランチを六本木でするようになりました。
少しずつお店も把握できてきたので、まとめてみたいと思います。
ただし、六本木は高いです。渋谷でまとめたところは800円から1000円ぐらいでしたが、六本木は1100円から1300円します。 メニュー見て1200円でも高って思うのに、さらに消費税が入るとか余裕であります。
なので、無碍にオススメはできませんが、六本木寄るときがあったら、行ってみてください。
渋谷編のこちらもどうぞ。 blog.masudak.net
目次
海鮮・寿司
まず僕が好きな海鮮系。
貝政
http://tabelog.com/tokyo/A1307/A130701/13122868/tabelog.com カウンター席があるお寿司屋さんです。回るところではありません。 空気もいい感じで入ってるので、握り好きな部類に入ります。
サラダが付く。
サラダと、握り8貫に、巻物が一個ついて1100円。 握り12貫のタイプだと1300円。うまい味噌汁もおかわり自由だった。
しかも日によってネタが全然違うので、面白いですね。
とある日Aの握り1。
とある日Aの握り2。
とある日Bの握り1。
とある日Bの握り2。
とある日Bの握り3。
鮨 清山
http://tabelog.com/tokyo/A1307/A130701/13005317/tabelog.com
ヒルズ内のお寿司屋さん。ワーカーズ特典(ヒルズ勤務者特典)で100円ぐらい安くなります。 カウンターで握ってくれるので、雰囲気はいいかな。
握り。
デザートもつくからいいですね。
ぴんとこな
http://tabelog.com/tokyo/A1307/A130701/13005300/tabelog.com
ヒルズ地下のお寿司屋さん。
握り。
おまかせ丼。もうちょっとネタがいいといいんだけどなー。
魚市
http://tabelog.com/tokyo/A1307/A130701/13042849/tabelog.com
六本木駅からすごい近いお魚料理屋さん。
海鮮丼おいしいですよ。他にもマグロ丼とかありましたね。
すしざんまい
http://tabelog.com/tokyo/A1307/A130701/13009721/tabelog.com
チェーン店ですが、ネタが残念すぎるということはないですね。おいしいですよ。 ちょっとだけ小汚さがあるのと、ガヤガヤ感あるのは否めないかな。
お寿司。
海鮮丼。
磯丸水産
http://tabelog.com/tokyo/A1307/A130701/13163635/tabelog.com
シンプルな海鮮丼。1000円行かないですが、ネタを考えるとこんなもんかなーと。
アジア料理
六本木はアジア料理が一番うまいんじゃないかというぐらい美味しいお店が多いです。 ちょっと値段は張りますが、おすすめですよ。
ジャスミンタイ
http://tabelog.com/tokyo/A1307/A130702/13026948/tabelog.com ここおいしいです。曜日によってメニューが違うので、色々楽しむことができます。
タイスキラーメン
春雨うまいですね。味付けが日本人向けな気がして、これが一番好きな気がする。
パッタイ。個人的にはちょっとソース濃いめかな。月曜と木曜しかなかった気がする。
ベトナミーズ・シクロ
http://tabelog.com/tokyo/A1307/A130701/13001957/tabelog.com ここも美味しいです。フォーがおいしいですし、デザートも好きにカスタマイズして作れるタイプのお店です。
シンガプーラ
http://tabelog.com/tokyo/A1307/A130701/13048434/tabelog.com シンガプーラは独特な味ですが、シンガポール料理を楽しむことができます。 日本人向けな味というよりは、おそらく現地はそういう味なのかなという印象がありました。
お肉料理ですね。ライスが欲しくなるようなほどよい味の濃さがあります。
ラクサ。東南アジアの麺料理ですね。日本人にとってはちょっと味がうすいかも。
おいしいお茶。
おいしいデザート。東南アジアのデザートって甘くておいしいですよね。
肉野菜炒め。黒椒五目という料理です。その名のとおり、黒胡椒がすごく効いておいしいですよ。
御膳房
http://tabelog.com/tokyo/A1307/A130701/13001852/tabelog.com 食べログTOP 5000にも選ばれる美味しい中華屋さんですね。
とろみのついた麺ですね。
こちらはセット。ちょっと高めですが、おいしいです。
南翔饅頭店 六本木ヒルズ店
http://tabelog.com/tokyo/A1307/A130701/13004433/tabelog.com
角煮丼。小さいのがつきます。
小龍包。無難で王道ですが、美味しかったですよ。
うどん・麺類
うどんくろさわ
http://tabelog.com/tokyo/A1307/A130702/13001238/tabelog.com うどんがおいしいお店です。おでんやメンチカツもあるようで、すごい力入れてる印象はありました。
とろろうどん
京風うどん
黒豚カレーうどん
実之和
http://tabelog.com/tokyo/A1307/A130701/13036017/tabelog.com 社内の人にも人気のあるラーメン屋さん。
個人的にはカレーとラーメンは合わない気がして、そこまでは惹かれません(笑)
カレーラーメン。
カレーつけ麺。つけ麺もあるのです。
あと、半ライスが無料でしたよ。
つるとんたん
http://tabelog.com/tokyo/A1307/A130701/13001859/tabelog.com
六本木のうどんといえば、つるとんたん。有名ですよね。
1.5玉にしようが、値段は一緒。2玉とかにしても値段一緒なんだろうか。
(2017/01/17追記: 3玉までは無料のようです!)
玉子とじうどん
やまかけのおうどん
めんたいあんかけ玉子とじうどん
玄瑛
http://tabelog.com/tokyo/A1307/A130701/13188460/tabelog.com 店主が気さくでした。タイミングがあればフレンドリーに喋ってくれます。 量に関しては、僕でもほんの少し少ないって感じたので、普通の男性とかであれば足りないって感じるかも。
玄瑛流ラーメン
麺屋武蔵 虎嘯
http://tabelog.com/tokyo/A1307/A130701/13131171/tabelog.com 麺屋武蔵系列。お肉がジューシーですね。
個人的には、渋谷のほうが好きかもしれない。
AFURI 六本木交差点 (阿夫利 あふり)
http://tabelog.com/tokyo/A1307/A130701/13165303/tabelog.com
さっぱり系のラーメンです。あっさり食べれるので、女子にもいいかもしれない。
麺匠 竹虎 六本木店
http://tabelog.com/tokyo/A1307/A130701/13116548/tabelog.com ドロドロ系のラーメン。個人的にはもうちょっとさっぱりでもいいかなと思いました。
和食
やまね
http://tabelog.com/tokyo/A1307/A130703/13001162/tabelog.com ちょっと六本木駅から歩く(広尾の方)ので、無理にオススメはできないですが、ここほどご飯が美味しいところも少ないのではないでしょうか。The定食屋という感じですが、雰囲気あって、地方に旅行来たみたいな感じになれるので、おすすめですよ。
ここにあるおかず(ふりかけ、卵、佃煮等々)はすべて無料なんです。取り放題。
刺身定食。これ美味しかったですね。ご飯がうまいから、余計うまく感じるんだと思います。オススメ。
三船
http://tabelog.com/tokyo/A1307/A130701/13092075/tabelog.com 三船は、あの三船敏郎の世界観が現れた料理屋さんです。音楽とかは黒澤映画の音楽なので、好きな人にはいいかもしれません。
海鮮丼。三船の海鮮丼って、マグロ単品なのか、海鮮丼という感じではなかった。
焼き魚定食。
魚屋 がぶ
http://tabelog.com/tokyo/A1307/A130701/13094750/tabelog.com ここのひつまぶしは美味しいですよ。量はわりとあるので、ご飯少な目でもいいかもしれません。
てんぷら 味覚
http://tabelog.com/tokyo/A1307/A130701/13016615/tabelog.com
天ぷら屋です。天丼がおいしいですね。
この写真のは、2000円分自由にネタ選んでもらえるタイプの天丼です。
会社のチームランチのように会費が出るときは、予算伝えて頼むといいですよ。
びたろー
http://tabelog.com/tokyo/A1307/A130701/13159579/tabelog.com
六本木には沖縄料理もあります。無難ですが、おいしかったですね。
イタリアン・フレンチ・アメリカン・ブラジル料理
リオグランデグリル 六本木
http://tabelog.com/tokyo/A1307/A130701/13167392/tabelog.com チキンもうまいのですが、サラダ取り放題、カレー取り放題、ドリンク飲み放題(確かワーカーズ特典)なので、楽しめます。カレー美味しかったですよ。
トンネル+
http://tabelog.com/tokyo/A1307/A130701/13131100/tabelog.com
写真で撮ったチキンも普通にうまいのですが、同僚はサラダを頼んでました。15種類ぐらいある野菜などの中から5種類ぐらい選んで、自分の好きなサラダを作れるようです。女子にはいいかもですね。
食後のドリンクもおいしかった。
イルリトローボ
http://tabelog.com/tokyo/A1307/A130701/13140229/tabelog.com
すごい混んでいるからか、出てくるまで時間かかったので、そんなに印象はよくなかったですね。
ただ、量はかなりあります。量食べたい人にはかなりおすすめです。
デルソーレ
http://tabelog.com/tokyo/A1307/A130701/13006978/tabelog.com 六本木駅から5分ぐらいのところにあるイタリアン。
テラス席もあり、雰囲気のいいカフェみたいな感じのイタリアンです。 超うまいというレベルまでは行きませんが、無難に使える感じですね。女子ウケしそう。 あと、1000円ぐらい(ドリンクはプラス100円)なので、六本木のなかではリーズナブルですね。
サラダがつく。
メインは色々ありましたが、これは肉と魚のセット。魚と肉どちらを多めにするか選べるんです。
デザートもつく。無難ですが、おいしかったです。
リゴレット
http://tabelog.com/tokyo/A1307/A130701/13049114/tabelog.com
ここは何よりも10名ぐらいで入れるスペースがあるところです。いきなり行っても、収容可能なぐらい広い。
食後のドリンクもつきます。味はもうちょっと頑張って、質をあげてもらえると嬉しかったりします。
ROTI
http://tabelog.com/tokyo/A1307/A130701/13005433/tabelog.com
おいしいですが、高いですね(笑)ワーカーズ特典で100円ぐらい安くなりますが、BLTサンドで1000円超えはツラい・・・
フレンチキッチン
http://tabelog.com/tokyo/A1307/A130701/13003997/tabelog.com グランドハイアット内にある素敵なフレンチです。雰囲気がセレブ感満載なので、会食向けかな。
メイン料理だけじゃなく、デザート、ドリンクもすごく美味しいので、会食とかで是非おすすめです。
焼肉・牛タン
Kintan
http://tabelog.com/tokyo/A1307/A130701/13166084/tabelog.com
駅からも近いですし、おいしいですね。
あと、LINEに登録するとドリンクとかもついてきます。
まんぷく
http://tabelog.com/tokyo/A1307/A130701/13189205/tabelog.com
炭火焼的なやつ。おいしかったですね。おすすめ。
牛タン一徹
http://tabelog.com/tokyo/A1307/A130701/13101149/tabelog.com
ここも美味しいのですが、高いです。とろろつけると、値段があがるので、つけずにコスト抑えるとかしないと高い。
開化屋
http://tabelog.com/tokyo/A1307/A130701/13060572/tabelog.com ヒルズ内の鉄板焼きです。ヒルズなので、セレブ感にあふれた雰囲気はありますね。 でも、ちょっとだけデパートの最上階的な何ともいえない雰囲気は抜けないですね。
前菜。
カルビ丼。懇親会で行ったので、ちょっと高めのやつです。限定何食かのやつで、1600円ぐらいした記憶あります。
僕にはちょっと量が多かった。成人男性の標準ぐらい食う人は大丈夫かと。美味しかったですよ。
終わりに
ここまで六本木のランチについて紹介できる限り、書いてみましたが、まだまだ行けてないお店もあるので、随時更新していこうと思います。
是非気になったお店があったら、行ってみてください!ではでは!
こちらもどうぞ!
渋谷の美味しいお店を特集しています!! blog.masudak.net
追記履歴
2016/07/02: デルソーレ、やまね、開化屋を追加
過去に戻れ!reflogを使いこなしてこそGit中級者である。
Gitの一番好きなコマンドといっても過言ではない reflog
。
すごく便利なので、使いましょうと言う話です。
簡単にいえば、 reflog
で過去を探索し、 reset
で好きなタイミングに戻ることができるというテクニックです。
開発していると、ここまでいじっちゃったけど、ここまで戻したいとかそういう欲が出てきます。 そういうときに是非使って欲しいコマンドです。
では説明していきます。
まず説明用に、いくつかファイルを作り、コミットなり色々しときます。
$ cd ~/work/ $ mkdir git $ cd git/ $ git init Initialized empty Git repository in /Users/masudak/work/git/.git/ # 適当にファイルを作る $ touch sample.txt $ git status On branch master Initial commit Untracked files: (use "git add <file>..." to include in what will be committed) sample.txt $ git add sample.txt $ git commit [master (root-commit) 4544b55] initial commit 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 sample.txt $ ls sample.txt # ブランチきる $ git checkout -b hotfix-sample Switched to a new branch 'hotfix-sample' # また適当にファイルを作る $ touch sample2.txt $ git add sample2.txt $ git commit [hotfix-sample 3d7c0f6] sample 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 sample2.txt $ ls sample.txt sample2.txt
ここで reflog
!!
こんな感じで、履歴を見ることができます。大事なのは一番左の列の文字の羅列(ハッシュ)。
$ git reflog 3d7c0f6 HEAD@{0}: commit: sample 4544b55 HEAD@{1}: checkout: moving from master to hotfix-sample 4544b55 HEAD@{2}: commit (initial): initial commit
4544b55
に戻ってみましょう!
$ git reset --hard 4544b55 HEAD is now at 4544b55 initial commit
戻れたかみてみる。
$ git log -1 commit 4544b551e874d864a55de13ced8d5f8ce4045795 Author: masudak <masuda@sample.com> Date: Thu Jun 23 19:52:35 2016 +0900 initial commit $ ls sample.txt
戻れたー。
終わりに
非常に便利ですので、覚えておくとかなり移動が楽になります。 是非是非使ってみてください!ではでは!
こちらもどうぞ。
phpenvして、composerして、php-cs-fixerして。
まずphpenvでphpをインストールする環境を作る。
$ curl -L http://git.io/phpenv-installer | bash
.bashrc
とか .zshrc
でパスが通るようにする。
if [ -d "${HOME}"/.phpenv ]; then export PATH="$HOME/.phpenv/bin:$PATH" eval "$(phpenv init -)" fi
インストール。
$ phpenv install 5.6.17
インストールこけることがあったら、以下。
$ brew link libpngとか $ brew install libmcryptとか $ brew link openssl --forceとか
入った。
$ which php /Users/masudak/.phpenv/shims/php $ php -v PHP 5.6.17 (cli) (built: Apr 19 2016 20:03:03) Copyright (c) 1997-2016 The PHP Group Zend Engine v2.6.0, Copyright (c) 1998-2016 Zend Technologies with Zend OPcache v7.0.6-dev, Copyright (c) 1999-2016, by Zend Technologies with Xdebug v2.3.3, Copyright (c) 2002-2015, by Derick Rethans
composerいれる。
$ curl -sS https://getcomposer.org/installer | php $ ls /private/tmp/composer.phar /private/tmp/composer.phar $ mv /private/tmp/composer.phar /usr/local/bin/composer $ which composer /usr/local/bin/composer $ composer -V You are running composer with xdebug enabled. This has a major impact on runtime performance. See https://getcomposer.org/xdebug Composer version 1.1.2 2016-05-31 19:48:11
php-cs-fixerを入れる。
$ composer global require friendsofphp/php-cs-fixer
もしくは、以下 composer.json
作って、 composer install
。
{ "require": { "friendsofphp/php-cs-fixer": "*" }, "config": { "bin-dir": "/usr/local/bin/" } }
入った。
$ which php-cs-fixer /usr/local/bin/php-cs-fixer $ php-cs-fixer -V PHP CS Fixer version 1.11.4 by Fabien Potencier
あとは変更したファイルだけfixerにかけるようにして、終わり。
$ git diff --name-only --diff-filter=AMCR master |xargs -n 1 php-cs-fixer fix --dry-run --verbose --diff --level=psr2
facebook-php-ads-sdkで "User XXXXXXXX can not update audience YYYYYYY" 出たときの対応
audienceのIDがYYYYYYYとわかっているので、Graph Api Explorerにアクセス。
FQL Queryで、GET →
/v2.6/YYYYYYY としてクエリを作成。
実行して、左カラムから、ID
や NAME
を指定して、返ってくるJSONを見る。
これでターゲットのオーディエンスが間違ってないことを把握すると、 lookalike
をUPDATEしようとしていたとか分かる。
lookalike
にaddUserなどはできずUPDATEできないので、気をつけましょう。ではでは!
レビューで、その無名関数ほんと必要なの?という指摘を受けたことはありますか
「その無名関数本当に必要なの?」という指摘。
僕はこの指摘をもらって至極まっとうだと思ったのですが、みなさまはいかがでしょうか。
ざっくりですが、こんな感じで、値のうちマッチしたものだけを抽出し処理をするような array_filter()
と array_map()
。
$arr = ['key1' => 'val1', 'key2' => 'val2', 'key3' => 'val3']; $extracted = array_filter($arr, function($val) { return $val === 'val3'; }); // 更にarray_mapで複雑なことするとか $ucfirst_extracted = array_map(function ($v) { return ucfirst($v); }, $extracted); var_dump($extracted);
こう結果が返ってきますね。
array(1) { 'key3' => string(4) "Val3" }
でも、以下のほうが読みやすいじゃんという話です。
$arr = ['key1' => 'val1', 'key2' => 'val2', 'key3' => 'val3']; $ucfirst_extracted = []; foreach ($arr as $key => $elem) { if ($elem === 'val3') { $ucfirst_extracted[$key] = ucfirst($elem); } }
そのとおりだと思ったのでした。
特に array_map()
などと組み合わせると暗号文の匂いがしてきて、読みやすいとはとても言えません。
array_filter()
, array_map()
, 無名関数等々使いドコロによってはいいのでしょうが、読みやすさも大切かなと。
(メモリ使用量とか処理速度の差異とか出してないから、状況によっては違うのかな・・・)
読みやすいコードを書いていきたいので、書いてみました。 ご意見あれば是非!ではでは!
facebook-php-ads-sdkのデバッグの際によく使うリンク集
最近 facebook-php-ads-sdk
を触ることが多いので、メモがてら残しておきます。
github.com
レファレンス
読みましょう。 developers.facebook.com
広告周りのドキュメント
読みましょう。 developers.facebook.com
Graph API Explorer
SDKを使わず、APIに直接リクエストを投げられます。 APIがどこまで対応しているかとか直にわかるので、使ってみましょう。 developers.facebook.com
Access Token Debugger
アクセストークンが有効かどうか調べられます。期限きれとかに気づけます。 developers.facebook.com
bug フォーラム
バグ等問合せがなかったか、ここで調べられます。 developers.facebook.com
終わりに
ここまで述べたところを調べたり、SDKの中身見たりしているうちにすこーしずつ頭にイメージができあがってくるかと思います。
それまではひたすら慣れて、詳しい人がいたら聞いて、頑張りましょう!