タグ

ブックマーク / qiita.com/Hiraku (7)

  • php-buildを単独で使う - Qiita

    途中で気づいたけど y_utiさんの記事にめっちゃ詳しく書いてあったから、皆こっちを読むといいよ! php-build をカスタマイズして使う - y_uti のブログ ここから元の文章↓ php-buildは単独でインストールすることもできる。 phpenvやphpbrewの雑な比較 - Qiita phpenvとrbenvの競合で消耗した記憶から、phpenvは入れなくてもいいんじゃないかって気になった。というわけで単独でセットアップする方法についてまとめる。 インストール php-buildPHPの新しいバージョンがリリースされる度にアップデートが走る。そのためgit pullを頻繁にできたほうが良い。 私はhomeをpeco+ghqの標準的なディレクトリ構成にしているので、素直にその構成に従ってgit cloneする。

    php-buildを単独で使う - Qiita
    hiro_y
    hiro_y 2017/03/25
  • PHPで高速オシャレな配列操作を求めて - Qiita

    PHPには大量の配列操作関数が用意されています。 これらの関数、イマイチ書き味が悪いということで、よくPHPがDISられるポイントになっています。 お題として、こんな感じのコードを書きたいとしましょう。(意味は特にないです) 0~10000のうち、偶数だけを抽出して自乗し、結果が20を超えるものを足しあわせよ array_xxx系の関数だけで入れ子にしながら書くとこんなことになります。 echo array_sum( array_filter( array_map( function ($v) { return $v ** 2; }, array_filter(range(0, 10000), function ($v) { return $v % 2 === 0; }) ), function ($v) { return $v > 20; } ) ); 読めたもんじゃないですね。 関数の

    PHPで高速オシャレな配列操作を求めて - Qiita
    hiro_y
    hiro_y 2016/06/20
  • PHPで列挙型(enum)を作る - Qiita

    列挙型 - Wikipedia まず列挙型の定義は〜となるんだけど、ここでは「あらかじめ定義した値のいずれかしか取らない特殊な型」という感じを想定してます。 要はSplEnumみたいなのですが、拡張モジュールの力を借りなくても、PHPだけで作れます。リフレクションを使うだけ。 <?php abstract class Enum { private $scalar; public function __construct($value) { $ref = new ReflectionObject($this); $consts = $ref->getConstants(); if (! in_array($value, $consts, true)) { throw new InvalidArgumentException; } $this->scalar = $value; } final

    PHPで列挙型(enum)を作る - Qiita
    hiro_y
    hiro_y 2016/05/28
  • Composerの認証オプション色々 - Qiita

    Composerのリポジトリは簡単な認証であれば設定できるようになっている。基的に$(composer config -g cache-dir)/auth.jsonに記載していくが、configコマンドでも設定が可能。 すべてドメインごとに設定できる。 Basic認証 なんかconfigコマンドに渡すhttp-basic.という部分がドメインの一部っぽく見えるが関係なくて、http-basic.まではJSON記法、それ以降がドメインを指す。(http-basic[example.com]みたいな記法だったら分かりやすかったのに。。) たとえばexample.comに対してユーザー名:aribaba パスワード:opensesameが必要だったとしたらこんな感じ。 # set $ composer config -g http-basic.example.com aribaba opens

    Composerの認証オプション色々 - Qiita
    hiro_y
    hiro_y 2016/05/09
  • WebAPIリクエスト仕様書としてcurlコマンドのご提案 - Qiita

    WebAPIの仕様を記述する方法はいくつかあると思う。 普通に日語で記述する JSON Hyper-Schema、WADL、RAML、Swaggerなどを使う 仕様書の代わりにプログラムを書く HTTPメッセージそのものを記述しておく でも、文法にばらつきがあったり、読みにくかったり、ツールのセットアップが面倒だったり、どれもイマイチな所があって、手軽な方法が欲しいと思っていた。 何気なくcurlコマンドのオプションを調べていたら、「もうこれでAPIドキュメント扱いにしちゃえばいいんじゃね?」と思えてきたのでメモしておく。 curlコマンドのおさらい curlコマンドはlibcurlの付属コマンドで、最近のUnix系OSなら大抵最初から入っていると思う。コマンドの詳細はmanを読んでいただければ。 cURL - How To Use (マニュアルページ日語訳) curlコマンドのオプシ

    WebAPIリクエスト仕様書としてcurlコマンドのご提案 - Qiita
    hiro_y
    hiro_y 2015/05/25
  • Zend\LogでFingersCrossedモード(問題発生時に過去ログを一気に出力) - Qiita

    アプリケーションログは、何か障害が発生した時は調査の起点になりますので大事ですよね。 ロガーは通常、ログレベルを設定できて、debug用の情報などは開発環境だけ出力し、番環境では抑制しておきます。無駄な大量のログ出力は、それなりにパフォーマンスに悪影響を与えますからね。 しかし、何かエラーが起きたときは、ログ出力が抑制されていることにより、原因がわかりにくくなってしまいます。 Monolog特有の機能であるFingersCrossedは、このジレンマを解消します。 ある特定のレベル(CRITICALなど)のログ出力を指示した瞬間、ログレベルを切り替え、過去にさかのぼってINFOなどのすべてのログを出力します。 これにより、問題が起きた時だけ詳細にログを吐くことができ、障害対応に効果を発揮します。 Monologのfingers_crossedがようやくわかった - ゆっくり*ゆっくり [

    Zend\LogでFingersCrossedモード(問題発生時に過去ログを一気に出力) - Qiita
    hiro_y
    hiro_y 2014/07/06
  • コードをまとめる技術としてのイテレータとジェネレータ - Qiita

    ジェネレータが5.5から入ったことで完全に空気と化した(?)PHPのイテレータを、ちょっと違う面からまとめたいと思います。 コードをまとめるということ Don't Repeat Yourself(DRY)という言葉があります。達人プログラマーというに出てくる言葉です。 信頼性の高いソフトウェアを開発して、開発そのものを簡単に理解したりメンテナンスできるようにする唯一の方法は、DRY原則に従うことです。 「すべての知識はシステム内において、単一、かつ明確な、そして信頼できる表現になっていなければならない。」 (p. 27) 端的に言えば「同じことを二度書いてはいけない」ということですね。この原則を当てはめなくてもいい例外のパターンもいくつかあるのですが。。 コードにおいて「同じことを二度書いてはいけない」を忠実に守ろうとすると、同じコードを何度も書きたくなったら、何らかの方法でそのコードを

    コードをまとめる技術としてのイテレータとジェネレータ - Qiita
    hiro_y
    hiro_y 2013/12/10
  • 1