タグ

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

  • composer-plugin-qaでphpunitコマンドを実行 - Qiita

    composer-pluginの一種なんだけど、ちょっと面白いなと思った。 インストール(グローバルでもいいし、パッケージローカルでもOK)すると、composerのサブコマンドに、qa:から始まるものが色々生える。 webysther/composer-plugin-qa 自体は、特に何かをrequireしているわけではなく、このサブコマンドを生やすという機能単体で実装されている。 composer qa:testがPHPUnitに対応していて、ローカルにインストールされた vendor/bin/phpunit と同等の意味になる。 他にもphpcbf, phpcsなどのツールも、composerのサブコマンドから叩ける用にしてくれる。 vendor/bin/phpunitの代替手段 - Qiita scriptsで頑張ってcomposer testなどのサブコマンドを生やしている人も多

    composer-plugin-qaでphpunitコマンドを実行 - Qiita
    tuki0918
    tuki0918 2018/01/21
  • PHPの高速オシャレ危険配列ライブラリspindle/collectionを作っている話 - Qiita

    昔、こんな記事を書いたことがあるのですが、 PHPで高速オシャレな配列操作を求めて - Qiita やっぱりforeachを書きまくってて疲れてきたので、コレクションライブラリとして仕立てました。 spindle/spindle-collection: The fastest php collection library ※割とAPIに悩んでいるので、まだしばらくは0.X系にしておくつもり。0.0.2までは無かったことにして下さい。 使い方 <?php require 'vendor/autoload.php'; use Spindle\Collection\Collection; (new Collection(range(1, 100)) ->filter('$_ % 10 === 0') ->map('$_ * 2') ->assignTo($collection); echo $c

    PHPの高速オシャレ危険配列ライブラリspindle/collectionを作っている話 - Qiita
    tuki0918
    tuki0918 2017/06/28
    扱いやすいcollectionは必需品
  • 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
    tuki0918
    tuki0918 2016/12/22
  • 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
    tuki0918
    tuki0918 2016/11/28
  • 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
    tuki0918
    tuki0918 2015/05/25
  • packagist.orgのミラーサーバを立ててcomposer updateを18倍速くする #packagist - Qiita

    現状報告はこちら packagist.JPの現状について(2015年12月): Architect Note 以下原文 PHPのモダンな依存関係解決ツールであるcomposerですが、動作が遅いですよね。 私も常日頃から遅さを実感しており、何とかしたいと思っていました。 つい先日、GCを切るというハックによってだいぶ速くなりましたが、それでもpackagist.orgからのダウンロード部分は変わらず遅いままです。 Composer を倍速にした、たった 1 行のコード - Shin x blog 例えば、symfony/symfonyのインストールを考えてみます。 # ベンチマーク用の環境準備 $ mkdir composer-bench $ cd composer-bench $ composer require 'symfony/symfony:*' # ベンチマークの公平性のためメタ

    packagist.orgのミラーサーバを立ててcomposer updateを18倍速くする #packagist - Qiita
    tuki0918
    tuki0918 2014/12/07
  • コードをまとめる技術としてのイテレータとジェネレータ - Qiita

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

    コードをまとめる技術としてのイテレータとジェネレータ - Qiita
    tuki0918
    tuki0918 2014/08/25
  • 1