タグ

ブックマーク / blog.tojiru.net (7)

  • composerを速くするプラグイン・prestissimoを作った

    composerが遅くてお嘆きの日PHPerの皆さんこんにちは。 表題の通り、追加インストールするだけでcomposerが速くなるプラグインを作りました。 # インストール $ composer global require hirak/prestissimo # アンインストール $ composer global remove hirak/prestissimo インストールした状態でlaravel/laravelcreate-projectすると、26秒とかでダウンロード完了しました。Laravelは50個ぐらい依存パッケージがあり、同じ環境で普通にインストールすると5分ぐらいは最低かかるので、10倍以上速くなってます。 2016/1/13(水)にPHPBLT#2というイベントがあり、その中で同じデモをしてきました。 Composer並列化プラグイン #phpblt from

    composerを速くするプラグイン・prestissimoを作った
    unarist
    unarist 2016/03/16
  • packagist.JPの現状について(2015年12月)

    私が個人的に運営している packagist.JP というサイトがある。PHPの実質的なパッケージリポジトリである https://packagist.org のミラーサイトであり、日付近でのcomposerコマンドの速度向上を目的としたものだ。 2015年12月に、@yudsuzukさんにこのミラーサイトを取り上げていただき、その影響か以前より少しアクセスが増えた。ありがたいことです。 【PHP】たった1行コマンドを入力するだけでComposerを劇的に速くする方法【アジア圏限定】 - $yuzu->log(); ただ、個人運営のサイトということで、使ってよいのか、信頼して良いのか不安に思う人も多いと思う。というわけで現状のステータスをなるべく率直に書いておく。 packagist.jpの概要 去年のアドベントカレンダーにまとめたのでそちらを参照のこと。 packagist.orgのミ

    packagist.JPの現状について(2015年12月)
    unarist
    unarist 2016/03/16
  • PHP7でクラスはバラバラになった

    PHP7では無名クラスが導入されます。 PHP7調査(26)無名クラスの導入 - Qiita これ、単に構文だけの話にせず、「クラスの第3の能力が単独で切り出された」と捉えると面白いのかなと思いました。 クラスが持つ3つの役割 クラスが持つ3つの役割 - 西尾泰和のはてなダイアリー 「コーディングを支える技術」の西尾泰和氏によると、クラスには ユーザー定義型 実装の再利用の単位 インスタンス生成器 の3つの役割があるといいます。 クラスが扱いづらい概念だとすれば、それはこの3つの能力をまとめて持っているからです。 PHPのユーザー定義型、インターフェース PHPの場合、タイプヒントがありますし、定義したクラスは後から拡張することができません(オープンクラスではない)。 if ($obj instanceof FooClass) { //... } この「$objがFooClassのインスタ

    PHP7でクラスはバラバラになった
    unarist
    unarist 2015/07/02
    確かに一度しか生成しないfinal classとか無名クラスでもいいわな
  • 即時関数(function(){ ... })()の別の書き方いろいろ - 泥のように

    JavaScriptでよく使われるコード片に即時関数というものがあります。無名関数を宣言して即実行することで、ブロックスコープの存在しないJavaScriptにおいて擬似的にブロックスコープを再現します。 var a = "global"; (function(){ var a = "local"; alert(a); //local })(); alert(a); //global 一番有名なのはこの(function(){ ... })()の形式なのですが、なぜfunctionの外側にカッコが必要なのか不思議に思ったことはないでしょうか? ためしにfunction(){ ... }()と書いてみると、Syntax Errorが発生します。 なぜfunction(){ ... }()はSyntax Errorなのか JavaScriptにはfunction文とfunction式があって、

    即時関数(function(){ ... })()の別の書き方いろいろ - 泥のように
    unarist
    unarist 2015/02/15
    function declarationと認識されるとパースに失敗するので、頭に!とかvoidとか付ければいいと…規格読んでみよう http://benalman.com/news/2010/11/immediately-invoked-function-expression/
  • JavaScript:undefined値の判定

    JavaScriptでは初期化されていない変数には全て「undefined」という値が入っています。 var a; alert(a); //undefinedが入っている これを利用して、変数が定義済みかどうかを判別することが可能です。…が、やり方がいろいろあるみたいなので、まとめてみることにします。 undefinedと比較する if (a === undefined) { alert("aは未定義"); } グローバル変数として、そのまんまundefinedという名前の変数が用意されているので、それと比較するやり方。一番素直な方法ですが、JavaScriptにおいては良くない書き方とされています。 undefinedは予約語ではなく、単なる変数です。だから上書きすることができるし、関数スコープ内で同名のローカル変数を作ることもできます。(ただし最近の処理系ではconst扱いになって上書

    JavaScript:undefined値の判定
  • PHP5.4時代のprivateメソッドテスト手法 #php5_4

    PHP5.4 Advent Calendar 2011の7日目です。昨日は@madapajaさんの「PHP5.4+ で開発が行われている BEAR.Sunday フレームワークを動かしてみる」でした。 さてさて皆さん、ユニットテストしてますか? PHPもテストのライブラリが充実してきており、カバレッジ100%に情熱を燃やしている方も多いことでしょう。 ユニットテストで困るのが、private/protectedメソッドです。外から呼べないので、普通の方法ではテストできません。(protectedは適当なダミーのサブクラスを作ってそこからテストできますが、ちょっと面倒です。) まあ当然です。外から呼べないようにprivateにしているので、簡単に呼べたら逆に困るわけです。しかしながら、privateメソッドも外から呼んでテストできた方が開発ははかどるでしょう。この記事ではPHPでprivat

    PHP5.4時代のprivateメソッドテスト手法 #php5_4
    unarist
    unarist 2014/09/24
  • DOM Builder系のjsテンプレートエンジンまとめ

    前回、どちらかと言えばinnerHTMLよりはDOMを使いましょうと書きました。しかしDOMをちょっと使えば、その余りの煩雑さに閉口することでしょう。では可読性を保持しつつ、XSSも考慮して書くにはどうすればいいでしょうか。 ちょっとしたものであれば、HTML中にdisplay:noneで構造を書き出しておき、それをJavaScriptから使う、というアプローチでもカバーできるでしょう。しかし大規模になると限界が見えてきます。描画に必要ない要素を書き出しすぎると、パフォーマンスの問題も発生します。 そこで、JavaScriptでもテンプレートエンジンを使うことになります。 テンプレートエンジンには二大勢力がある E4Xみたいな変態拡張やJadeなどの独自文法系を除くと、Scriptlet系とDOM Builder系の二種類に大きく分けることができそうです。(系統の名前は適当に決めました。正

    DOM Builder系のjsテンプレートエンジンまとめ
    unarist
    unarist 2014/08/15
    テンプレートというよりDOM構築ライブラリか
  • 1