タグ

ブックマーク / brtriver.hatenadiary.org (9)

  • json_encode したらどーなるかクイズ - ぷぎがぽぎ

    突然ですが問題です。 <?php array_unique(array_merge([1,2,3],[4])); これの実行結果のprint_rはどうなるでしょうか? Array ( [0] => 1 [1] => 2 [2] => 3 [3] => 4 )簡単ですね。じゃあ、次は? <?php array_unique(array_merge([1,2,3],[2,3,4])); mergeした結果をuniqueするのだから... Array ( [0] => 1 [1] => 2 [2] => 3 [5] => 4 )index番号に違いがあります。valueは同じです。 これらを踏まえて、次のjson_encodeの結果はどうなるでしょう? <?php json_encode(array_unique(array_merge([1,2,3],[4]))); 簡単ですね。 [1,2,3

    json_encode したらどーなるかクイズ - ぷぎがぽぎ
    hilde
    hilde 2015/03/01
  • monologでPHPのFatalエラーをログに残す - ぷぎがぽぎ

    この記事はSymfony Advent Calendar 2014の9日目の記事です。 昨日は おかぽんさんの SymfonyのDIを利用してMail送信クラスをインテグレーションテストする:コード編 でした Symfony のエラーハンドリングはとても優秀 (ただし2.4以降) Symfony は monolog が標準でバンドルされており、2.4からはエラーハンドリングをFWでとても良い感じにやってくれます。 Symfony 2.4以降の devで Noticeエラー たとえば、dev環境だと <?php namespace AppBundle\Controller; use Sensio\Bundle\FrameworkExtraBundle\Configuration\Route; use Symfony\Bundle\FrameworkBundle\Controller\Cont

    monologでPHPのFatalエラーをログに残す - ぷぎがぽぎ
    hilde
    hilde 2015/01/04
  • "PHP Fatal error: Allowed memory size of xxx" で落ちる前にできること - ぷぎがぽぎ

    PHP Advent Calendar 2013 - 7日目 昨日は@hidenorigotoさんのBeyond MVCでした。 今日は PHPあるある的な問題に対する対策について少しばかり書きたいと思います。 ※ 歯ブラシを持たせてみた *1 メモリ不足でよくやる対応 PHPで大量のデータを扱ったりすると、設定された利用可能な最大メモリ使用量を超えて PHP Fatal error: Allowed memory size of 524288330 bytes exhausted (tried to allocate 351 bytes) in ....というエラーが発生して対応に追われたことの経験がある人はかなり多いと思います。 そもそも環境のメモリに余裕があるならmemory_limitを調整してメモリの使用量を増やしたり あまり余裕がない場合は暫定的対応として、該当処理部分だけ <

    "PHP Fatal error: Allowed memory size of xxx" で落ちる前にできること - ぷぎがぽぎ
    hilde
    hilde 2014/02/07
  • downコマンドがなくupだけのDBマイグレーションツール Dbup - ぷぎがぽぎ

    ビー・バップ・ハイスクールって知ってますか? Dカップって大きいですよね? というわけで、超シンプルなDBマイグレーションツール Dbup を作ってみたので紹介。 Dbup http://brtriver.github.io/dbup/ 日語: http://brtriver.github.io/dbup/ja/ インストールから実行までのデモンストレーション dbup.pharをダウンロード 必要なディレクトリや設定ファイルを作成 statusで確認しつつ、upで実行 dbup demo from brtriver on Vimeo. 特徴 準備はdbup.pharをダウンロードするだけ up コマンドしかありません。down コマンドは存在しません マイグレーションの記述は親しみあるSQLそのままです。ORMやDSLを新しく覚える必要はありません PHP標準のPDOクラスを利用してい

    downコマンドがなくupだけのDBマイグレーションツール Dbup - ぷぎがぽぎ
    hilde
    hilde 2013/05/03
  • [PHP] Hamcrestを利用した超シンプルdocコメントでのテスト方法 - ぷぎがぽぎ

    PHPでテストを書くというとPHPUnitがデファクトスタンダードで、次がSimpleTestでしょうか。 以前はインストールも大変でしたが、今となってはcomposer使えば楽ですし、実績もあります。 でも、当にこの2択でPHPらしい開発ができていますか? たとえば、テストケースのクラスを用意することが前提になります。 ちょっとPHPのコードを書いてテストしたいときもです。 たとえば、以下のようなロジックを書きたいとします。 <?php $users = [ '太郎' => 'male', '花子' => 'female', '一郎' => 'male', ]; // この$usersから男性('male')のものだけを抽出したい $males = [ '太郎' => 'male', '一郎' => 'male', ]; ?> 普通にPHPUnitでTDDでとなると、それなりに面倒です

    hilde
    hilde 2013/04/07
  • 3分でできる俺PHPテスト環境 - ぷぎがぽぎ

    ※この記事はVOYAGE GROUP エンジニアブログ : Advent Calendar 2012の15日目の記事として書いてます。 3種の神器 PHPUnit, Stagehand_TestRunner, Phake 初めての方はじめまして。いつもの方こんにちは。 VOYAGE GROUP の adingo という会社で 広告配信に関わる Webアプリケーション開発エンジニアをしている @brtriver です。 今日は実際の現場でも使っているPHPの開発環境構築Tipsということで みんな大好き PHPUnit 、 自分は大好き Phake 、毎回テストを手動で実行するのが許されるのは小学生までだよねー Stagehand_TestRunner の 3つを3分でプロジェクトごとにインストールする方法を書いてみます。 何も考えず composer.jsonをコピペで用意 プロジェクト

    3分でできる俺PHPテスト環境 - ぷぎがぽぎ
    hilde
    hilde 2012/12/17
  • 配列のキーの存在チェック(isset)をしながらhtmlspecialcharsするのをちょっと読みやすくする - ぷぎがぽぎ

    1枚のPHPでGETパラメータの値をそのまま出力したりする場合、何も考えずに書くとこんな感じになります。 <?php echo (isset($_GET['name']))? htmlspecialchars($_GET['name'], ENT_QUOTES, 'utf-8'): "" ?> さすがに、毎回これを埋め込むのは嫌ですよね。 なぜなら、同じkey名を2回間違わずに書かなくてはなりませんし、なによりも長い。 なので、次の考えるのがヘルパー関数をつぎように用意することです。 <?php function h_array_key($key, $array) { return isset($array[$key])? htmlspecialchars($array[$key], ENT_QUOTES, 'utf-8'): ""; } ?> <?php echo h_array_key

    配列のキーの存在チェック(isset)をしながらhtmlspecialcharsするのをちょっと読みやすくする - ぷぎがぽぎ
    hilde
    hilde 2012/11/25
  • OrePHPはシンプルで速いクールなフレームワーク - ぷぎがぽぎ

    [追記1] 2012-06-10: ベンチマークを追加 [追記2] ブクマのコメントに回答 [追記3] ベンチマークをちょっと充実させた。Pinocoはえー [追記4] コントローラーの仕組みを変更 & debugモード追加 [追記5] PHP5.4.4で再ベンチ "ぼくがかんがえたさいきょうのふれーむわーく"ではないですが、OrePHPというPHP Webアプリケーション フレームワークを1つ書いてみた。 GitHub - brtriver/orephp: simple and fast PHP web application routing framework こんせぷと フレームワークが提供するのはルーティングだけ。シンプルに。速く。 ぼくがほしいのは、るーてぃんぐ 素のPHPでWebアプリケーションを書きたくない理由の1つがルーティングを用意するのが面倒というのがあります。Symf

    OrePHPはシンプルで速いクールなフレームワーク - ぷぎがぽぎ
    hilde
    hilde 2012/06/10
  • 【戯れ言】symfonyはCakePHPよりは大規模向けです - ぷぎがぽぎ

    例えば、フレームワーク比較で良く目にする違いとして「Symfonyは大規模向け、CakePHPは中小規模向け」というのがある。これはいったい何なのだろう? よく読むと、大抵は「Symfonyはプラグイン機能があるため、大規模向け」という書き方がされている。これは当にそうなのだろうか? まず簡単なツッコミをさせていただくと、CakePHPは、既にプラグイン機能を装備している。Symfonyとほぼ同じように、一連機能を持った仕組みを簡単に入れたり抜いたり出来る。つまり、この定義でいけば、CakePHPは十分に大規模向けだ。 .. (略) .. そしてプラグインは、私はむしろ逆の、中小規模向けのものと考える。何故なら、第三者の制作したものを、手っ取り早く自分のものに出来るというのが実質的なところであり、そういった用途のものは中小規模向けに書かれているものが多いからだ。 まず前提として、プラグイ

    【戯れ言】symfonyはCakePHPよりは大規模向けです - ぷぎがぽぎ
  • 1